Skip to content

Commit 2987193

Browse files
committed
WIP
1 parent f68ed34 commit 2987193

File tree

4 files changed

+47
-29
lines changed

4 files changed

+47
-29
lines changed

docs/admin/architectures/1k-users.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,7 @@ tech startups, educational units, or small to mid-sized enterprises.
1515
| Users | Node capacity | Replicas | GCP | AWS | Azure |
1616
| ----------- | ------------------- | -------- | --------------- | ---------- | ----------------- |
1717
| Up to 1,000 | 2 vCPU, 8 GB memory | 2 | `n1-standard-2` | `t3.large` | `Standard_D2s_v3` |
18+
19+
### Workspace nodes
20+
21+
TODO

docs/admin/architectures/2k-users.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,13 @@ enabling it for deployment reliability.
2020
| Users | Node capacity | Replicas | GCP | AWS | Azure |
2121
| ----------- | -------------------- | -------- | --------------- | ----------- | ----------------- |
2222
| Up to 2,000 | 4 vCPU, 16 GB memory | 2 | `n1-standard-4` | `t3.xlarge` | `Standard_D4s_v3` |
23+
24+
### Workspace nodes
25+
26+
TODO
27+
28+
Developers for up to 2000+ users architecture are in 2 regions (a different
29+
cluster) and are evenly split. In practice, this doesn’t change much besides the
30+
diagram and workspaces node pool autoscaling config as it still uses the central
31+
provisioner. Recommend multiple provisioner groups for zero-trust and
32+
multi-cloud use cases.

docs/admin/architectures/3k-users.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,11 @@ purposes.
1616
| Users | Node capacity | Replicas | GCP | AWS | Azure |
1717
| ----------- | -------------------- | -------- | --------------- | ----------- | ----------------- |
1818
| Up to 3,000 | 8 vCPU, 32 GB memory | 4 | `n1-standard-4` | `t3.xlarge` | `Standard_D4s_v3` |
19+
20+
### Workspace nodes
21+
22+
TODO
23+
24+
Developers for up to 3000+ users architecture are also in an on-premises
25+
network. Document a provisioner running in a different cloud environment, and
26+
the zero-trust benefits of that.

docs/admin/architectures/index.md

Lines changed: 25 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -184,11 +184,11 @@ Database:
184184

185185
### Control plane
186186

187-
When considering the control plane, it's essential to focus on node sizing,
188-
resource limits, and the number of replicas. We recommend referencing public
189-
cloud providers such as AWS, GCP, and Azure for guidance on optimal
190-
configurations. A reasonable approach involves using scaling formulas based on
191-
factors like CPU, memory, and the number of users.
187+
To ensure stability and reliability of the Coder control plane, it's essential
188+
to focus on node sizing, resource limits, and the number of replicas. We
189+
recommend referencing public cloud providers such as AWS, GCP, and Azure for
190+
guidance on optimal configurations. A reasonable approach involves using scaling
191+
formulas based on factors like CPU, memory, and the number of users.
192192

193193
While the minimum requirements specify 1 CPU core and 2 GB of memory per
194194
`coderd` replica, it is recommended to allocate additional resources to ensure
@@ -209,7 +209,7 @@ Inactive users do not consume Coder resources.
209209

210210
When determining scaling requirements, consider the following factors:
211211

212-
- 1 vCPU x 2 GB memory x 250 users: A reasonable formula to determine resource
212+
- `1 vCPU x 2 GB memory x 250 users`: A reasonable formula to determine resource
213213
allocation based on the number of users and their expected usage patterns.
214214
- API latency/response time: Monitor API latency and response times to ensure
215215
optimal performance under varying loads.
@@ -236,37 +236,33 @@ for more details.
236236

237237
### Workspaces
238238

239-
Assumptions:
239+
To determine workspace resource limits and keep the best developer experience
240+
for workspace users, administrators must be aware of a few assumptions.
240241

241-
workspaces also run on the same Kubernetes cluster (recommend a different
242-
namespace/node pool)
242+
- Workspace pods run on the same Kubernetes cluster, but possible in a different
243+
namespace or a node pool.
244+
- Workspace limits (per workspace user):
245+
- Developers can choose between 4-8 vCPUs, and 4-16 GB memory.
246+
- Evaluate the workspace utilization pattern. For instance, a regular web
247+
development does not require high CPU capacity all the time, but only during
248+
project builds or load tests.
249+
- Minimum requirements for Coder agent running in an idle workspace are 0.1
250+
vCPU and 256 MB.
243251

244-
developers can pick between 4-8 CPU and 4-16 GB RAM workspaces (limits)
245-
246-
developers have a resource quota of 16 GPU 32 GB RAM (2-maxed out workspaces).
247-
248-
However, the Coder agent itself requires at minimum 0.1 CPU cores and 256 MB to
249-
run inside a workspace.
250-
251-
web microservice development use case: resources are mostly underutilized but
252-
spike during builds
253-
254-
Case study:
255-
256-
Developers for up to 2000+ users architecture are in 2 regions (a different
257-
cluster) and are evenly split. In practice, this doesn’t change much besides the
258-
diagram and workspaces node pool autoscaling config as it still uses the central
259-
provisioner. Recommend multiple provisioner groups for zero-trust and
260-
multi-cloud use cases. Developers for up to 3000+ users architecture are also in
261-
an on-premises network. Document a provisioner running in a different cloud
262-
environment, and the zero-trust benefits of that.
252+
#### Scaling formula
263253

264-
scaling formula
254+
TODO
265255

266256
provisionerd x users: Another formula to consider, focusing on the capacity of
267257
provisioner nodes relative to the number of workspace builds, triggered by
268258
users.
269259

260+
- Guidance for reasonable ratio of CPU limits/requests
261+
- Guidance for reasonable ratio for memory requests/limits
262+
263+
Mention that as users onboard, the autoscaling config should take care of
264+
ongoing workspaces
265+
270266
### Database
271267

272268
PostgreSQL database

0 commit comments

Comments
 (0)