Add 5K reference architecture
What does this MR do?
Add the 5K reference architecture.
It's almost exactly the same as the 3K (!34194 (merged)) with some minor differences in the intro:
5c5
< # Reference architecture: up to 3,000 users
---
> # Reference architecture: up to 5,000 users
7c7
< This page describes GitLab reference architecture for up to 3,000 users.
---
> This page describes GitLab reference architecture for up to 5,000 users.
12c12
< The 3,000-user reference architecture documented below is
---
> The 5,000-user reference architecture documented below is
18c18
< > - **Supported users (approximate):** 3,000
---
> > - **Supported users (approximate):** 5,000
20c20
< > - **Test RPS rates:** API: 60 RPS, Web: 6 RPS, Git: 6 RPS
---
> > - **Test RPS rates:** API: 100 RPS, Web: 10 RPS, Git: 10 RPS
22,35c22,35
< | Service | Nodes | Configuration | GCP | AWS | Azure |
< |--------------------------------------------------------------|-------|---------------------------------|-----------------|-------------------------|----------------|
< | External load balancing node | 1 | 2 vCPU, 1.8GB Memory | `n1-highcpu-2` | `c5.large` | `F2s v2` |
< | Redis | 3 | 2 vCPU, 7.5GB Memory | `n1-standard-2` | `m5.large` | `D2s v3` |
< | Consul + Sentinel | 3 | 2 vCPU, 1.8GB Memory | `n1-highcpu-2` | `c5.large` | `F2s v2` |
< | PostgreSQL | 3 | 2 vCPU, 7.5GB Memory | `n1-standard-2` | `m5.large` | `D2s v3` |
< | PgBouncer | 3 | 2 vCPU, 1.8GB Memory | `n1-highcpu-2` | `c5.large` | `F2s v2` |
< | Internal load balancing node | 1 | 2 vCPU, 1.8GB Memory | `n1-highcpu-2` | `c5.large` | `F2s v2` |
< | Gitaly | 2 minimum | 4 vCPU, 15GB Memory | `n1-standard-4` | `m5.xlarge` | `D4s v3` |
< | Sidekiq | 4 | 2 vCPU, 7.5GB Memory | `n1-standard-2` | `m5.large` | `D2s v3` |
< | GitLab Rails | 3 | 8 vCPU, 7.2GB Memory | `n1-highcpu-8` | `c5.2xlarge` | `F8s v2` |
< | Monitoring node | 1 | 2 vCPU, 1.8GB Memory | `n1-highcpu-2` | `c5.large` | `F2s v2` |
< | Object Storage | n/a | n/a | n/a | n/a | n/a |
< | NFS Server (optional, not recommended) | 1 | 4 vCPU, 3.6GB Memory | `n1-highcpu-4` | `c5.xlarge` | `F4s v2` |
---
> | Service | Nodes | Configuration | GCP | AWS | Azure |
> |--------------------------------------------------------------|-------|---------------------------------|-----------------|-----------------------|----------------|
> | External load balancing node | 1 | 2 vCPU, 1.8GB Memory | `n1-highcpu-2` | `c5.large` | `F2s v2` |
> | Redis | 3 | 2 vCPU, 7.5GB Memory | `n1-standard-2` | `m5.large` | `D2s v3` |
> | Consul + Sentinel | 3 | 2 vCPU, 1.8GB Memory | `n1-highcpu-2` | `c5.large` | `F2s v2` |
> | PostgreSQL | 3 | 2 vCPU, 7.5GB Memory | `n1-standard-2` | `m5.large` | `D2s v3` |
> | PgBouncer | 3 | 2 vCPU, 1.8GB Memory | `n1-highcpu-2` | `c5.large` | `F2s v2` |
> | Internal load balancing node | 1 | 2 vCPU, 1.8GB Memory | `n1-highcpu-2` | `c5.large` | `F2s v2` |
> | Gitaly | 2 minimum | 8 vCPU, 30GB Memory | `n1-standard-8` | `m5.2xlarge` | `D8s v3` |
> | Sidekiq | 4 | 2 vCPU, 7.5GB Memory | `n1-standard-2` | `m5.large` | `D2s v3` |
> | GitLab Rails | 3 | 16 vCPU, 14.4GB Memory | `n1-highcpu-16` | `c5.4xlarge` | `F16s v2` |
> | Monitoring node | 1 | 2 vCPU, 1.8GB Memory | `n1-highcpu-2` | `c5.large` | `F2s v2` |
> | Object Storage | n/a | n/a | n/a | n/a | n/a |
> | NFS Server (optional, not recommended) | 1 | 4 vCPU, 3.6GB Memory | `n1-highcpu-4` | `c5.xlarge` | `F4s v2` |
50c50
< To set up GitLab and its components to accommodate up to 3,000 users:
---
> To set up GitLab and its components to accommodate up to 5,000 users:
Related issues
Closes #217853 (closed)
Author's checklist (required)
-
Follow the Documentation Guidelines and Style Guide. - If you have
developer
access or higher (for example, GitLab team members or Core Team members)-
Apply the documentation label, plus: - The corresponding DevOps stage and group label, if applicable.
-
development guidelines when changing docs under
doc/development/*
,CONTRIBUTING.md
, orREADME.md
. -
development guidelines and Documentation guidelines when changing docs under
development/documentation/*
. - development guidelines and Description templates (.gitlab/*) when creating/updating issue and MR description templates.
-
Assign the designated Technical Writer.
-
Do not add the feature, frontend, backend, ~"bug", or database labels if you are only updating documentation. These labels will cause the MR to be added to code verification QA issues.
When applicable:
-
Update the permissions table. -
Link docs to and from the higher-level index page, plus other related docs where helpful. -
Add GitLab's version history note(s). -
Add the product tier badge. -
Add/update the feature flag section. -
If you're changing document headings, search doc/*
,app/views/*
, andee/app/views/*
for old headings replacing with the new ones to avoid broken anchors.
Review checklist
All reviewers can help ensure accuracy, clarity, completeness, and adherence to the Documentation Guidelines and Style Guide.
1. Primary Reviewer
-
Review by a code reviewer or other selected colleague to confirm accuracy, clarity, and completeness. This can be skipped for minor fixes without substantive content changes.
2. Technical Writer
-
Optional: Technical writer review. If not requested for this MR, must be scheduled post-merge. To request for this MR, assign the writer listed for the applicable DevOps stage. -
Add Technical Writing and docs::
workflow label. -
Add docs-only when the only files changed are under doc/*
. -
Add twdoing when starting work on the MR. -
Add twfinished after approving and/or merging the MR.
-
3. Maintainer
-
Review by assigned maintainer, who can always request/require the above reviews. Maintainer's review can occur before or after a technical writer review. -
Ensure a release milestone is set. -
If there has not been a technical writer review, create an issue for one using the Doc Review template.