Up to 2,000 Users
In the 2,000 users architecture, there is a moderate increase in traffic, suggesting a growing user base or expanding operations. This setup is well-suited for mid-sized companies experiencing growth or for universities seeking to accommodate their expanding user populations.
Users can be evenly distributed between 2 regions or be attached to different clusters.
Target load: API: up to 300 RPS
High Availability: The mode is enabled; multiple replicas provide higher deployment reliability under load.
Hardware recommendations
Coderd nodes
Users | Node capacity | Replicas | GCP | AWS | Azure |
---|---|---|---|---|---|
Up to 2,000 | 4 vCPU, 16 GB memory | 2 nodes, 1 coderd each | n1-standard-4 | m5.xlarge | Standard_D4s_v3 |
Provisioner nodes
Users | Node capacity | Replicas | GCP | AWS | Azure |
---|---|---|---|---|---|
Up to 2,000 | 8 vCPU, 32 GB memory | 4 nodes, 30 provisioners each | t2d-standard-8 | c5.2xlarge | Standard_D8s_v3 |
Footnotes:
- An external provisioner is deployed as Kubernetes pod.
- It is not recommended to run provisioner daemons on
coderd
nodes. - Consider separating provisioners into different namespaces in favor of zero-trust or multi-cloud deployments.
Workspace nodes
Users | Node capacity | Replicas | GCP | AWS | Azure |
---|---|---|---|---|---|
Up to 2,000 | 8 vCPU, 32 GB memory | 128 nodes, 16 workspaces each | t2d-standard-8 | m5.2xlarge | Standard_D8s_v3 |
Footnotes:
- Assumed that a workspace user needs 2 GB memory to perform
- Maximum number of Kubernetes workspace pods per node: 256
- Nodes can be distributed in 2 regions, not necessarily evenly split, depending on developer team sizes
Database nodes
Users | Node capacity | Replicas | Storage | GCP | AWS | Azure |
---|---|---|---|---|---|---|
Up to 2,000 | 4 vCPU, 16 GB memory | 1 node | 1 TB | db-custom-4-15360 | db.m5.xlarge | Standard_D4s_v3 |
Footnotes:
- Consider adding more replicas if the workspace activity is higher than 500 workspace builds per day or to achieve higher RPS.
Footnotes for AWS instance types:
- For production deployments, we recommend using non-burstable instance types,
such as
m5
orc5
, instead of burstable instances, such ast3
. Burstable instances can experience significant performance degradation once CPU credits are exhausted, leading to poor user experience under sustained load.
See an opportunity to improve our docs? Make an edit.