Skip to content

Commit 2f42db2

Browse files
committed
doc(architecture): update architecture section
1 parent dee9ea4 commit 2f42db2

3 files changed

Lines changed: 43 additions & 54 deletions

File tree

mkdocs.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ pages:
3434
- Platform Logging: managing-deis/platform-logging.md
3535
- Platform Monitoring: managing-deis/platform-monitoring.md
3636
- Production Deployments: managing-deis/production-deployments.md
37-
- Isolating the Planes: managing-deis/isolating-the-planes.md
3837
- Security Considerations: managing-deis/security-considerations.md
3938
- Platform SSL: managing-deis/platform-ssl.md
4039
- Upgrading Deis: managing-deis/upgrading-deis.md

src/managing-deis/isolating-the-planes.md

Lines changed: 0 additions & 3 deletions
This file was deleted.
Lines changed: 43 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,69 @@
11
# Architecture
22

3-
Deis uses a service oriented architecture with [components][]
4-
grouped into a Control Plane, Data Plane and Router Mesh.
3+
Deis Workflow is built using a service oriented architecture. All components
4+
are published as a set of container images which can be deployed to any
5+
compliant Kubernetes cluster.
56

6-
## System Diagram
7+
## Overview
78

8-
![Deis System Diagram](DeisSystemDiagram.png)
9+
![System Overview](../diagrams/Ecosystem_Basic.png)
910

10-
Operators use [Helm][] to stand up the cluster's Control Plane, Data Plane and Router Mesh.
11-
End-users of the platform interact with the Control Plane using the `Deis API`.
11+
Operators use [Helm][] to configure and install the Workflow components which
12+
interface directly with the underlying Kubernetes cluster. Service discovery,
13+
container availability and networking are all delegated to Kubernetes, while
14+
Workflow provides a clean and simple developer experience.
1215

13-
The Control Plane dispatches work to the Data Plane via a scheduler.
14-
The Router Mesh is used to route traffic to both the Control Plane and Data Plane.
15-
Because the router mesh is usually connected to the public Internet,
16-
it is often connected to a front-end load balancer.
16+
## Platform Services
1717

18-
## Control Plane
18+
![Workflow Overview](../diagrams/Workflow_Overview.png)
1919

20-
![Deis Control Plane Architecture](DeisControlPlane.png)
20+
Deis Workflow provides additional functionality to your Kubernetes cluster, including:
2121

22-
The Control Plane performs management functions for the platform.
23-
Control plane components (in blue) are all implemented as Docker containers.
22+
* [Source to Image Builder][builder] which compiles your Application code via Buildpacks or Dockerfiles
23+
* [Cross-Pod Log Aggregation][logger] which gathers logs from all of your Application processes
24+
* [Simple REST API][controller] which powers the CLI and any external integrations
25+
* Application release and rollback
26+
* Authentication and Authorization to Application resources
27+
* [HTTP/HTTPS edge routing][router] for your Applications
2428

25-
The [store][] component consists of a number of smaller components that represent a
26-
containerized Ceph cluster which provides a blob storage API and POSIX filesystem API
27-
for the control plane's stateful components:
29+
## Kubernetes-Native
2830

29-
* [registry][] - a Docker registry used to hold images and configuration data
30-
* [database][] - a Postgres database used to store platform state
31+
Every platform component and applications deployed via Workflow expect to be
32+
running on an existing Kubernetes cluster. This means that you can happily run
33+
your Kubernetes-native workloads next to applications that are managed through
34+
Deis Workflow.
3135

32-
End-users interact primarily with the [controller][] which exposes an
33-
HTTP API. They can also interact with the [builder][] via `git push`.
36+
![Workflow and Kubernetes](../diagrams/Workflow_Detail.png)
3437

35-
## Data Plane
38+
## Application Layout and Edge Routing
3639

37-
![Deis Data Plane Architecture](DeisDataPlane.png)
40+
By default Workflow creates per-application Namespaces and Services so you can
41+
easily connect your applications to other on-cluster services through standard
42+
Kubernetes mechanisms.
3843

39-
The Data Plane is where [containers][] (in blue) are run on behalf of end-users.
44+
![Application Configuration](../diagrams/Application_Layout.png)
4045

41-
The platform scheduler is in charge of placing containers on hosts in the data plane.
46+
The router component is responsible for routing HTTP/s traffic to your
47+
Applications as well as proxying `git push` and platform API traffic.
4248

43-
## Router Mesh
49+
By default, the router component is deployed as a Kubernetes service with type
50+
`LoadBalancer`; which, depending on your configuration, will provision a
51+
cloud-native load balancer automatically.
4452

45-
![Deis Router Mesh Architecture](DeisRouterMesh.png)
46-
47-
The Router Mesh publishes [Applications][] to consumers.
48-
49-
Each [router][] in the mesh is a dynamically configured Nginx web server designed to route inbound
50-
traffic to the appropriate Kubernetes services for applications running in the data and control
51-
planes. Additionally, routers perform typical web server responsibilities such as SSL termination
52-
and gzip compression.
53-
54-
Any changes to router configuration or certificates are applied within seconds.
53+
The router automatically discovers routeable Applications, SSL/TLS certificates
54+
and application-specific configurations through the use of Kubernetes
55+
annotations. Any changes to router configuration or certificates are applied
56+
within seconds.
5557

5658
## Topologies
5759

58-
For small deployments you can run the entire platform
59-
-- Control Plane, Data Plane and Router Mesh -- on just 3 servers.
60-
61-
For larger deployments, you'll want to isolate the Control Plane and Router
62-
Mesh, then scale your Data Plane out to as many servers as you need.
60+
Deis Workflow no longer dictates a specific topology or server count for your
61+
deployment. The platform components will happily run on single-server
62+
configurations as well as multi-server production clusters.
6363

64-
See [Isolating the Planes][isolating-planes] for further details.
65-
66-
[applications]: ../reference-guide/terms.md#application
6764
[builder]: components.md#builder
6865
[components]: components.md
69-
[helm]: http://helm.sh
70-
[containers]: ../reference-guide/terms.md#container
7166
[controller]: components.md#controller
72-
[database]: components.md#database
73-
[isolating-planes]: ../managing-deis/isolating-the-planes.md
74-
[registry]: components.md#registry
67+
[helm]: http://helm.sh
68+
[logger]: components.md#logger
7569
[router]: components.md#router
76-
[store]: components.md#store

0 commit comments

Comments
 (0)