77Concepts
88========
99
10- Deis is an application platform that deploys and scales `Twelve Factor `_ apps
10+ Deis is an application platform that deploys and scales `Twelve Factor `_ apps
1111using formations of `Chef `_ nodes, `Docker `_ containers and `Nginx `_ proxies.
1212
1313Formations
@@ -18,69 +18,69 @@ that provide different services to the formation.
1818
1919Layers
2020------
21- :ref: `Layers <layer >` are homogeneous groups of :ref: `Nodes <node >` that
22- perform work on behalf of a formation. Each node in a layer has
21+ :ref: `Layers <layer >` are homogeneous groups of :ref: `Nodes <node >` that
22+ perform work on behalf of a formation. Each node in a layer has
2323the same :ref: `Flavor ` and configuration, allowing them to be scaled
2424easily. Formations have two primary types of layers.
2525
2626Runtime Layers
2727^^^^^^^^^^^^^^
2828Runtime layers host :ref: `Containers <container >` for a formation.
29- Nodes in a runtime layer use a `Chef Databag `_ to deploy containers for
29+ Nodes in a runtime layer use a `Chef Databag `_ to deploy containers for
3030each :ref: `application ` in the formation.
3131
3232Proxy Layers
3333^^^^^^^^^^^^
3434Proxy layers expose :ref: `Applications <application >` to the outside world.
35- Nodes in a proxy layer use a `Chef Databag `_ to configure routing of
35+ Nodes in a proxy layer use a `Chef Databag `_ to configure routing of
3636inbound requests to :ref: `Containers <container >` hosted on runtime layers.
3737
3838Applications
3939------------
40- An :ref: `application ` lives on a :ref: `formation ` where it uses
40+ An :ref: `application ` lives on a :ref: `formation ` where it uses
4141:ref: `Containers <container >` to process requests and run background jobs
4242for a deployed git repository.
4343Developers use :ref: `Applications <application >` to push code, change config,
4444scale containers, view logs, or run admin commands --
45- regardless of the formation's underlying infrastructure.
45+ regardless of the formation's underlying infrastructure.
4646
4747Build, Release, Run
48- -------------------
48+ -------------------
4949Deis enforces strict separation between Build and Run stages
5050following the `Twelve Factor model `_.
5151
5252Build Stage
5353^^^^^^^^^^^
54- The :ref: `Controller ` includes a ` Gitosis Server `_ that receives
54+ The :ref: `Controller ` includes a * gitreceive * hook that receives
5555incoming git push requests over SSH and builds applications
56- inside ephemeral Docker containers.
57- Tarballs of the /app directory are extracted into a slug and exposed
58- on the Controller using an Nginx static file server.
56+ inside ephemeral Docker containers.
57+ Tarballs of the /app directory are extracted into a slug and exposed
58+ on the Controller using an Nginx static file server.
5959The slug is later downloaded by the runtime layer and bind-mounted
6060into a Docker container for execution.
6161
6262Release Stage
6363^^^^^^^^^^^^^
6464During the release stage, a :ref: `build ` is combined with :ref: `config `
6565to create a new numbered :ref: `release `.
66- The release stage is triggered any time a new build is created or
66+ The release stage is triggered any time a new build is created or
6767config is changed, making it easy to rollback code and configuration.
6868
6969Run Stage
7070^^^^^^^^^
7171The run stage updates Chef databags and `converges `_ all nodes in the formation.
72- The databag specifies the current application releases,
73- the placement of containers across the runtime layer,
72+ The databag specifies the current application releases,
73+ the placement of containers across the runtime layer,
7474and the configuration of the proxy layer.
75- SSH is used to converge nodes in runtime layers followed
75+ SSH is used to converge nodes in runtime layers followed
7676by nodes in proxy layers, making zero downtime deployment possible.
7777
7878Backing Services
7979----------------
8080In keeping with `Twelve Factor `_ methodology, `backing services `_ like
8181databases, queues and storage are decoupled and attached using `environment
8282variables `_. This allows applications to use backing services provided by
83- other applications, or external/third-party services accessible over the network.
83+ other applications, or external/third-party services accessible over the network.
8484The use of environment variables makes it easy to swap backing services
8585when necessary.
8686
@@ -98,6 +98,5 @@ See Also
9898.. _`Twelve Factor model` : http://12factor.net/build-release-run
9999.. _`backing services` : http://12factor.net/backing-services
100100.. _`environment variables` : http://12factor.net/config
101- .. _`Gitosis Server` : https://github.com/opdemand/gitosis
102101.. _`Buildstep` : https://github.com/opdemand/buildstep
103102.. _`converges` : http://docs.opscode.com/essentials_nodes_chef_run.html
0 commit comments