55
66Concepts
77========
8- Deis is a lightweight, flexible and powerful application platform that
9- deploys and scales :ref: `concepts_twelve_factor ` apps as
10- :ref: `concepts_docker ` containers across a cluster of
11- :ref: `concepts_coreos ` machines.
8+ Deis is a lightweight application platform that deploys and scales
9+ :ref: `concepts_twelve_factor ` apps as :ref: `concepts_docker ` containers
10+ across a cluster of :ref: `concepts_coreos ` machines.
1211
1312.. _concepts_twelve_factor :
1413
1514Twelve-Factor
1615-------------
17- The `Twelve-Factor App `_ is a DevOps manifesto for building and
18- deploying scalable, modern applications and services .
16+ The `Twelve-Factor App `_ is a methodology for building modern
17+ applications that can be scaled across a distributed system .
1918
2019We consider it an invaluable synthesis of much experience with
2120software-as-a-service apps in the wild, especially on the
2221Heroku platform.
2322
24- Deis works best with applications in a `Twelve-Factor App `_ style.
25- Following the twelve-factor model, Deis enforces a strict separation of
26- the :ref: `Build and Run <concepts_build_release_run >` stages.
23+ Deis is designed to run applications that adhere to `Twelve-Factor App `_
24+ methodology and best practices.
2725
2826.. _concepts_docker :
2927
@@ -32,57 +30,54 @@ Docker
3230`Docker `_ is an open source project to pack, ship and run any
3331application as a lightweight, portable, self-sufficient container.
3432
35- When you deploy an app with ``git push deis master ``, Deis builds and
36- packages it as a Docker image, then distributes it as Docker containers
37- across your cluster.
33+ Deis curates your applications as Docker images, which are then
34+ distributed across your cluster as Docker containers.
3835
3936(Deis itself is also a set of coordinated Docker containers.)
4037
4138.. _concepts_coreos :
4239
4340CoreOS
4441------
45- `CoreOS `_ is a lean new Linux distribution, rearchitected for features
46- needed by modern infrastructure stacks and targeted at massive
47- server deployments.
42+ `CoreOS `_ is a new, minimal Linux distribution, rearchitected for
43+ running modern, containerized infrastructure stacks.
4844
49- Deis applications are processes running on CoreOS machines, which can
50- be private or public cloud instances, or bare metal. CoreOS clusters
51- allow Deis to host applications and services at scale with
52- high resilience.
45+ Deis runs on CoreOS machines that be hosted anywhere -- public cloud,
46+ private cloud, bare metal or even your workstation.
5347
54- Yet Deis and CoreOS run identically in a Vagrant virtual machine on
55- your laptop, for convenient testing and rapid development .
48+ CoreOS allows Deis to host applications and services at scale with
49+ high resilience, in a way that is simple to operate .
5650
5751.. _concepts_applications :
5852
5953Applications
6054------------
61- An :ref: `application `, or app, lives on a cluster where it uses
62- :ref: `Containers <container >` to process requests and run tasks for a
63- deployed git repository .
55+ Deis is designed around the concept of an :ref: `application `, or app.
56+ Applications live on a cluster where they use :ref: `Containers <container >`
57+ to service requests .
6458
65- Developers use :ref: `Applications <application >` to push code, change
66- configuration, scale processes, view logs, or run admin commands --
67- regardless of the cluster's underlying infrastructure.
59+ Developers use applications to push code, change configuration, scale processes,
60+ view logs, run admin commands and much more.
6861
6962.. _concepts_build_release_run :
7063
7164Build, Release, Run
7265-------------------
7366
67+ .. image :: DeisGitPushWorkflow.png
68+ :alt: Deis Git Push Workflow
69+
7470Build Stage
7571^^^^^^^^^^^
76- The :ref: `Controller ` includes a *gitreceive * hook that receives incoming git push requests over
77- SSH and builds applications inside ephemeral Docker containers. Tarballs of the /app directory are
78- extracted into a slug and is injected into another container, which will create the app image. The
79- image is then pushed to a private registry for later execution.
72+ The :ref: `builder ` processes incoming ``git push `` requests builds applications
73+ inside ephemeral Docker containers, creating a new Docker image.
8074
8175Release Stage
8276^^^^^^^^^^^^^
8377During the release stage, a :ref: `build ` is combined with :ref: `config ` to create a new numbered
84- :ref: `release `. The release stage is triggered any time a new build is created or config is
85- changed, making it easy to rollback code and configuration.
78+ :ref: `release `. This release is then pushed to a Docker registry for later execution.
79+ The release stage is triggered any time a new build is created or config is
80+ changed, making it easy to rollback code and configuration changes.
8681
8782Run Stage
8883^^^^^^^^^
@@ -99,14 +94,13 @@ Deis treats databases, caches, storage, messaging systems, and other
9994`backing services `_ as attached resources, in keeping with Twelve-Factor
10095best practices.
10196
102- Applications can be decoupled this way, using simple
103- `environment variables `_ to configure and attach to any services needed.
104- Apps are then free to scale up independently, to use services provided
105- by other apps, or to switch easily to external or third-party vendor
106- services.
97+ Applications are attached to backing services using `environment variables `_.
98+ Because applications are decoupled from backing services, apps are free to scale up independently,
99+ to swap services provided by other apps, or to switch to external or third-party vendor services.
107100
108101See Also
109102--------
103+ * :ref: `Architecture `
110104* :ref: `Using Deis <using_deis >`
111105* :ref: `Managing Deis <managing_deis >`
112106* The `Twelve-Factor App `_
0 commit comments