Skip to content

Add 2k chart example for the hybrid reference architecture

Nailia Iskhakova requested to merge add-2k-hybrid-chart-example into master

What does this MR do?

The MR adds a new 2k hybrid environment based on the performance testing in gitlab-org/quality/reference-architectures#20 (comment 635661330).

In comparison with 3k and other HA envs, 2k uses Gitaly Sharded and has a single Redis node.

Service Nodes Configuration GCP Allocatable CPUs and Memory
Webservice 3 8 vCPU, 7.2 GB memory n1-highcpu-8 23.7 vCPU, 16.9 Gb
Sidekiq 2 2 vCPU, 7.5 GB memory n1-standard-2 3.7 vCPU, 11.8 Gb
Support 2 1 vCPU, 3.75 GB memory n1-standard-1 1.9 vCPU, 5.5 Gb

Rails:

  • Omnibus 2k: 2 Rails nodes * 5 Puma workers = 10
  • Hybrid 2k: 3 webservice nodes * 2 pods each * 2 workers = 12

Sidekiq:

  • Omnibus 2k: no standalone sidekiq nodes, integrated to Rails nodes
  • Hybrid 2k: 2 Sidekiq nodes n1-standard-2

Hybrid 2k:

  • 6 total Webservice pods
  • 2 total Sidekiq pods

Considerations:

  • From customer point of view, the cost of having 3 n1-highcpu-8 is lower than having 2 n1-highcpu-16. Thus we explored 2 options: Variant 1 - 2k hybrid (3P 4W) - 3 pods * 4 workers and Variant 2 - 2k hybrid (6P 2W) - 6 pods * 2 workers. From performance standpoint the results were similar, thus we recommend var#2.
  • Sidekiq - with the above recommended configuration each pod will be on a separated VM due to the Sidekiq limitation per pod (0.9 vCPU, 4 Gb). Alternatively we can use a single n1-standard-4 and have 2 pods on it. However in this case if something goes wrong with this VM, all sidekiq pods will be affected, so I think it may be more robust to have at least 2 VMs to provide higher availability. From GCP pricing standpoint, there is no difference between having 2 n1-standard-2 or 1 n1-standard-4 as far as I can see.

More detailed calculations are in gitlab-org/quality/reference-architectures#20 (comment 635661330)

Related issues

Checklist

See Definition of done.

For anything in this list which will not be completed, please provide a reason in the MR discussion.

Required

  • Merge Request Title and Description are up to date, accurate, and descriptive
  • MR targeting the appropriate branch
  • MR has a green pipeline on GitLab.com

Expected (please provide an explanation if not completing)

  • Test plan indicating conditions for success has been posted and passes
  • Documentation created/updated
  • Tests added
  • Integration tests added to GitLab QA
  • Equivalent MR/issue for omnibus-gitlab opened
Edited by Nailia Iskhakova

Merge request reports