Make Geo HA docs the "main" reference architecture
Assertion
Relatively few Geo customers use a single machine per region. And these customers are not the ones needing a lot of support.
Problem
But our biggest and most important configuration doc, Geo database replication, assumes the minimal case of a single machine in both regions.
Primary | Secondary |
---|---|
1 monolithic node | 1 monolithic node |
- It's hard to extrapolate these instructions to other use-cases
- As a result of us engineers always working on the minimal case, instructions that are irrelevant to DB configuration have leaked into Geo database replication docs.
- Our Geo High Availability doc (arguably the most important one to customers) references Geo database replication in a way that will never be adequate, since HA segregates configuration and the other doc does not.
Proposal
Make the Geo setup docs follow on https://docs.gitlab.com/ee/administration/high_availability/README.html#reference-architecture. The primary and secondary clusters will each run:
- 3 PostgreSQL - 4 CPU, 16GiB memory per node
- 1 PgBouncer - 2 CPU, 4GiB memory
- 2 Redis - 2 CPU, 8GiB memory per node
- 3 Consul/Sentinel - 2 CPU, 2GiB memory per node
- 4 Sidekiq - 4 CPU, 16GiB memory per node
- 5 GitLab application nodes - 16 CPU, 64GiB memory per node
- 1 Gitaly - 16 CPU, 64GiB memory
- 1 Monitoring node - 2 CPU, 8GiB memory, 100GiB local storage
And relegate the 2-machine case to a lesser doc referencing the HA docs as needed. The HA docs, by nature, should make it clear that you can combine or segregate roles as you prefer.
First iteration of the transition:
-
Duplicate https://docs.gitlab.com/ee/administration/geo/replication/database.html into a doc called Geo database replication for GitLab Geo on 2 machines
. -
Rewrite https://docs.gitlab.com/ee/administration/geo/replication/database.html so it makes sense in context of Geo HA. -
Delete anything from Geo database replication for GitLab Geo on 2 machines
that doesn't apply to the simplest case. -
Do the swap. Move this section https://docs.gitlab.com/ee/administration/geo/replication/#using-omnibus-gitlab into its own doc called How to set up GitLab Geo on 2 machines
and link to it. Above that link, link to Geo HA docs.