Skip to content

Commit 9ea3e96

Browse files
authored
docs: update architecture & diagram (#4721)
* docs: update architecture & diagram * remove old diagrams * fix typo
1 parent a0249be commit 9ea3e96

File tree

2 files changed

+26
-30
lines changed

2 files changed

+26
-30
lines changed

docs/about/architecture.md

+26-30
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,10 @@
11
# Architecture
22

3-
## Agents
4-
5-
An agent is the Coder service that runs within a user's remote workspace.
6-
It provides a consistent interface for coderd and clients to communicate
7-
with workspaces regardless of operating system, architecture, or cloud.
8-
9-
It offers the following services along with much more:
10-
11-
- SSH
12-
- Port forwarding
13-
- Liveness checks
14-
- `startup_script` automation
3+
This document provides a high level overview of Coder's architecture.
154

16-
## Service Bundling
5+
## Diagram
176

18-
While coderd, provisionerd and Postgres can be orchestrated independently,
19-
our default installation paths bundle them all together into one system service.
20-
It's perfectly fine to run a production deployment this way, but there are
21-
certain situations that necessitate decomposition:
22-
23-
- Reducing global client latency (distribute coderd and centralize database)
24-
- Running untrusted provisioners (separate provisionerd from nodes with DB access)
25-
- Achieving greater availability and efficiency (horizontally scale individual services)
7+
![Architecture Diagram](../images/architecture-diagram.png)
268

279
## coderd
2810

@@ -43,16 +25,30 @@ It offers:
4325
provisionerd is the execution context for infrastructure modifying providers.
4426
At the moment, the only provider is Terraform (running `terraform`).
4527

46-
Since the provisionerd can be separated from coderd, it can run the provider
47-
in a myriad of ways on the same Coder deployment. For example, provisioners
48-
can have different `terraform` versions to satisfy the requirements of different
49-
templates.
28+
> At the moment, provisionerd cannot be separated from coderd. Follow [this GitHub issue](https://github.com/coder/coder/issues/44) for more details.
29+
30+
## Agents
5031

51-
Separability is also advantageous for security. Since provisionerd has no
52-
database access, infrastructure admins that are not necessarily Coder admins
53-
can be safely given access to the provisionerd node. As Coder scales and
54-
multiple infrastructure teams appear, each can be given access to their own
55-
set of provisionerd nodes, with each set of nodes having their own cloud credentials.
32+
An agent is the Coder service that runs within a user's remote workspace.
33+
It provides a consistent interface for coderd and clients to communicate
34+
with workspaces regardless of operating system, architecture, or cloud.
35+
36+
It offers the following services along with much more:
37+
38+
- SSH
39+
- Port forwarding
40+
- Liveness checks
41+
- `startup_script` automation
42+
43+
Templates are responsible for [creating and running agents](../templates.md#coder-agent) within workspaces.
44+
45+
## Service Bundling
46+
47+
While coderd and Postgres can be orchestrated independently,our default installation
48+
paths bundle them all together into one system service. It's perfectly fine to run a production deployment this way, but there are certain situations that necessitate decomposition:
49+
50+
- Reducing global client latency (distribute coderd and centralize database)
51+
- Achieving greater availability and efficiency (horizontally scale individual services)
5652

5753
## Workspaces
5854

docs/images/architecture-diagram.png

250 KB
Loading

0 commit comments

Comments
 (0)