|
| 1 | +# Reference Architecture: up to 3,000 users |
| 2 | + |
| 3 | +The 3,000 users architecture targets large-scale enterprises, possibly with |
| 4 | +on-premises network and cloud deployments. |
| 5 | + |
| 6 | +**Target load**: API: up to 550 RPS |
| 7 | + |
| 8 | +**High Availability**: Typically, such scale requires a fully-managed HA |
| 9 | +PostgreSQL service, and all Coder observability features enabled for operational |
| 10 | +purposes. |
| 11 | + |
| 12 | +**Observability**: Deploy monitoring solutions to gather Prometheus metrics and |
| 13 | +visualize them with Grafana to gain detailed insights into infrastructure and |
| 14 | +application behavior. This allows operators to respond quickly to incidents and |
| 15 | +continuously improve the reliability and performance of the platform. |
| 16 | + |
| 17 | +## Hardware recommendations |
| 18 | + |
| 19 | +### Coderd nodes |
| 20 | + |
| 21 | +| Users | Node capacity | Replicas | GCP | AWS | Azure | |
| 22 | +| ----------- | -------------------- | ----------------- | --------------- | ----------- | ----------------- | |
| 23 | +| Up to 3,000 | 8 vCPU, 32 GB memory | 4 / 1 coderd each | `n1-standard-4` | `t3.xlarge` | `Standard_D4s_v3` | |
| 24 | + |
| 25 | +### Provisioner nodes |
| 26 | + |
| 27 | +| Users | Node capacity | Replicas | GCP | AWS | Azure | |
| 28 | +| ----------- | -------------------- | ------------------------ | ---------------- | ------------ | ----------------- | |
| 29 | +| Up to 3,000 | 8 vCPU, 32 GB memory | 8 / 30 provisioners each | `t2d-standard-8` | `t3.2xlarge` | `Standard_D8s_v3` | |
| 30 | + |
| 31 | +**Footnotes**: |
| 32 | + |
| 33 | +- An external provisioner is deployed as Kubernetes pod. |
| 34 | +- It is strongly discouraged to run provisioner daemons on `coderd` nodes at |
| 35 | + this level of scale. |
| 36 | +- Separate provisioners into different namespaces in favor of zero-trust or |
| 37 | + multi-cloud deployments. |
| 38 | + |
| 39 | +### Workspace nodes |
| 40 | + |
| 41 | +| Users | Node capacity | Replicas | GCP | AWS | Azure | |
| 42 | +| ----------- | -------------------- | ------------------------------ | ---------------- | ------------ | ----------------- | |
| 43 | +| Up to 3,000 | 8 vCPU, 32 GB memory | 256 nodes / 12 workspaces each | `t2d-standard-8` | `t3.2xlarge` | `Standard_D8s_v3` | |
| 44 | + |
| 45 | +**Footnotes**: |
| 46 | + |
| 47 | +- Assumed that a workspace user needs 2 GB memory to perform |
| 48 | +- Maximum number of Kubernetes workspace pods per node: 256 |
| 49 | +- As workspace nodes can be distributed between regions, on-premises networks |
| 50 | + and cloud areas, consider different namespaces in favor of zero-trust or |
| 51 | + multi-cloud deployments. |
| 52 | + |
| 53 | +### Database nodes |
| 54 | + |
| 55 | +| Users | Node capacity | Replicas | Storage | GCP | AWS | Azure | |
| 56 | +| ----------- | -------------------- | -------- | ------- | ------------------- | --------------- | ----------------- | |
| 57 | +| Up to 3,000 | 8 vCPU, 32 GB memory | 2 | 1.5 TB | `db-custom-8-30720` | `db.t3.2xlarge` | `Standard_D8s_v3` | |
| 58 | + |
| 59 | +**Footnotes**: |
| 60 | + |
| 61 | +- Consider adding more replicas if the workspace activity is higher than 1500 |
| 62 | + workspace builds per day or to achieve higher RPS. |
0 commit comments