From 330dfcf000e01727c97b9d1bca550394f6fd6639 Mon Sep 17 00:00:00 2001 From: Grant Young Date: Fri, 16 Sep 2022 13:37:08 +0100 Subject: [PATCH 01/22] Add section in Ref Arch docs around decisions --- .../reference_architectures/index.md | 106 ++++-------------- 1 file changed, 24 insertions(+), 82 deletions(-) diff --git a/doc/administration/reference_architectures/index.md b/doc/administration/reference_architectures/index.md index 7be12e123865e3..fee848dcee9fba 100644 --- a/doc/administration/reference_architectures/index.md +++ b/doc/administration/reference_architectures/index.md @@ -11,29 +11,6 @@ You can set up GitLab on a single server or scale it up to serve many users. This page details the recommended Reference Architectures that were built and verified by the GitLab Quality and Support teams. -Below is a chart representing each architecture tier and the number of users -they can handle. As your number of users grow with time, it's recommended that -you scale GitLab accordingly. - -![Reference Architectures](img/reference-architectures.png) - - -For GitLab instances with less than 2,000 users, it's recommended that you use -the [default setup](#automated-backups) by -[installing GitLab](../../install/index.md) on a single machine to minimize -maintenance and resource costs. - -If your organization has more than 2,000 users, the recommendation is to scale the -GitLab components to multiple machine nodes. The machine nodes are grouped by -components. The addition of these nodes increases the performance and -scalability of to your GitLab instance. - -When scaling GitLab, there are several factors to consider: - -- Multiple application nodes to handle frontend traffic. -- A load balancer is added in front to distribute traffic across the application nodes. -- The application nodes connects to a shared file server and PostgreSQL and Redis services on the backend. - ## Available reference architectures Depending on your workflow, the following recommended reference architectures @@ -375,86 +352,51 @@ As a general rule we unfortunately don't recommend Azure Services at this time. If required, we advise thorough testing is done at your intended scale over a sustained period to validate if the service is suitable. -## Availability Components - -GitLab comes with the following components for your use, listed from least to -most complex: +## How to decide what architecture to use -- [Automated backups](#automated-backups) -- [Traffic load balancer](#traffic-load-balancer) -- [Zero downtime updates](#zero-downtime-updates) -- [Automated database failover](#automated-database-failover) -- [Instance level replication with GitLab Geo](#instance-level-replication-with-gitlab-geo) +The Reference Architectures have been designed to strike a good balance between two important factors - Performance and Resilience. -As you implement these components, begin with a single server and then do -backups. Only after completing the first server should you proceed to the next. +While we've designed them to make it easier to know how to set up GitLab at scale, it can still be a challenge to know what one to pick specifically that would meet your requirements. -Also, not implementing extra servers for GitLab doesn't necessarily mean that you have -more downtime. Depending on your needs and experience level, single servers can -have more actual perceived uptime for your users. +As a general guide **the more performant and / or resilient you want your environment to be the more involved it will be**. -### Automated backups +In this section we'll go through the available designs you can choose from in order of the least complexity to most. -> - Level of complexity: **Low** -> - Required domain knowledge: PostgreSQL, GitLab configurations, Git +### Backups -This solution is appropriate for many teams that have the default GitLab installation. -With automatic backups of the GitLab repositories, configuration, and the database, -this can be an optimal solution if you don't have strict requirements. -[Automated backups](../../raketasks/backup_gitlab.md#configuring-cron-to-make-daily-backups) -is the least complex to setup. This provides a point-in-time recovery of a predetermined schedule. +For environments serving 2000 or fewer users we generally recommend that an [automated backups](../../raketasks/backup_gitlab.md#configuring-cron-to-make-daily-backups) strategy is employed over HA. -### Traffic load balancer **(PREMIUM SELF)** +Backups can provide a good level of RPO / RTO while avoiding the complexities that come with HA. -> - Level of complexity: **Medium** -> - Required domain knowledge: HAProxy, shared storage, distributed systems +### High Availability (HA) -This requires separating out GitLab into multiple application nodes with an added -[load balancer](../load_balancer.md). The load balancer distributes traffic -across GitLab application nodes. Meanwhile, each application node connects to a -shared file server and database systems on the back end. This way, if one of the -application servers fails, the workflow is not interrupted. -[HAProxy](https://www.haproxy.org/) is recommended as the load balancer. +For environments serving 3000 or more users we generally recommend that a HA strategy is used as at this level outages will impact more users. All the architectures in this range have HA built in by design for this reason. -With this added component you have a number of advantages compared -to the default installation: +For users who still want to have HA for a lower number of users this can also be achieved with an [adjusted 3K architecture as detailed here](3k_users.md#supported-modifications-for-lower-user-counts-ha), but as mentioned in the previous section we generally recommend a good backup strategy instead to keep your complexity lower and this should only be undertaken if HA is a key requirement for you. -- Increase the number of users. -- Enable zero-downtime upgrades. -- Increase availability. +#### Zero Downtime Upgrades -For more details on how to configure a traffic load balancer with GitLab, you can refer -to any of the [available reference architectures](#available-reference-architectures) with more than 1,000 users. +[Zero Downtime Upgrades](../../update/zero_downtime.md) are available for standard Reference Architecture environments with HA (Cloud Native Hybrid is not supported at this time). -### Zero downtime updates **(PREMIUM SELF)** +This allows for an environment to stay up during an upgrade, but the process is more involved as a result and has some limitations as detailed on the above linked page. -> - Level of complexity: **Medium** -> - Required domain knowledge: PostgreSQL, HAProxy, shared storage, distributed systems +When going through this process it's worth noting that there may still be brief moments of downtime when the HA mechanisms tale effect. -GitLab supports [zero-downtime upgrades](../../update/zero_downtime.md). -Single GitLab nodes can be updated with only a [few minutes of downtime](../../update/index.md#upgrade-based-on-installation-method). -To avoid this, we recommend to separate GitLab into several application nodes. -As long as at least one of each component is online and capable of handling the instance's usage load, your team's productivity is not interrupted during the update. +In most cases the downtime required for doing an upgrade in general shouldn't be substantial, so this should only be undertaken if it's a key requirement. -### Automated database failover **(PREMIUM SELF)** +### Cloud Native Hybrid (Kubernetes HA) -> - Level of complexity: **High** -> - Required domain knowledge: PgBouncer, Patroni, shared storage, distributed systems +As an additional layer of HA resilience you can deploy select components in Kubernetes, known as a Cloud Native Hybrid Reference Architecture. -By adding automatic failover for database systems, you can enable higher uptime -with additional database nodes. This extends the default database with -cluster management and failover policies. -[PgBouncer in conjunction with Patroni](../postgresql/replication_and_failover.md) -is recommended. +Note however this is an **advanced** setup. Running services in Kubernetes is well known to be complex. **This setup is only recommended** if you have strong working knowledge and experience in Kubernetes. -### Instance level replication with GitLab Geo **(PREMIUM SELF)** +### GitLab Geo (Disaster Recovery) + +With GitLab Geo you can have a full Disaster Recovery (DR) setup in place. With this setup you would have 2 or more separate environments, with one being a primary that gets replicated to the others. In the rare event the primary site went down completely you could fail over to one of the other environments. -> - Level of complexity: **Very High** -> - Required domain knowledge: Storage replication +It also gives you the ability of have distributed environments for widely distributed teams. -[GitLab Geo](../geo/index.md) allows you to replicate your GitLab -instance to other geographical locations as a read-only fully operational instance -that can also be promoted in case of disaster. +This is an advanced and involved setup and should only be undertaken if you have DR as a key requirement. Decisions then on how each environment are configured would also need to be taken, such as if each environment itself would be HA. ## Deviating from the suggested reference architectures -- GitLab From 55a7cb5a9cce908bd8a9dc4df131216d0336f8c8 Mon Sep 17 00:00:00 2001 From: Grant Young Date: Fri, 16 Sep 2022 14:07:06 +0100 Subject: [PATCH 02/22] Fix links --- doc/administration/reference_architectures/1k_users.md | 2 +- doc/subscriptions/bronze_starter.md | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/doc/administration/reference_architectures/1k_users.md b/doc/administration/reference_architectures/1k_users.md index 96b1e541f92d8a..00bd516d60b280 100644 --- a/doc/administration/reference_architectures/1k_users.md +++ b/doc/administration/reference_architectures/1k_users.md @@ -12,7 +12,7 @@ full list of reference architectures, see If you are serving up to 1,000 users and you don't have strict availability requirements, a single-node solution with -[frequent backups](index.md#automated-backups) is appropriate for +[frequent backups](index.md#backups) is appropriate for many organizations. > - **Supported users (approximate):** 1,000 diff --git a/doc/subscriptions/bronze_starter.md b/doc/subscriptions/bronze_starter.md index 62e045a75934cc..dcb10d3eb23470 100644 --- a/doc/subscriptions/bronze_starter.md +++ b/doc/subscriptions/bronze_starter.md @@ -82,8 +82,7 @@ the tiers are no longer mentioned in GitLab documentation: - Rake tasks: - [Displaying GitLab license information](../administration/raketasks/maintenance.md#show-gitlab-license-information) - Reference Architecture information: - - [Traffic load balancers](../administration/reference_architectures/index.md#traffic-load-balancer) - - [Zero downtime updates](../administration/reference_architectures/index.md#zero-downtime-updates) + - [Zero downtime upgrades](../administration/reference_architectures/index.md#zero-downtime-upgrades) - Repositories: - [Repository size limit](../user/admin_area/settings/account_and_limit_settings.md#repository-size-limit) - Repository mirroring: -- GitLab From 6401834dc9ca058b82de49920dda8be4e9b5c73e Mon Sep 17 00:00:00 2001 From: Grant Young Date: Fri, 16 Sep 2022 14:21:06 +0100 Subject: [PATCH 03/22] Add RA decision graph --- .../reference_architectures/index.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/doc/administration/reference_architectures/index.md b/doc/administration/reference_architectures/index.md index fee848dcee9fba..c575533b608aa5 100644 --- a/doc/administration/reference_architectures/index.md +++ b/doc/administration/reference_architectures/index.md @@ -360,7 +360,24 @@ While we've designed them to make it easier to know how to set up GitLab at scal As a general guide **the more performant and / or resilient you want your environment to be the more involved it will be**. -In this section we'll go through the available designs you can choose from in order of the least complexity to most. +In this section we'll go through the available designs you can choose from in order of the least complexity to most starting with a decision tree and sections after detailing each area. + +```mermaid +graph TD + A(What Reference Architecture should I use?) --> B(More than 3000 users?) + B -->|No| C(Do you need HA?) --> |Yes| F>Recommendation

3K architecture with supported modifications] + C -->|No| H>Recommendation

Architecture closest to user count
with Backups] + B -->|Yes| D>Recommendation

Architecture closest to user
count with HA] + D --> E[Do you have experience with and want additional
resilience with select components in Kubernetes?] + E -->|Yes| I>Recommendation

Cloud Native Hybrid architecture closest to user count] + D --> G[Do you need the environment to
stay up during upgrades?] --> |Yes| L>Recommendation

Zero-Downtime Upgrades] + + J(Do you need distributed environments or disaster recovery DR?) --> |Yes| K>Recommendation

GitLab Geo] + F --> J + H --> J + D --> J + I --> J +``` ### Backups -- GitLab From 46eaba454a54cdf90523ef29bf4ba5a96d1f77cb Mon Sep 17 00:00:00 2001 From: Grant Young Date: Fri, 16 Sep 2022 14:22:22 +0100 Subject: [PATCH 04/22] Update chart further --- doc/administration/reference_architectures/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/administration/reference_architectures/index.md b/doc/administration/reference_architectures/index.md index c575533b608aa5..e62c055c33e116 100644 --- a/doc/administration/reference_architectures/index.md +++ b/doc/administration/reference_architectures/index.md @@ -365,11 +365,11 @@ In this section we'll go through the available designs you can choose from in or ```mermaid graph TD A(What Reference Architecture should I use?) --> B(More than 3000 users?) - B -->|No| C(Do you need HA?) --> |Yes| F>Recommendation

3K architecture with supported modifications] + B -->|No| C(Do you need HA?) --> |Yes| F>Recommendation

3K architecture
with supported modifications] C -->|No| H>Recommendation

Architecture closest to user count
with Backups] B -->|Yes| D>Recommendation

Architecture closest to user
count with HA] D --> E[Do you have experience with and want additional
resilience with select components in Kubernetes?] - E -->|Yes| I>Recommendation

Cloud Native Hybrid architecture closest to user count] + E -->|Yes| I>Recommendation

Cloud Native Hybrid architecture
closest to user count] D --> G[Do you need the environment to
stay up during upgrades?] --> |Yes| L>Recommendation

Zero-Downtime Upgrades] J(Do you need distributed environments or disaster recovery DR?) --> |Yes| K>Recommendation

GitLab Geo] -- GitLab From 80805c094c21a9b79abd745d00d0c9ecf4d016fc Mon Sep 17 00:00:00 2001 From: Grant Young Date: Fri, 16 Sep 2022 14:26:36 +0100 Subject: [PATCH 05/22] Remove unneeded image --- .../img/reference-architectures.png | Bin 12585 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 doc/administration/reference_architectures/img/reference-architectures.png diff --git a/doc/administration/reference_architectures/img/reference-architectures.png b/doc/administration/reference_architectures/img/reference-architectures.png deleted file mode 100644 index 0f8e663b57b1fb04224d02fd2f7ce99d1b35c3b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12585 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

2tSVxX56= zGrZ#7w-WLBcdeT0*lwgA@tj&A{FmXteN%PUOv%3t2kvSEPn+__%|6q`P)OnVmGYk8kFqvD;&%I8 zGs3cVgZoUkuZ=Z&MU^Rs4^GpM&h1_*GW++Z(B7VCtJVAdd@kf+_c&Ua^6dOP`OjNd zzfV|gxRB>+$fR2Vo%Z<~84qaozZn;+Km-apH8|EhU=wf@<@-)%Pv<9AIu znkesK{&eY6XYPIT&@8eEB1;O{59+&Ufe*Mtpv&PDkx5au{ z-T&TuJF|!5#ADU<$2af)8@Kt#yLbO$-Htmn)YzQqyZ_X?{N_)QxqJ^k8Ccix&$mBX zDC;nJ`pu6FAF}%@WfpKV{NC{>v&@F!&3l<;b_|9VDaV-)%$p#~uh21Dc7InL!vjC( zGMfg46MgIgPelH|`SE^V<@1lrUsO(*cgWWI-~IO3>GyNZS+mQ^W=x1#84XWh zrp=Q{vir|2fBR_no~z5EpPq0E)W5a&VPg=(%rpg7b?bkE&uioE?fuYWwLJPwTK{u|jD_G9E`H|tm%k*_1s)#LE9ukx+H$O5gIx$IBK8|y< zJ+t=9%IC{ds*E1yG{0O?Em>|Nd&HfwLU^`pecH=snSTA+(reo}B+WIKW;$KUNfzVi z-1t_wH$(h}SsOodftr!^z1T0CW|r@~E248f>wIYvD80W-TNXKQmg1tEDJ4&TMLC`C zTlH(Hbk@XUosRvJHM43@v(8@T z4XbU;={j3qqU6yYVLNN#(VVski&IP2wF_*$(%#SfLB+)SUx2sunU(2Fozp~{b^ z-P`M9ywprI<*N9?HS?IS6`ZFu4uI+=AYQZ^zCswV`o|(qB+Ul^+rl#2itMuj4r=FoV`0Sj`dM?(EnJXPUHo3hFX*k=g7Tv!oUN0!hJ;$uT?rovp zgMZWIO}p0@e_Z|Y-AwoMMrXe~<9^+F_HHZFyKVJs>Nbta=GOn%7yf7cZnRzX&Rv!u zzuMz1>+AHDR!comR!%a)^$bAmx3?JIx zR4@d_DOk%n^yC|UW#njjQ^DW}Dmu6}J!WJnocu>_kvzi>>-LrW4n6WMX~&sQ_@tEC zG+c2>JI?Ikd-Mvs!m$&kjW<6s1X-(o+NjA8RLrzQevXqpLxH-PwVXp*UYU*2ABG>o zb7lDz^e^80$Z+YCW0_6Ek>LA=CCm)HT|75Gz7AE5pC7)KlgAv)UAf9?>eUkA ztL*!fT+3=&uDyu35ape)=b-SH$Uc99x^>;&RcyMZ&97|^h6mr*5888i z$5K{Z)t2tq1Nthb`t&a>-udQGj#)z>d;J7WYrE$)x5JMg60UJt_okxOBL3hR_BzGT zvOg7mopCd`ldc>TUvjFCe`eT?RkLsM9FzUyuc7si_E`UDh`IUkwfKpf zTV0OLx>H^hvr=VlZi4DtHGS2~li$^TI9PIJufEc(W2;1WJ)0QP?>qC1+geRk|L@uh zyNbO`&hqh}J)1i#_Y9Mw;kMdEf^V5_AN#Pd@!bR+YrB9&B@3OFf7`iVKRLH$>ct#~ zn;I`qecjqJPd46fy{Ke}5^IMZyh8bBZGQVj}r=zWH{;tC}Nd$vmyE0begXm;9V`plr!8Hpe!m6dhLae{%8!Jku>tc_$3Y}qXQd|K@<&8?p&>V1`V_LebU(enTQ zn;%TP)zY`0PByyem8qE>`hDw*cir1h=UuJc^xo^x`sYVF<4nJI9u)lcY!Q>q1ljl# zx30r^M|1n2s4es!M+zHBO7&{p!%GFAeYKM3u0e(d(0`G4M}0 zEF(^viD zTS{&o4`pghp8r#P-H+Fw#IvN<6&(~7ebD>n2b1Yu`)q4tS(jM{W93fvvD;l*`M&rR zgT;C6n;#Dxe_p=7>daT>18mWs+cxgda>*!+m^oi8DXRXm{x|mP|DRd^IHo;mdDbg+ z3$ujHrOMx{4$pWmvas6im_d)FVW!0T_TH)Inh(C`-}kX6!Azj9V5ji6SLaj0Tr)1u z5Sc4|_~*AMlVzpa>qI3h(%((KDLeC8*}9?$2jmw1JH!3;qnB^x>Y3Yrt`EE7qVcR} z=VWGn(PgP=mev-FdFDRXXk2T%V`g-~-Sjmn?|fI@3^?C7`Pi?Mjmx_x$visHz^hS+qM68 z8}0q#5clX7cTP;%x~E0#*Mq~1wO9Xsedg-kchT`*pPbsPzxuxHwTY>d1>P7>HB|fh z{8rfV4Sv7E%&flFScnHTAOE+v@oVq$SD$Je&R3;gDrw~3I_sowbaQUFN(_6OO~+QyX#I+y?mU8)rUz5PU(lri+c_Ta&s%b-dvox{_>Xx zk0$2ZJaw9sZu@ZB{eK0oKk`puEVvY^J@ZKL&5sA%uh!15ezR5cfcxcIxzm02dec0L z6b>wX_xbNJ@AbZxFLz2laA@$p`~2#gAGLv%FQY;p8fIJEtDSeY@4on*>h>GzGJFNQ ze(#wjTfabY#_`R11-pLROqY$%d24y^#*x_)4^~{gF1_>22YcITvh_i0r<~T5Os|)p zv-$gjMkL_f@aYNU*cc*%*4G=GdO;-V>*U-x9ulsZ*+tYlp#CNx9RLESAOIe|vht>oVJ+h-5Q&{ zHRl)V&fetrPp=^4fTXnh?(?U&%gnof)qm%Y6Q5gxul1Y6A3MF2Bkl03^LCSUvMp4D zZ`9`Rt-fS#W}^1=^wQLsPgkkSd|J2RXWQQB_E}HAe7X@4^>^c$+r|%j!tcCczOyjj z;>ok?UzznkcmIuB?`9CU`iQiJ-h+mdbLM^eVja3nqmAQvv+9jR7ImM^(|$UT?aI0@A_G`^6a9J` zlU4k>iuUvKz1aTFbk8CIcavWGE5|CYv6kKX@~w{TfbIIy&wH2g9gpyzCzt)dI(!&$Pbt5V9#%FzR&Ardg+{=jVc=|+X~vKBmAW4`RnY zo_3zH<}q;Y{Hd>Z_Vg6Ssnhulez!VJDbZC*XL?$vSg>1lm3?;JcAppLmrb+Fo+_2s z8CkBGq?@>^Ly5zn`u>q{?X#csd*5BSo-%Ef>-K#Pmz7+)_qj|KQCeqL{^wAAc3%rxK3tC5U1gC}Q*EsFlu@-^Gc`phors^BA28SmfFRIJ&% zb&Ak&frM{yrSsote~&(EBs$fw^p$vKw%JwBBn#`pyvVson9*sx%c|kyelry`PuXH?voN$xM2)>D|5sk`~qr!seZ4f8`$XJ#_i^^S^ibGcWi5 z9%=sT-{1W|```cTnDxGGOVsME=6WtZ$0lv^??A7^{;9VzedjP(-JurT*WX|6>KaqV zqOAPy)kXD{e3Ig&X}_G-?$NDEv9U}u3)GMSd8O&+Z$aBb|5r}g>v^?raS-3N6_ppJ zY&tzlI&~WR)qn;DV`-Leavt1IwmbiLoweqC+v=DPE{sfP7^Vv(u%|0VHkmEohOd}^_T7x&pV5bJj2SQ9|7|L5fyi5L2F4*-DBRLG1 z?-;r_NIu{L`RWPtnR@{o2MVt(Ta^2X!J-dj2g?jb(XZF%@B8%fy#2Yb(Avt4cN!Rs z7fky1$v5D}+otFq0_ zGH`8>d{FcK?YGs8{$b4L*4sF{dGM|fO>qCd_xY;sh3r?jHZ1-fHUFHQ@V?)h&v)^Q zeQAhdEGwD+W96%V^Y>lsK5N9xP*yVk{qI$)R;~Z5&c1MEb3Vh3$LF?}ck!C_UOk-8 zVByX_Be!@xV?mpJfyKSFV8I6|->=H@a2hbjyxLdOAUV5>;rMP)Krejb(e`VQ&ynP0`u^Fj`hN71|Sf1XJ7k#%*#cg70PC&pG*YcgytM$L1tv%Oc_593C z$@F70Kc4yVch3hK>$CHpR{r=@eXjVNO*8KqhA_?A8wYq4-aO-Z?5yvPzly)?eXw#tyR& zCrz3>=jUHPdMS9HGP`-bzyGgoDoa(~Eh5Z`-12SWA19vR5Q{gH_VJZ;DqWg>Af5Z=?M<%JHU79e)yjj7ftw* zx$n`>IXq6=YEORt85PA|YNJ18&tjYU6#ZWsi+t^O$vx)V))(G)qjhgt(p&Rcg1(Ec z)!o@4&pmJAo9BI(yEA`peA`m-tx{|*vw)L&T~XWGWLw+)`&&LRwj30F?sU3beYv>Y zn*y7%D!ISR0$S#CuV3T8Kjn<;dbwk%WepQ%+WowH>F%8HkCzh|^6qTDaaHhAZra(Y zhnzpP?XP$(A(+!jMD&+t86{f%80@H*3sA;Af*Bsq3W2<82;pN|Ne!Nks z{M`SuN^I{s)`)j|))%$(MBmssb?N)s+x_QS#r|;VHrT7zPt~4LS=Zbu*5GjF>_vO! z9Nz=0^*%3ZopyXiKGTnLNqJlS^?TJmTb$f7lv{q=Q)MK9gXd8@}SFlYR;p#IRT zUDA9o!c{Bu6uZ``nh@9#tTdW zGtTU4HQxPkSC~I<_y%T)Rmx9rffeS-JCbZ%3#uKmh& zF?oVQ)LEmqEn5uCf=*p|ow+z%KflGW_R`vu1~vj$qjHwENSw|!Nn6fw(LChE)7}kB z{Wo3M#N5mrcusCDV-y4Xo5C|myE4!Ha;=25z88gqs_}nkpx<|0@ zOXs%+@oj2{x7tQXzsz2d(DwV#tbG$td7UhmS|=bQ^T*nKAg45_SH#U6}e+K zPxR!2v)0yZHi?-zS#;*Zs8Y#I>HZ0IPA#?%`YpdV9KV*bVcLt^tsSA$&0qX(dCk4_ z@Yg)4gMap%UUOnj#zNNnGg?iTw@Pm7oo2jw%L&8$^wXJQPkR$KbzJ`LpX1Ax{d-RS zq{KG%jN0E1O%EF^J`$^3;dbO<^4a>Ng{;@My~_HVboj+eL7m=9U;f_SXDYc)pP?lt zZEok(Lr&Zcm;ZfTSaJR1>Fx8c+)GM5cJU#@La+F=yR8dPxpBXqC;6Ax%k<+jzl{Yl za~|zDSDYt(%6IWHF06y_owF`O*+;t zks7cpZQcG;^Y;1WO<3`3r;s^s>eBb~_THI!_sF@D)t?@=o_3r5x>k+HNaM;4iJkgO z^!H|a`JP~Yw{FkE8DAI*Qb-)bsMMezSX{6 zU;n@Ih2pKIGfJFXmgFZD&eP0i`T6)BuW^~E??K&i2F2hzM+;+<6}{)Ldfhi`g5$e& zdjzlWYwM;@+cRnE?sjeMat6i1bEm%AKVBoe&@29z@xx0_#^Fl&EME_6Nle_=${y|h zY*+T3>AR1;TPQeZ_rX_Hr_OR%?v!8k<)YH@yYHW5?3`@glo29hx9s4HwRdbCcQP-X zGv{Jt`o^!7CoZ{vK3n*$`rMOVfvI+Fjysz;zwKJGUgjy^1iSQK-`M}#_Ui86_WxSIxf8tB zr)BF-uuPe^PcPJEY5z3q=zP}47o!!+PRMH9>6x%EDciWS=ZoZTo2k~F!4eT24EZh9 ze(&0zOiR!FB^3UH?W)}AyH8$+zx{g2-C&&nr`no3K9a|KHO*^h&O04@)cSVLbPmWPkni64o&dOuT47>AB*ZujL|91bk)UJ8A_4eK93vBfWjFD;6)%@!()Kl)p1=NCe^?c#QGQsX zoME9~e5XpyoU7hDFE75wcu8F3c~`ZU+@HGrUbF1p*-t7mFYwYR-=QdVZACFZTl3d$ zH7WN8X|t?` z;H9!$jpd6~==se@14_RAklVqT{$QC!{lYtrCKqc?f8L`wA-u11)z!J3sm$Mxtv?X? zzQnfLuK0iNmy23G;x3cd_aB)!_s>FxxSKlXj`n!R&XM3YDe!;K_pL{FuJ$zL*2zdh;}9(x}i_H$pD(bM<`OT5JFR|qd=y_lLj$>8Ok>H9ZK+L1Z; z{5gv~TlSS$D1ZI{j)Vx zpZ;f3%h_JWKT{5*bGQGo+4{UjEJbjWsk-m$kGhjiUbGSYC8TiSOXj1}nu}~sW_KQx zT65l<{a-R);NMCOT~~`Y`?e{*KBg8s@mm1n`rCd%pMyNy62JYwy*2sXmPP}f1M?%a z_9nCoOGr!Ccqts+=F#GGbw^&{6~=|Dcy#29(w?Q4aQr`5tn$zMf5>|uugf~RGw-Kw zc=%`IoG-8TeO5fX`l`%@DBgwhEatl8d)*g4rQ>leBSojGLlvXf_$aqr>oDOR=TYDG$y#jbHl z+AVVI>hhmHNq*G%@ce(^1kWqO2J|I6&$ zjsE(@39-xHGxl=x3g2W)Gdi|Nb>6AlKJph|R`q|=uoeAS_N-a#(AeWt~$(69B1g@2da+ -- GitLab From f8919e1bf4cb665d38bd9c7588b540f59d96b2c9 Mon Sep 17 00:00:00 2001 From: Grant Young Date: Fri, 16 Sep 2022 14:32:41 +0100 Subject: [PATCH 06/22] Adjust page structure to improve flow --- .../reference_architectures/index.md | 313 +++++++++--------- 1 file changed, 152 insertions(+), 161 deletions(-) diff --git a/doc/administration/reference_architectures/index.md b/doc/administration/reference_architectures/index.md index e62c055c33e116..a70a7c822c495d 100644 --- a/doc/administration/reference_architectures/index.md +++ b/doc/administration/reference_architectures/index.md @@ -7,16 +7,15 @@ info: To determine the technical writer assigned to the Stage/Group associated w # Reference architectures **(FREE SELF)** -You can set up GitLab on a single server or scale it up to serve many users. -This page details the recommended Reference Architectures that were built and -verified by the GitLab Quality and Support teams. +The GitLab Reference Architectures have been designed and tested by our +GitLab Quality and Support teams to provide recommended deployments at scale. ## Available reference architectures Depending on your workflow, the following recommended reference architectures may need to be adapted accordingly. Your workload is influenced by factors including how active your users are, how much automation you use, mirroring, -and repository/change size. Additionally the displayed memory values are +and repository/change size. Additionally, the displayed memory values are provided by [GCP machine types](https://cloud.google.com/compute/docs/machine-types). For different cloud vendors, attempt to select options that best match the provided architecture. @@ -49,6 +48,152 @@ to get assistance from Support with troubleshooting the [2,000 users](2k_users.m and higher reference architectures. [Read more about our definition of scaled architectures](https://about.gitlab.com/support/#definition-of-scaled-architecture). +## Deciding on what architecture to use + +The Reference Architectures have been designed to strike a good balance between two important factors - Performance and Resilience. + +While we've designed them to make it easier to know how to set up GitLab at scale, it can still be a challenge to know what one to pick specifically that would meet your requirements. + +As a general guide **the more performant and / or resilient you want your environment to be the more involved it will be**. + +In this section we'll go through the available designs you can choose from in order of the least complexity to most starting with a decision tree and sections after detailing each area. + +```mermaid +graph TD + A(What Reference Architecture should I use?) --> B(More than 3000 users?) + B -->|No| C(Do you need HA?) --> |Yes| F>Recommendation

3K architecture
with supported modifications] + C -->|No| H>Recommendation

Architecture closest to user count
with Backups] + B -->|Yes| D>Recommendation

Architecture closest to user
count with HA] + D --> E[Do you have experience with and want additional
resilience with select components in Kubernetes?] + E -->|Yes| I>Recommendation

Cloud Native Hybrid architecture
closest to user count] + D --> G[Do you need the environment to
stay up during upgrades?] --> |Yes| L>Recommendation

Zero-Downtime Upgrades] + + J(Do you need distributed environments or disaster recovery DR?) --> |Yes| K>Recommendation

GitLab Geo] + F --> J + H --> J + D --> J + I --> J +``` + +### Backups + +For environments serving 2000 or fewer users we generally recommend that an [automated backup](../../raketasks/backup_gitlab.md#configuring-cron-to-make-daily-backups) strategy is employed over HA. + +Backups can provide a good level of RPO / RTO while avoiding the complexities that come with HA. + +### High Availability (HA) + +For environments serving 3000 or more users we generally recommend that a HA strategy is used as at this level outages will impact more users. All the architectures in this range have HA built in by design for this reason. + +For users who still want to have HA for a lower number of users this can also be achieved with an [adjusted 3K architecture as detailed here](3k_users.md#supported-modifications-for-lower-user-counts-ha), but as mentioned in the previous section we generally recommend a good backup strategy instead to keep your complexity lower and this should only be undertaken if HA is a key requirement for you. + +#### Zero Downtime Upgrades + +[Zero Downtime Upgrades](../../update/zero_downtime.md) are available for standard Reference Architecture environments with HA (Cloud Native Hybrid is not supported at this time). + +This allows for an environment to stay up during an upgrade, but the process is more involved as a result and has some limitations as detailed on the above linked page. + +When going through this process it's worth noting that there may still be brief moments of downtime when the HA mechanisms tale effect. + +In most cases the downtime required for doing an upgrade in general shouldn't be substantial, so this should only be undertaken if it's a key requirement. + +### Cloud Native Hybrid (Kubernetes HA) + +As an additional layer of HA resilience you can deploy select components in Kubernetes, known as a Cloud Native Hybrid Reference Architecture. + +Note however this is an **advanced** setup. Running services in Kubernetes is well known to be complex. **This setup is only recommended** if you have strong working knowledge and experience in Kubernetes. + +### GitLab Geo (Disaster Recovery) + +With GitLab Geo you can have a full Disaster Recovery (DR) setup in place. With this setup you would have 2 or more separate environments, with one being a primary that gets replicated to the others. In the rare event the primary site went down completely you could fail over to one of the other environments. + +It also gives you the ability of have distributed environments for widely distributed teams. + +This is an advanced and involved setup and should only be undertaken if you have DR as a key requirement. Decisions then on how each environment are configured would also need to be taken, such as if each environment itself would be HA. + +## Recommended cloud providers and services + +NOTE: +The following lists are non-exhaustive. Generally, other cloud providers not listed +here likely work with the same specs, but this hasn't been validated. +Additionally, when it comes to other cloud provider services not listed here, +it's advised to be cautious as each implementation can be notably different +and should be tested thoroughly before production use. + +Through testing and real life usage, the Reference Architectures are validated and supported on the following cloud providers: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Reference ArchitectureGCPAWSAzureBare Metal
Omnibus
Cloud Native Hybrid
+ +Additionally, the following cloud provider services are validated and supported for use as part of the Reference Architectures: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cloud ServiceGCPAWSBare Metal
Object Storage✅   Cloud Storage✅   S3✅   MinIO
Database✅   Cloud SQL✅   RDS
Redis✅   ElastiCache
+ +The following specific cloud provider services have been found to have issues in terms of either functionality or performance. As such, they either have caveats that should be considered or are not recommended: + +- [Amazon Aurora](https://aws.amazon.com/rds/aurora/) is incompatible. See [14.4.0](../../update/index.md#1440) for more details. +- [Azure Blob Storage](https://azure.microsoft.com/en-gb/services/storage/blobs/) has been found to have performance limits that can impact production use at certain times. For larger Reference Architectures the service may not be sufficient for production use and an alternative is recommended for use instead. +- [Azure Database for PostgreSQL Server](https://azure.microsoft.com/en-gb/services/postgresql/#overview) (Single / Flexible) is not recommended for use due to notable performance issues or missing functionality. + +NOTE: +As a general rule we unfortunately don't recommend Azure Services at this time. +If required, we advise thorough testing is done at your intended scale +over a sustained period to validate if the service is suitable. + ## Validation and test results The [Quality Engineering team](https://about.gitlab.com/handbook/engineering/quality/quality-engineering/) @@ -74,7 +219,7 @@ Network latency on the test environments between components on all Cloud Provide We aim to have a "test smart" approach where architectures tested have a good range that can also apply to others. Testing focuses on 10k Omnibus on GCP as the testing has shown this is a good bellwether for the other architectures and cloud providers as well as Cloud Native Hybrids. -The Standard Reference Architectures are designed to be platform agnostic, with everything being run on VMs via [Omnibus GitLab](https://docs.gitlab.com/omnibus/). While testing occurs primarily on GCP, ad-hoc testing has shown that they perform similarly on equivalently specced hardware on other Cloud Providers or if run on premises (bare-metal). +The Standard Reference Architectures are designed to be platform-agnostic, with everything being run on VMs via [Omnibus GitLab](https://docs.gitlab.com/omnibus/). While testing occurs primarily on GCP, ad-hoc testing has shown that they perform similarly on equivalently specced hardware on other Cloud Providers or if run on premises (bare-metal). Testing on these reference architectures is performed with the [GitLab Performance Tool](https://gitlab.com/gitlab-org/quality/performance) @@ -88,14 +233,14 @@ per 1,000 users: - API: 20 RPS - Web: 2 RPS - Git (Pull): 2 RPS -- Git (Push): 0.4 RPS (rounded to nearest integer) +- Git (Push): 0.4 RPS (rounded to the nearest integer) ### How to interpret the results NOTE: Read our blog post on [how our QA team leverages GitLab performance testing tool](https://about.gitlab.com/blog/2020/02/18/how-were-building-up-performance-testing-of-gitlab/). -Testing is done publicly and all results are shared. +Testing is done publicly, and all results are shared. The following table details the testing done against the reference architectures along with the frequency and results. Additional testing is continuously evaluated, and the table is updated accordingly. @@ -269,152 +414,6 @@ The following table details the cost to run the different reference architecture -## Recommended cloud providers and services - -NOTE: -The following lists are non exhaustive. Generally, other cloud providers not listed -here likely work with the same specs, but this hasn't been validated. -Additionally, when it comes to other cloud provider services not listed here, -it's advised to be cautious as each implementation can be notably different -and should be tested thoroughly before production use. - -Through testing and real life usage, the Reference Architectures are validated and supported on the following cloud providers: - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Reference ArchitectureGCPAWSAzureBare Metal
Omnibus
Cloud Native Hybrid
- -Additionally, the following cloud provider services are validated and supported for use as part of the Reference Architectures: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cloud ServiceGCPAWSBare Metal
Object Storage✅   Cloud Storage✅   S3✅   MinIO
Database✅   Cloud SQL✅   RDS
Redis✅   ElastiCache
- -The following specific cloud provider services have been found to have issues in terms of either functionality or performance. As such, they either have caveats that should be considered or are not recommended: - -- [Amazon Aurora](https://aws.amazon.com/rds/aurora/) is incompatible. See [14.4.0](../../update/index.md#1440) for more details. -- [Azure Blob Storage](https://azure.microsoft.com/en-gb/services/storage/blobs/) has been found to have performance limits that can impact production use at certain times. For larger Reference Architectures the service may not be sufficient for production use and an alternative is recommended for use instead. -- [Azure Database for PostgreSQL Server](https://azure.microsoft.com/en-gb/services/postgresql/#overview) (Single / Flexible) is not recommended for use due to notable performance issues or missing functionality. - -NOTE: -As a general rule we unfortunately don't recommend Azure Services at this time. -If required, we advise thorough testing is done at your intended scale -over a sustained period to validate if the service is suitable. - -## How to decide what architecture to use - -The Reference Architectures have been designed to strike a good balance between two important factors - Performance and Resilience. - -While we've designed them to make it easier to know how to set up GitLab at scale, it can still be a challenge to know what one to pick specifically that would meet your requirements. - -As a general guide **the more performant and / or resilient you want your environment to be the more involved it will be**. - -In this section we'll go through the available designs you can choose from in order of the least complexity to most starting with a decision tree and sections after detailing each area. - -```mermaid -graph TD - A(What Reference Architecture should I use?) --> B(More than 3000 users?) - B -->|No| C(Do you need HA?) --> |Yes| F>Recommendation

3K architecture
with supported modifications] - C -->|No| H>Recommendation

Architecture closest to user count
with Backups] - B -->|Yes| D>Recommendation

Architecture closest to user
count with HA] - D --> E[Do you have experience with and want additional
resilience with select components in Kubernetes?] - E -->|Yes| I>Recommendation

Cloud Native Hybrid architecture
closest to user count] - D --> G[Do you need the environment to
stay up during upgrades?] --> |Yes| L>Recommendation

Zero-Downtime Upgrades] - - J(Do you need distributed environments or disaster recovery DR?) --> |Yes| K>Recommendation

GitLab Geo] - F --> J - H --> J - D --> J - I --> J -``` - -### Backups - -For environments serving 2000 or fewer users we generally recommend that an [automated backups](../../raketasks/backup_gitlab.md#configuring-cron-to-make-daily-backups) strategy is employed over HA. - -Backups can provide a good level of RPO / RTO while avoiding the complexities that come with HA. - -### High Availability (HA) - -For environments serving 3000 or more users we generally recommend that a HA strategy is used as at this level outages will impact more users. All the architectures in this range have HA built in by design for this reason. - -For users who still want to have HA for a lower number of users this can also be achieved with an [adjusted 3K architecture as detailed here](3k_users.md#supported-modifications-for-lower-user-counts-ha), but as mentioned in the previous section we generally recommend a good backup strategy instead to keep your complexity lower and this should only be undertaken if HA is a key requirement for you. - -#### Zero Downtime Upgrades - -[Zero Downtime Upgrades](../../update/zero_downtime.md) are available for standard Reference Architecture environments with HA (Cloud Native Hybrid is not supported at this time). - -This allows for an environment to stay up during an upgrade, but the process is more involved as a result and has some limitations as detailed on the above linked page. - -When going through this process it's worth noting that there may still be brief moments of downtime when the HA mechanisms tale effect. - -In most cases the downtime required for doing an upgrade in general shouldn't be substantial, so this should only be undertaken if it's a key requirement. - -### Cloud Native Hybrid (Kubernetes HA) - -As an additional layer of HA resilience you can deploy select components in Kubernetes, known as a Cloud Native Hybrid Reference Architecture. - -Note however this is an **advanced** setup. Running services in Kubernetes is well known to be complex. **This setup is only recommended** if you have strong working knowledge and experience in Kubernetes. - -### GitLab Geo (Disaster Recovery) - -With GitLab Geo you can have a full Disaster Recovery (DR) setup in place. With this setup you would have 2 or more separate environments, with one being a primary that gets replicated to the others. In the rare event the primary site went down completely you could fail over to one of the other environments. - -It also gives you the ability of have distributed environments for widely distributed teams. - -This is an advanced and involved setup and should only be undertaken if you have DR as a key requirement. Decisions then on how each environment are configured would also need to be taken, such as if each environment itself would be HA. - ## Deviating from the suggested reference architectures As a general guideline, the further away you move from the Reference Architectures, @@ -434,11 +433,3 @@ However, it is still an additional layer and may still add some support complexi Other technologies, like [Docker swarm](https://docs.docker.com/engine/swarm/) are not officially supported, but can be implemented at your own risk. In that case, GitLab Support is not able to help you. - -## Supported modifications for lower user count HA reference architectures - -The reference architectures for user counts [3,000](3k_users.md) and up support High Availability (HA). - -In the specific case you have the requirement to achieve HA but have a lower user count, select modifications to the [3,000 user](3k_users.md) architecture are supported. - -For more details, [refer to this section in the architecture's documentation](3k_users.md#supported-modifications-for-lower-user-counts-ha). -- GitLab From 3f102cedb17ee97ea26cda617477728cc903115b Mon Sep 17 00:00:00 2001 From: Grant Young Date: Fri, 16 Sep 2022 14:33:53 +0100 Subject: [PATCH 07/22] Fix styling --- doc/administration/reference_architectures/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/administration/reference_architectures/index.md b/doc/administration/reference_architectures/index.md index a70a7c822c495d..bf426eadb726f9 100644 --- a/doc/administration/reference_architectures/index.md +++ b/doc/administration/reference_architectures/index.md @@ -77,13 +77,13 @@ graph TD ### Backups -For environments serving 2000 or fewer users we generally recommend that an [automated backup](../../raketasks/backup_gitlab.md#configuring-cron-to-make-daily-backups) strategy is employed over HA. +For environments serving 2,000 or fewer users we generally recommend that an [automated backup](../../raketasks/backup_gitlab.md#configuring-cron-to-make-daily-backups) strategy is employed over HA. Backups can provide a good level of RPO / RTO while avoiding the complexities that come with HA. ### High Availability (HA) -For environments serving 3000 or more users we generally recommend that a HA strategy is used as at this level outages will impact more users. All the architectures in this range have HA built in by design for this reason. +For environments serving 3,000 or more users we generally recommend that a HA strategy is used as at this level outages will impact more users. All the architectures in this range have HA built in by design for this reason. For users who still want to have HA for a lower number of users this can also be achieved with an [adjusted 3K architecture as detailed here](3k_users.md#supported-modifications-for-lower-user-counts-ha), but as mentioned in the previous section we generally recommend a good backup strategy instead to keep your complexity lower and this should only be undertaken if HA is a key requirement for you. -- GitLab From 089b271355a963db759921a7462d43814c592977 Mon Sep 17 00:00:00 2001 From: Grant Young Date: Fri, 16 Sep 2022 14:35:58 +0100 Subject: [PATCH 08/22] Add links --- doc/administration/reference_architectures/10k_users.md | 1 + doc/administration/reference_architectures/1k_users.md | 1 + doc/administration/reference_architectures/25k_users.md | 1 + doc/administration/reference_architectures/2k_users.md | 1 + doc/administration/reference_architectures/3k_users.md | 1 + doc/administration/reference_architectures/50k_users.md | 1 + doc/administration/reference_architectures/5k_users.md | 1 + 7 files changed, 7 insertions(+) diff --git a/doc/administration/reference_architectures/10k_users.md b/doc/administration/reference_architectures/10k_users.md index 5d676dac000137..2bfea8f1b0b9c5 100644 --- a/doc/administration/reference_architectures/10k_users.md +++ b/doc/administration/reference_architectures/10k_users.md @@ -17,6 +17,7 @@ full list of reference architectures, see > - **Validation and test results:** The Quality Engineering team does [regular smoke and performance tests](index.md#validation-and-test-results) to ensure the reference architectures remain compliant > - **Test requests per second (RPS) rates:** API: 200 RPS, Web: 20 RPS, Git (Pull): 20 RPS, Git (Push): 4 RPS > - **[Latest Results](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Benchmarks/Latest/10k)** +> - **Unsure on what Reference Architecture to use?** [Head to this guide for more info](index.md#deciding-on-what-architecture-to-use). | Service | Nodes | Configuration | GCP | AWS | Azure | |------------------------------------------|-------|-------------------------|------------------|----------------|-----------| diff --git a/doc/administration/reference_architectures/1k_users.md b/doc/administration/reference_architectures/1k_users.md index 00bd516d60b280..84c3c7b48212be 100644 --- a/doc/administration/reference_architectures/1k_users.md +++ b/doc/administration/reference_architectures/1k_users.md @@ -24,6 +24,7 @@ many organizations. > - **Validation and test results:** The Quality Engineering team does [regular smoke and performance tests](index.md#validation-and-test-results) to ensure the reference architectures remain compliant > - **Test requests per second (RPS) rates:** API: 20 RPS, Web: 2 RPS, Git (Pull): 2 RPS, Git (Push): 1 RPS > - **[Latest Results](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Benchmarks/Latest/1k)** +> - **Unsure on what Reference Architecture to use?** [Head to this guide for more info](index.md#deciding-on-what-architecture-to-use). | Users | Configuration | GCP | AWS | Azure | |--------------|-------------------------|----------------|--------------|----------| diff --git a/doc/administration/reference_architectures/25k_users.md b/doc/administration/reference_architectures/25k_users.md index 423dbc7abfbcea..fe7a048c920ecc 100644 --- a/doc/administration/reference_architectures/25k_users.md +++ b/doc/administration/reference_architectures/25k_users.md @@ -17,6 +17,7 @@ full list of reference architectures, see > - **Validation and test results:** The Quality Engineering team does [regular smoke and performance tests](index.md#validation-and-test-results) to ensure the reference architectures remain compliant > - **Test requests per second (RPS) rates:** API: 500 RPS, Web: 50 RPS, Git (Pull): 50 RPS, Git (Push): 10 RPS > - **[Latest Results](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Benchmarks/Latest/25k)** +> - **Unsure on what Reference Architecture to use?** [Head to this guide for more info](index.md#deciding-on-what-architecture-to-use). | Service | Nodes | Configuration | GCP | AWS | Azure | |------------------------------------------|-------|-------------------------|------------------|--------------|-----------| diff --git a/doc/administration/reference_architectures/2k_users.md b/doc/administration/reference_architectures/2k_users.md index 99cc6d47f6a72b..417e0a52cf7e5b 100644 --- a/doc/administration/reference_architectures/2k_users.md +++ b/doc/administration/reference_architectures/2k_users.md @@ -18,6 +18,7 @@ For a full list of reference architectures, see > - **Validation and test results:** The Quality Engineering team does [regular smoke and performance tests](index.md#validation-and-test-results) to ensure the reference architectures remain compliant > - **Test requests per second (RPS) rates:** API: 40 RPS, Web: 4 RPS, Git (Pull): 4 RPS, Git (Push): 1 RPS > - **[Latest Results](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Benchmarks/Latest/2k)** +> - **Unsure on what Reference Architecture to use?** [Head to this guide for more info](index.md#deciding-on-what-architecture-to-use). | Service | Nodes | Configuration | GCP | AWS | Azure | |----------------------------|-------|------------------------|-----------------|--------------|----------| diff --git a/doc/administration/reference_architectures/3k_users.md b/doc/administration/reference_architectures/3k_users.md index 5c227e3dc271ae..6b437b440424e5 100644 --- a/doc/administration/reference_architectures/3k_users.md +++ b/doc/administration/reference_architectures/3k_users.md @@ -27,6 +27,7 @@ For a full list of reference architectures, see > - **Validation and test results:** The Quality Engineering team does [regular smoke and performance tests](index.md#validation-and-test-results) to ensure the reference architectures remain compliant > - **Test requests per second (RPS) rates:** API: 60 RPS, Web: 6 RPS, Git (Pull): 6 RPS, Git (Push): 1 RPS > - **[Latest Results](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Benchmarks/Latest/3k)** +> - **Unsure on what Reference Architecture to use?** [Head to this guide for more info](index.md#deciding-on-what-architecture-to-use). | Service | Nodes | Configuration | GCP | AWS | Azure | |-------------------------------------------|-------|-----------------------|-----------------|--------------|----------| diff --git a/doc/administration/reference_architectures/50k_users.md b/doc/administration/reference_architectures/50k_users.md index bddec55ba71656..56b5b200915c82 100644 --- a/doc/administration/reference_architectures/50k_users.md +++ b/doc/administration/reference_architectures/50k_users.md @@ -17,6 +17,7 @@ full list of reference architectures, see > - **Validation and test results:** The Quality Engineering team does [regular smoke and performance tests](index.md#validation-and-test-results) to ensure the reference architectures remain compliant > - **Test requests per second (RPS) rates:** API: 1000 RPS, Web: 100 RPS, Git (Pull): 100 RPS, Git (Push): 20 RPS > - **[Latest Results](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Benchmarks/Latest/50k)** +> - **Unsure on what Reference Architecture to use?** [Head to this guide for more info](index.md#deciding-on-what-architecture-to-use). | Service | Nodes | Configuration | GCP | AWS | Azure | |------------------------------------------|-------|-------------------------|------------------|---------------|-----------| diff --git a/doc/administration/reference_architectures/5k_users.md b/doc/administration/reference_architectures/5k_users.md index 0e599df7c1f4b6..6fe23e9096bd8c 100644 --- a/doc/administration/reference_architectures/5k_users.md +++ b/doc/administration/reference_architectures/5k_users.md @@ -24,6 +24,7 @@ costly-to-operate environment by using the > - **Validation and test results:** The Quality Engineering team does [regular smoke and performance tests](index.md#validation-and-test-results) to ensure the reference architectures remain compliant > - **Test requests per second (RPS) rates:** API: 100 RPS, Web: 10 RPS, Git (Pull): 10 RPS, Git (Push): 2 RPS > - **[Latest Results](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Benchmarks/Latest/5k)** +> - **Unsure on what Reference Architecture to use?** [Head to this guide for more info](index.md#deciding-on-what-architecture-to-use). | Service | Nodes | Configuration | GCP | AWS | Azure | |-------------------------------------------|-------|-------------------------|-----------------|--------------|----------| -- GitLab From 5c9d1a762fb4ebb9e5d1ae4cb677a2081d028d9f Mon Sep 17 00:00:00 2001 From: Grant Young Date: Fri, 16 Sep 2022 15:23:00 +0100 Subject: [PATCH 09/22] Further tweaks --- doc/administration/reference_architectures/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/administration/reference_architectures/index.md b/doc/administration/reference_architectures/index.md index bf426eadb726f9..9557740ff0fa3a 100644 --- a/doc/administration/reference_architectures/index.md +++ b/doc/administration/reference_architectures/index.md @@ -68,7 +68,7 @@ graph TD E -->|Yes| I>Recommendation

Cloud Native Hybrid architecture
closest to user count] D --> G[Do you need the environment to
stay up during upgrades?] --> |Yes| L>Recommendation

Zero-Downtime Upgrades] - J(Do you need distributed environments or disaster recovery DR?) --> |Yes| K>Recommendation

GitLab Geo] + J(Do you need distributed environments or disaster recovery?) --> |Yes| K>Recommendation

GitLab Geo] F --> J H --> J D --> J @@ -109,7 +109,7 @@ With GitLab Geo you can have a full Disaster Recovery (DR) setup in place. With It also gives you the ability of have distributed environments for widely distributed teams. -This is an advanced and involved setup and should only be undertaken if you have DR as a key requirement. Decisions then on how each environment are configured would also need to be taken, such as if each environment itself would be HA. +This is an **advanced and involved** setup and should only be undertaken if you have DR as a key requirement. Decisions then on how each environment are configured would also need to be taken, such as if each environment itself would be the full size and / or have HA. ## Recommended cloud providers and services -- GitLab From 9195b48d249c95285fb28e0eca06c23fd96ecc89 Mon Sep 17 00:00:00 2001 From: Grant Young Date: Fri, 16 Sep 2022 15:33:10 +0100 Subject: [PATCH 10/22] Tweak graph further --- .../reference_architectures/index.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/doc/administration/reference_architectures/index.md b/doc/administration/reference_architectures/index.md index 9557740ff0fa3a..ff3db57647448e 100644 --- a/doc/administration/reference_architectures/index.md +++ b/doc/administration/reference_architectures/index.md @@ -59,16 +59,17 @@ As a general guide **the more performant and / or resilient you want your enviro In this section we'll go through the available designs you can choose from in order of the least complexity to most starting with a decision tree and sections after detailing each area. ```mermaid -graph TD - A(What Reference Architecture should I use?) --> B(More than 3000 users?) - B -->|No| C(Do you need HA?) --> |Yes| F>Recommendation

3K architecture
with supported modifications] - C -->|No| H>Recommendation

Architecture closest to user count
with Backups] - B -->|Yes| D>Recommendation

Architecture closest to user
count with HA] - D --> E[Do you have experience with and want additional
resilience with select components in Kubernetes?] - E -->|Yes| I>Recommendation

Cloud Native Hybrid architecture
closest to user count] - D --> G[Do you need the environment to
stay up during upgrades?] --> |Yes| L>Recommendation

Zero-Downtime Upgrades] +%%{init: { 'theme': 'base' } }%% +graph TD + A(What Reference Architecture should I use?) --> B(More than 3000 users?) + B -->|No| C(Do you need HA?) --> |Yes| F>Recommendation

3K architecture
with supported modifications] + C -->|No| H>Recommendation

Architecture closest to user count
with Backups] + B -->|Yes| D>Recommendation

Architecture closest to user
count with HA] + D --> E[Do you have experience with
and want additional resilience
with select components in Kubernetes?] + E -->|Yes| I>Recommendation

Cloud Native Hybrid architecture
closest to user count] + D --> G[Do you need the environment to
stay up during upgrades?] --> |Yes| L>Recommendation

Zero-Downtime Upgrades] - J(Do you need distributed environments or disaster recovery?) --> |Yes| K>Recommendation

GitLab Geo] + J(Do you need distributed environments or disaster recovery?) --> |Yes| K>Recommendation

GitLab Geo] F --> J H --> J D --> J -- GitLab From 7fe7d8006bda71c244c8a61298eec89769e496e6 Mon Sep 17 00:00:00 2001 From: Grant Young Date: Fri, 16 Sep 2022 15:52:06 +0100 Subject: [PATCH 11/22] Adjust test in HA sections. --- doc/administration/reference_architectures/index.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/administration/reference_architectures/index.md b/doc/administration/reference_architectures/index.md index ff3db57647448e..adbb48766cc85d 100644 --- a/doc/administration/reference_architectures/index.md +++ b/doc/administration/reference_architectures/index.md @@ -84,9 +84,11 @@ Backups can provide a good level of RPO / RTO while avoiding the complexities th ### High Availability (HA) -For environments serving 3,000 or more users we generally recommend that a HA strategy is used as at this level outages will impact more users. All the architectures in this range have HA built in by design for this reason. +High Availability ensure every component in the GitLab setup can handle failures through various mechanisms. To achieve this however is involved, and the environments required can be sizeable. -For users who still want to have HA for a lower number of users this can also be achieved with an [adjusted 3K architecture as detailed here](3k_users.md#supported-modifications-for-lower-user-counts-ha), but as mentioned in the previous section we generally recommend a good backup strategy instead to keep your complexity lower and this should only be undertaken if HA is a key requirement for you. +For environments serving 3,000 or more users we generally recommend that a HA strategy is used as at this level outages will have a bigger impact against more users. All the architectures in this range have HA built in by design for this reason. + +For users who still want to have HA for a lower number of users this can also be achieved with an [adjusted 3K architecture as detailed here](3k_users.md#supported-modifications-for-lower-user-counts-ha), but as mentioned in the [previous section](#backups) we generally recommend a good backup strategy instead to keep your complexity lower and this should only be undertaken if HA is a key requirement for you. #### Zero Downtime Upgrades @@ -102,13 +104,11 @@ In most cases the downtime required for doing an upgrade in general shouldn't be As an additional layer of HA resilience you can deploy select components in Kubernetes, known as a Cloud Native Hybrid Reference Architecture. -Note however this is an **advanced** setup. Running services in Kubernetes is well known to be complex. **This setup is only recommended** if you have strong working knowledge and experience in Kubernetes. +Note that this is an alternative and more **advanced** setup compared to a standard Reference Architecture. Running services in Kubernetes is well known to be complex. **This setup is only recommended** if you have strong working knowledge and experience in Kubernetes. ### GitLab Geo (Disaster Recovery) -With GitLab Geo you can have a full Disaster Recovery (DR) setup in place. With this setup you would have 2 or more separate environments, with one being a primary that gets replicated to the others. In the rare event the primary site went down completely you could fail over to one of the other environments. - -It also gives you the ability of have distributed environments for widely distributed teams. +With GitLab Geo you can have both distributed environments in different regions and a full Disaster Recovery (DR) setup in place. With this setup you would have 2 or more separate environments, with one being a primary that gets replicated to the others. In the rare event the primary site went down completely you could fail over to one of the other environments. This is an **advanced and involved** setup and should only be undertaken if you have DR as a key requirement. Decisions then on how each environment are configured would also need to be taken, such as if each environment itself would be the full size and / or have HA. -- GitLab From cda520de45bfbca9f25fa49ac0673cd012cd9d44 Mon Sep 17 00:00:00 2001 From: Grant Young Date: Fri, 16 Sep 2022 16:01:10 +0100 Subject: [PATCH 12/22] Fix lint error on spelling --- doc/administration/reference_architectures/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/administration/reference_architectures/index.md b/doc/administration/reference_architectures/index.md index adbb48766cc85d..d9f156b81ea815 100644 --- a/doc/administration/reference_architectures/index.md +++ b/doc/administration/reference_architectures/index.md @@ -84,7 +84,7 @@ Backups can provide a good level of RPO / RTO while avoiding the complexities th ### High Availability (HA) -High Availability ensure every component in the GitLab setup can handle failures through various mechanisms. To achieve this however is involved, and the environments required can be sizeable. +High Availability ensure every component in the GitLab setup can handle failures through various mechanisms. To achieve this however is involved, and the environments required can be sizable. For environments serving 3,000 or more users we generally recommend that a HA strategy is used as at this level outages will have a bigger impact against more users. All the architectures in this range have HA built in by design for this reason. -- GitLab From 673ff5a305a52b60a47bb829cd9f672859f9ad70 Mon Sep 17 00:00:00 2001 From: Grant Young Date: Fri, 16 Sep 2022 16:02:33 +0100 Subject: [PATCH 13/22] Update heading for Geo section --- doc/administration/reference_architectures/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/administration/reference_architectures/index.md b/doc/administration/reference_architectures/index.md index d9f156b81ea815..4370ecb7c99806 100644 --- a/doc/administration/reference_architectures/index.md +++ b/doc/administration/reference_architectures/index.md @@ -106,7 +106,7 @@ As an additional layer of HA resilience you can deploy select components in Kube Note that this is an alternative and more **advanced** setup compared to a standard Reference Architecture. Running services in Kubernetes is well known to be complex. **This setup is only recommended** if you have strong working knowledge and experience in Kubernetes. -### GitLab Geo (Disaster Recovery) +### GitLab Geo (Distribution and Disaster Recovery) With GitLab Geo you can have both distributed environments in different regions and a full Disaster Recovery (DR) setup in place. With this setup you would have 2 or more separate environments, with one being a primary that gets replicated to the others. In the rare event the primary site went down completely you could fail over to one of the other environments. -- GitLab From d53bba45b3ba6b122232d5ee326bf222b736e68a Mon Sep 17 00:00:00 2001 From: Grant Young Date: Fri, 16 Sep 2022 16:09:39 +0100 Subject: [PATCH 14/22] Further fixes in grammar --- doc/administration/reference_architectures/index.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/doc/administration/reference_architectures/index.md b/doc/administration/reference_architectures/index.md index 4370ecb7c99806..a4cd23e43be335 100644 --- a/doc/administration/reference_architectures/index.md +++ b/doc/administration/reference_architectures/index.md @@ -84,7 +84,7 @@ Backups can provide a good level of RPO / RTO while avoiding the complexities th ### High Availability (HA) -High Availability ensure every component in the GitLab setup can handle failures through various mechanisms. To achieve this however is involved, and the environments required can be sizable. +High Availability ensures every component in the GitLab setup can handle failures through various mechanisms. To achieve this however is involved, and the environments required can be sizable. For environments serving 3,000 or more users we generally recommend that a HA strategy is used as at this level outages will have a bigger impact against more users. All the architectures in this range have HA built in by design for this reason. @@ -92,13 +92,11 @@ For users who still want to have HA for a lower number of users this can also be #### Zero Downtime Upgrades -[Zero Downtime Upgrades](../../update/zero_downtime.md) are available for standard Reference Architecture environments with HA (Cloud Native Hybrid is not supported at this time). - -This allows for an environment to stay up during an upgrade, but the process is more involved as a result and has some limitations as detailed on the above linked page. +[Zero Downtime Upgrades](../../update/zero_downtime.md) are available for standard Reference Architecture environments with HA (Cloud Native Hybrid is not supported at this time). This allows for an environment to stay up during an upgrade, but the process is more involved as a result and has some limitations as detailed in the documentation. When going through this process it's worth noting that there may still be brief moments of downtime when the HA mechanisms tale effect. -In most cases the downtime required for doing an upgrade in general shouldn't be substantial, so this should only be undertaken if it's a key requirement. +In most cases the downtime required for doing an upgrade in general shouldn't be substantial, so this is only recommended it's a key requirement for you. ### Cloud Native Hybrid (Kubernetes HA) -- GitLab From 849d2541767a78681b99885703e98bd04b1fbcfb Mon Sep 17 00:00:00 2001 From: Grant Young Date: Fri, 16 Sep 2022 16:41:54 +0100 Subject: [PATCH 15/22] Update chart with new tweaks --- doc/administration/reference_architectures/index.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/doc/administration/reference_architectures/index.md b/doc/administration/reference_architectures/index.md index a4cd23e43be335..4b036c0f888ade 100644 --- a/doc/administration/reference_architectures/index.md +++ b/doc/administration/reference_architectures/index.md @@ -62,18 +62,19 @@ In this section we'll go through the available designs you can choose from in or %%{init: { 'theme': 'base' } }%% graph TD A(What Reference Architecture should I use?) --> B(More than 3000 users?) - B -->|No| C(Do you need HA?) --> |Yes| F>Recommendation

3K architecture
with supported modifications] - C -->|No| H>Recommendation

Architecture closest to user count
with Backups] - B -->|Yes| D>Recommendation

Architecture closest to user
count with HA] + B -->|No| C("Do you need HA?
(or Zero-Downtime Upgrades)") --> |Yes| F[/Recommendation

3K architecture with HA
including supported modifications\] + C -->|No| H[/Recommendation

Architecture closest to user count
with Backups\] + B -->|Yes| D[/Recommendation

Architecture closest to user
count with HA\] D --> E[Do you have experience with
and want additional resilience
with select components in Kubernetes?] - E -->|Yes| I>Recommendation

Cloud Native Hybrid architecture
closest to user count] - D --> G[Do you need the environment to
stay up during upgrades?] --> |Yes| L>Recommendation

Zero-Downtime Upgrades] + E -->|Yes| I[\Additional Recommendation

Cloud Native Hybrid architecture
closest to user count/] + D --> G[Do you need the environment to
stay up during upgrades?] --> |Yes| L[\Additional Recommendation

Zero-Downtime Upgrades/] - J(Do you need distributed environments or disaster recovery?) --> |Yes| K>Recommendation

GitLab Geo] + J(Do you need distributed environments or disaster recovery?) --> |Yes| K[\Additional Recommendation

GitLab Geo/] F --> J H --> J D --> J I --> J + L --> J ``` ### Backups -- GitLab From 4815d243fa3d7610b93d6e7425ca556cbc283e20 Mon Sep 17 00:00:00 2001 From: Grant Young Date: Fri, 16 Sep 2022 16:52:53 +0100 Subject: [PATCH 16/22] Refine graph further --- .../reference_architectures/index.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/doc/administration/reference_architectures/index.md b/doc/administration/reference_architectures/index.md index 4b036c0f888ade..3993dbcb9dcc74 100644 --- a/doc/administration/reference_architectures/index.md +++ b/doc/administration/reference_architectures/index.md @@ -62,19 +62,17 @@ In this section we'll go through the available designs you can choose from in or %%{init: { 'theme': 'base' } }%% graph TD A(What Reference Architecture should I use?) --> B(More than 3000 users?) - B -->|No| C("Do you need HA?
(or Zero-Downtime Upgrades)") --> |Yes| F[/Recommendation

3K architecture with HA
including supported modifications\] - C -->|No| H[/Recommendation

Architecture closest to user count
with Backups\] - B -->|Yes| D[/Recommendation

Architecture closest to user
count with HA\] - D --> E[Do you have experience with
and want additional resilience
with select components in Kubernetes?] - E -->|Yes| I[\Additional Recommendation

Cloud Native Hybrid architecture
closest to user count/] - D --> G[Do you need the environment to
stay up during upgrades?] --> |Yes| L[\Additional Recommendation

Zero-Downtime Upgrades/] + B -->|No| C("Do you need HA?
(or Zero-Downtime Upgrades)") --> |Yes| F>Recommendation

3K architecture with HA
including supported modifications] + C -->|No| H>Recommendation

Architecture closest to user
count with Backups] + B -->|Yes| E[Do you have experience with
and want additional resilience
with select components in Kubernetes?] + E -->|No| D>Recommendation

Architecture closest to user
count with HA] + E -->|Yes| I>Recommendation

Cloud Native Hybrid architecture
closest to user count] - J(Do you need distributed environments or disaster recovery?) --> |Yes| K[\Additional Recommendation

GitLab Geo/] + J(Do you need distributed environments or disaster recovery?) --> |Yes| K>Additional Recommendation

GitLab Geo] F --> J H --> J D --> J I --> J - L --> J ``` ### Backups -- GitLab From 6c76b91cadd7fdafa341b41402985eedce5ca8dd Mon Sep 17 00:00:00 2001 From: DarwinJS Date: Tue, 20 Sep 2022 08:36:56 +0000 Subject: [PATCH 17/22] Apply 1 suggestion(s) to 1 file(s) --- doc/administration/reference_architectures/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/administration/reference_architectures/index.md b/doc/administration/reference_architectures/index.md index 3993dbcb9dcc74..ce1da1255bfe10 100644 --- a/doc/administration/reference_architectures/index.md +++ b/doc/administration/reference_architectures/index.md @@ -77,7 +77,7 @@ graph TD ### Backups -For environments serving 2,000 or fewer users we generally recommend that an [automated backup](../../raketasks/backup_gitlab.md#configuring-cron-to-make-daily-backups) strategy is employed over HA. +For environments serving 2,000 or fewer users we generally recommend that an [automated backup](../../raketasks/backup_gitlab.md#configuring-cron-to-make-daily-backups) strategy is used instead of HA. Backups can provide a good level of RPO / RTO while avoiding the complexities that come with HA. -- GitLab From 8742713b6b90353a4e9393a92e8a50e0c6a819d0 Mon Sep 17 00:00:00 2001 From: Grant Young Date: Thu, 22 Sep 2022 12:19:44 +0100 Subject: [PATCH 18/22] Update flow and diagram based on feedback --- .../reference_architectures/index.md | 60 ++++++++++++------- 1 file changed, 39 insertions(+), 21 deletions(-) diff --git a/doc/administration/reference_architectures/index.md b/doc/administration/reference_architectures/index.md index ce1da1255bfe10..0c333d3a4d2b9a 100644 --- a/doc/administration/reference_architectures/index.md +++ b/doc/administration/reference_architectures/index.md @@ -56,24 +56,7 @@ While we've designed them to make it easier to know how to set up GitLab at scal As a general guide **the more performant and / or resilient you want your environment to be the more involved it will be**. -In this section we'll go through the available designs you can choose from in order of the least complexity to most starting with a decision tree and sections after detailing each area. - -```mermaid -%%{init: { 'theme': 'base' } }%% -graph TD - A(What Reference Architecture should I use?) --> B(More than 3000 users?) - B -->|No| C("Do you need HA?
(or Zero-Downtime Upgrades)") --> |Yes| F>Recommendation

3K architecture with HA
including supported modifications] - C -->|No| H>Recommendation

Architecture closest to user
count with Backups] - B -->|Yes| E[Do you have experience with
and want additional resilience
with select components in Kubernetes?] - E -->|No| D>Recommendation

Architecture closest to user
count with HA] - E -->|Yes| I>Recommendation

Cloud Native Hybrid architecture
closest to user count] - - J(Do you need distributed environments or disaster recovery?) --> |Yes| K>Additional Recommendation

GitLab Geo] - F --> J - H --> J - D --> J - I --> J -``` +In this section we'll go through the available designs you can choose from in order of the least complexity to most, ending with a decision tree. ### Backups @@ -87,7 +70,18 @@ High Availability ensures every component in the GitLab setup can handle failure For environments serving 3,000 or more users we generally recommend that a HA strategy is used as at this level outages will have a bigger impact against more users. All the architectures in this range have HA built in by design for this reason. -For users who still want to have HA for a lower number of users this can also be achieved with an [adjusted 3K architecture as detailed here](3k_users.md#supported-modifications-for-lower-user-counts-ha), but as mentioned in the [previous section](#backups) we generally recommend a good backup strategy instead to keep your complexity lower and this should only be undertaken if HA is a key requirement for you. +For users who still need to have HA for a lower number of users this can also be achieved with an [adjusted 3K architecture as detailed here](3k_users.md#supported-modifications-for-lower-user-counts-ha). + +#### Do you need High Availability (HA)? + +As mentioned above, achieving HA does come at a cost. The environment's required are sizable as each component needs to be multiplied, which comes with additional actual and maintenance costs. + +For a lot of our customer's with less than 3,000 users we've found a backup strategy is sufficient and even preferable. While this does have a slower recovery time it does also mean you have a much smaller architecture and less maintenance costs as a result. + +In general then, we'd only recommend you employ HA in the following scenarios: + +- When you have 3,000 or more users. +- When GitLab being down would critically impact your workflow. #### Zero Downtime Upgrades @@ -103,12 +97,36 @@ As an additional layer of HA resilience you can deploy select components in Kube Note that this is an alternative and more **advanced** setup compared to a standard Reference Architecture. Running services in Kubernetes is well known to be complex. **This setup is only recommended** if you have strong working knowledge and experience in Kubernetes. -### GitLab Geo (Distribution and Disaster Recovery) +### GitLab Geo (Cross Regional Distribution / Disaster Recovery) -With GitLab Geo you can have both distributed environments in different regions and a full Disaster Recovery (DR) setup in place. With this setup you would have 2 or more separate environments, with one being a primary that gets replicated to the others. In the rare event the primary site went down completely you could fail over to one of the other environments. +With [GitLab Geo](../geo/index.md) you can have both distributed environments in different regions and a full Disaster Recovery (DR) setup in place. With this setup you would have 2 or more separate environments, with one being a primary that gets replicated to the others. In the rare event the primary site went down completely you could fail over to one of the other environments. This is an **advanced and involved** setup and should only be undertaken if you have DR as a key requirement. Decisions then on how each environment are configured would also need to be taken, such as if each environment itself would be the full size and / or have HA. +### Decision Tree + +Below you can find the above guidance in the form of a decision tree: + +```mermaid +%%{init: { 'theme': 'base' } }%% +graph TD + L1A(What Reference Architecture should I use?) --> L2A(More than 3000 users?) + L2A -->|No| L3A("Do you need HA?
(or Zero-Downtime Upgrades)") --> |Yes| L4A>Recommendation

3K architecture with HA
including supported modifications] + L3A -->|No| L4B>Recommendation

Architecture closest to user
count with Backups] + L2A -->|Yes| L3B[Do you have experience with
and want additional resilience
with select components in Kubernetes?] + L3B -->|No| L4C>Recommendation

Architecture closest to user
count with HA] + L3B -->|Yes| L4D>Recommendation

Cloud Native Hybrid architecture
closest to user count] + + L5A("Do you need cross regional distribution or disaster recovery?") --> |Yes| L6A>Additional Recommendation

GitLab Geo] + L4A -.- L5A + L4B -.- L5A + L4C -.- L5A + L4D -.- L5A + +classDef default fill:#FCA326 +linkStyle default fill:none,stroke:#7759C2 +``` + ## Recommended cloud providers and services NOTE: -- GitLab From 51d3bbe7726d24e73a73a3523c5f6ebe421ec8e6 Mon Sep 17 00:00:00 2001 From: Grant Young Date: Thu, 22 Sep 2022 12:29:35 +0100 Subject: [PATCH 19/22] Update text in diagram section Make it clearer that the whole section should be consumed --- doc/administration/reference_architectures/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/administration/reference_architectures/index.md b/doc/administration/reference_architectures/index.md index 0c333d3a4d2b9a..beda53b0605be8 100644 --- a/doc/administration/reference_architectures/index.md +++ b/doc/administration/reference_architectures/index.md @@ -105,7 +105,7 @@ This is an **advanced and involved** setup and should only be undertaken if you ### Decision Tree -Below you can find the above guidance in the form of a decision tree: +Below you can find the above guidance in the form of a decision tree. It's recommended you read through the above guidance in full first before though. ```mermaid %%{init: { 'theme': 'base' } }%% -- GitLab From 1afba50562d3c04e1b9f8dc4ecf1c01787c61c24 Mon Sep 17 00:00:00 2001 From: Grant Young Date: Tue, 27 Sep 2022 14:19:18 +0100 Subject: [PATCH 20/22] Adjust link language in RA pages --- doc/administration/reference_architectures/10k_users.md | 2 +- doc/administration/reference_architectures/1k_users.md | 2 +- doc/administration/reference_architectures/25k_users.md | 2 +- doc/administration/reference_architectures/2k_users.md | 2 +- doc/administration/reference_architectures/3k_users.md | 2 +- doc/administration/reference_architectures/50k_users.md | 2 +- doc/administration/reference_architectures/5k_users.md | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/administration/reference_architectures/10k_users.md b/doc/administration/reference_architectures/10k_users.md index 9f5986dff5d53e..61cb920f7ce1dd 100644 --- a/doc/administration/reference_architectures/10k_users.md +++ b/doc/administration/reference_architectures/10k_users.md @@ -17,7 +17,7 @@ full list of reference architectures, see > - **Validation and test results:** The Quality Engineering team does [regular smoke and performance tests](index.md#validation-and-test-results) to ensure the reference architectures remain compliant > - **Test requests per second (RPS) rates:** API: 200 RPS, Web: 20 RPS, Git (Pull): 20 RPS, Git (Push): 4 RPS > - **[Latest Results](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Benchmarks/Latest/10k)** -> - **Unsure on what Reference Architecture to use?** [Head to this guide for more info](index.md#deciding-on-what-architecture-to-use). +> - **Unsure which Reference Architecture to use?** [Go to this guide for more info](index.md#deciding-on-what-architecture-to-use). | Service | Nodes | Configuration | GCP | AWS | Azure | |------------------------------------------|-------|-------------------------|------------------|----------------|-----------| diff --git a/doc/administration/reference_architectures/1k_users.md b/doc/administration/reference_architectures/1k_users.md index 2fc9b7b925fbe6..8b1350d55efe32 100644 --- a/doc/administration/reference_architectures/1k_users.md +++ b/doc/administration/reference_architectures/1k_users.md @@ -24,7 +24,7 @@ many organizations. > - **Validation and test results:** The Quality Engineering team does [regular smoke and performance tests](index.md#validation-and-test-results) to ensure the reference architectures remain compliant > - **Test requests per second (RPS) rates:** API: 20 RPS, Web: 2 RPS, Git (Pull): 2 RPS, Git (Push): 1 RPS > - **[Latest Results](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Benchmarks/Latest/1k)** -> - **Unsure on what Reference Architecture to use?** [Head to this guide for more info](index.md#deciding-on-what-architecture-to-use). +> - **Unsure which Reference Architecture to use?** [Go to this guide for more info](index.md#deciding-on-what-architecture-to-use). | Users | Configuration | GCP | AWS | Azure | |--------------|-------------------------|----------------|--------------|----------| diff --git a/doc/administration/reference_architectures/25k_users.md b/doc/administration/reference_architectures/25k_users.md index 92b2d92dc371af..5f2615835c7d60 100644 --- a/doc/administration/reference_architectures/25k_users.md +++ b/doc/administration/reference_architectures/25k_users.md @@ -17,7 +17,7 @@ full list of reference architectures, see > - **Validation and test results:** The Quality Engineering team does [regular smoke and performance tests](index.md#validation-and-test-results) to ensure the reference architectures remain compliant > - **Test requests per second (RPS) rates:** API: 500 RPS, Web: 50 RPS, Git (Pull): 50 RPS, Git (Push): 10 RPS > - **[Latest Results](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Benchmarks/Latest/25k)** -> - **Unsure on what Reference Architecture to use?** [Head to this guide for more info](index.md#deciding-on-what-architecture-to-use). +> - **Unsure which Reference Architecture to use?** [Go to this guide for more info](index.md#deciding-on-what-architecture-to-use). | Service | Nodes | Configuration | GCP | AWS | Azure | |------------------------------------------|-------|-------------------------|------------------|--------------|-----------| diff --git a/doc/administration/reference_architectures/2k_users.md b/doc/administration/reference_architectures/2k_users.md index 2c16c741b51155..ca70c372e8c705 100644 --- a/doc/administration/reference_architectures/2k_users.md +++ b/doc/administration/reference_architectures/2k_users.md @@ -18,7 +18,7 @@ For a full list of reference architectures, see > - **Validation and test results:** The Quality Engineering team does [regular smoke and performance tests](index.md#validation-and-test-results) to ensure the reference architectures remain compliant > - **Test requests per second (RPS) rates:** API: 40 RPS, Web: 4 RPS, Git (Pull): 4 RPS, Git (Push): 1 RPS > - **[Latest Results](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Benchmarks/Latest/2k)** -> - **Unsure on what Reference Architecture to use?** [Head to this guide for more info](index.md#deciding-on-what-architecture-to-use). +> - **Unsure which Reference Architecture to use?** [Go to this guide for more info](index.md#deciding-on-what-architecture-to-use). | Service | Nodes | Configuration | GCP | AWS | Azure | |----------------------------|-------|------------------------|-----------------|--------------|----------| diff --git a/doc/administration/reference_architectures/3k_users.md b/doc/administration/reference_architectures/3k_users.md index f5d632c36dbc69..4035f93ac95db0 100644 --- a/doc/administration/reference_architectures/3k_users.md +++ b/doc/administration/reference_architectures/3k_users.md @@ -27,7 +27,7 @@ For a full list of reference architectures, see > - **Validation and test results:** The Quality Engineering team does [regular smoke and performance tests](index.md#validation-and-test-results) to ensure the reference architectures remain compliant > - **Test requests per second (RPS) rates:** API: 60 RPS, Web: 6 RPS, Git (Pull): 6 RPS, Git (Push): 1 RPS > - **[Latest Results](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Benchmarks/Latest/3k)** -> - **Unsure on what Reference Architecture to use?** [Head to this guide for more info](index.md#deciding-on-what-architecture-to-use). +> - **Unsure which Reference Architecture to use?** [Go to this guide for more info](index.md#deciding-on-what-architecture-to-use). | Service | Nodes | Configuration | GCP | AWS | Azure | |-------------------------------------------|-------|-----------------------|-----------------|--------------|----------| diff --git a/doc/administration/reference_architectures/50k_users.md b/doc/administration/reference_architectures/50k_users.md index 1d0ec6b207da53..d1a5d8904ad336 100644 --- a/doc/administration/reference_architectures/50k_users.md +++ b/doc/administration/reference_architectures/50k_users.md @@ -17,7 +17,7 @@ full list of reference architectures, see > - **Validation and test results:** The Quality Engineering team does [regular smoke and performance tests](index.md#validation-and-test-results) to ensure the reference architectures remain compliant > - **Test requests per second (RPS) rates:** API: 1000 RPS, Web: 100 RPS, Git (Pull): 100 RPS, Git (Push): 20 RPS > - **[Latest Results](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Benchmarks/Latest/50k)** -> - **Unsure on what Reference Architecture to use?** [Head to this guide for more info](index.md#deciding-on-what-architecture-to-use). +> - **Unsure which Reference Architecture to use?** [Go to this guide for more info](index.md#deciding-on-what-architecture-to-use). | Service | Nodes | Configuration | GCP | AWS | Azure | |------------------------------------------|-------|-------------------------|------------------|---------------|-----------| diff --git a/doc/administration/reference_architectures/5k_users.md b/doc/administration/reference_architectures/5k_users.md index bdef38da7bd326..6fcd7bf7284928 100644 --- a/doc/administration/reference_architectures/5k_users.md +++ b/doc/administration/reference_architectures/5k_users.md @@ -24,7 +24,7 @@ costly-to-operate environment by using the > - **Validation and test results:** The Quality Engineering team does [regular smoke and performance tests](index.md#validation-and-test-results) to ensure the reference architectures remain compliant > - **Test requests per second (RPS) rates:** API: 100 RPS, Web: 10 RPS, Git (Pull): 10 RPS, Git (Push): 2 RPS > - **[Latest Results](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Benchmarks/Latest/5k)** -> - **Unsure on what Reference Architecture to use?** [Head to this guide for more info](index.md#deciding-on-what-architecture-to-use). +> - **Unsure which Reference Architecture to use?** [Go to this guide for more info](index.md#deciding-on-what-architecture-to-use). | Service | Nodes | Configuration | GCP | AWS | Azure | |-------------------------------------------|-------|-------------------------|-----------------|--------------|----------| -- GitLab From 31be4bc38f621dc6615b2501c692dfce777f42ac Mon Sep 17 00:00:00 2001 From: Suzanne Selhorn Date: Tue, 27 Sep 2022 13:29:44 +0000 Subject: [PATCH 21/22] Apply 5 suggestion(s) to 1 file(s) --- .../reference_architectures/index.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/doc/administration/reference_architectures/index.md b/doc/administration/reference_architectures/index.md index 8e12545d572a87..b1ce6a8299b5e8 100644 --- a/doc/administration/reference_architectures/index.md +++ b/doc/administration/reference_architectures/index.md @@ -7,7 +7,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w # Reference architectures **(FREE SELF)** -The GitLab Reference Architectures have been designed and tested by our +The GitLab Reference Architectures have been designed and tested by the GitLab Quality and Support teams to provide recommended deployments at scale. ## Available reference architectures @@ -48,15 +48,15 @@ to get assistance from Support with troubleshooting the [2,000 users](2k_users.m and higher reference architectures. [Read more about our definition of scaled architectures](https://about.gitlab.com/support/#definition-of-scaled-architecture). -## Deciding on what architecture to use +## Deciding which architecture to use -The Reference Architectures have been designed to strike a good balance between two important factors - Performance and Resilience. +The Reference Architectures are designed to strike a balance between two important factors--performance and resilience. -While we've designed them to make it easier to know how to set up GitLab at scale, it can still be a challenge to know what one to pick specifically that would meet your requirements. +While they are designed to make it easier to set up GitLab at scale, it can still be a challenge to know which one will meet your requirements. -As a general guide **the more performant and / or resilient you want your environment to be the more involved it will be**. +As a general guide, **the more performant and/or resilient you want your environment to be, the more involved it will be**. -In this section we'll go through the available designs you can choose from in order of the least complexity to most, ending with a decision tree. +This section explains the designs you can choose from. It begins with the least complexity, goes to the most, and ends with a decision tree. ### Backups @@ -76,7 +76,7 @@ For users who still need to have HA for a lower number of users this can also be As mentioned above, achieving HA does come at a cost. The environment's required are sizable as each component needs to be multiplied, which comes with additional actual and maintenance costs. -For a lot of our customer's with less than 3,000 users we've found a backup strategy is sufficient and even preferable. While this does have a slower recovery time it does also mean you have a much smaller architecture and less maintenance costs as a result. +For a lot of our customers with fewer than 3,000 users, we've found a backup strategy is sufficient and even preferable. While this does have a slower recovery time, it also means you have a much smaller architecture and less maintenance costs as a result. In general then, we'd only recommend you employ HA in the following scenarios: @@ -89,7 +89,7 @@ In general then, we'd only recommend you employ HA in the following scenarios: When going through this process it's worth noting that there may still be brief moments of downtime when the HA mechanisms tale effect. -In most cases the downtime required for doing an upgrade in general shouldn't be substantial, so this is only recommended it's a key requirement for you. +In most cases the downtime required for doing an upgrade in general shouldn't be substantial, so this is only recommended if it's a key requirement for you. ### Cloud Native Hybrid (Kubernetes HA) -- GitLab From 35269e7f9d481d317cd3b36f86ce73e02d1d0228 Mon Sep 17 00:00:00 2001 From: Grant Young Date: Tue, 27 Sep 2022 15:12:51 +0100 Subject: [PATCH 22/22] Fix broken section links --- doc/administration/reference_architectures/10k_users.md | 2 +- doc/administration/reference_architectures/1k_users.md | 2 +- doc/administration/reference_architectures/25k_users.md | 2 +- doc/administration/reference_architectures/2k_users.md | 2 +- doc/administration/reference_architectures/3k_users.md | 2 +- doc/administration/reference_architectures/50k_users.md | 2 +- doc/administration/reference_architectures/5k_users.md | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/administration/reference_architectures/10k_users.md b/doc/administration/reference_architectures/10k_users.md index 61cb920f7ce1dd..6ee7bfb8dbb99a 100644 --- a/doc/administration/reference_architectures/10k_users.md +++ b/doc/administration/reference_architectures/10k_users.md @@ -17,7 +17,7 @@ full list of reference architectures, see > - **Validation and test results:** The Quality Engineering team does [regular smoke and performance tests](index.md#validation-and-test-results) to ensure the reference architectures remain compliant > - **Test requests per second (RPS) rates:** API: 200 RPS, Web: 20 RPS, Git (Pull): 20 RPS, Git (Push): 4 RPS > - **[Latest Results](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Benchmarks/Latest/10k)** -> - **Unsure which Reference Architecture to use?** [Go to this guide for more info](index.md#deciding-on-what-architecture-to-use). +> - **Unsure which Reference Architecture to use?** [Go to this guide for more info](index.md#deciding-which-architecture-to-use). | Service | Nodes | Configuration | GCP | AWS | Azure | |------------------------------------------|-------|-------------------------|------------------|----------------|-----------| diff --git a/doc/administration/reference_architectures/1k_users.md b/doc/administration/reference_architectures/1k_users.md index 8b1350d55efe32..8b72425d479814 100644 --- a/doc/administration/reference_architectures/1k_users.md +++ b/doc/administration/reference_architectures/1k_users.md @@ -24,7 +24,7 @@ many organizations. > - **Validation and test results:** The Quality Engineering team does [regular smoke and performance tests](index.md#validation-and-test-results) to ensure the reference architectures remain compliant > - **Test requests per second (RPS) rates:** API: 20 RPS, Web: 2 RPS, Git (Pull): 2 RPS, Git (Push): 1 RPS > - **[Latest Results](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Benchmarks/Latest/1k)** -> - **Unsure which Reference Architecture to use?** [Go to this guide for more info](index.md#deciding-on-what-architecture-to-use). +> - **Unsure which Reference Architecture to use?** [Go to this guide for more info](index.md#deciding-which-architecture-to-use). | Users | Configuration | GCP | AWS | Azure | |--------------|-------------------------|----------------|--------------|----------| diff --git a/doc/administration/reference_architectures/25k_users.md b/doc/administration/reference_architectures/25k_users.md index 5f2615835c7d60..735d0a7db60acd 100644 --- a/doc/administration/reference_architectures/25k_users.md +++ b/doc/administration/reference_architectures/25k_users.md @@ -17,7 +17,7 @@ full list of reference architectures, see > - **Validation and test results:** The Quality Engineering team does [regular smoke and performance tests](index.md#validation-and-test-results) to ensure the reference architectures remain compliant > - **Test requests per second (RPS) rates:** API: 500 RPS, Web: 50 RPS, Git (Pull): 50 RPS, Git (Push): 10 RPS > - **[Latest Results](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Benchmarks/Latest/25k)** -> - **Unsure which Reference Architecture to use?** [Go to this guide for more info](index.md#deciding-on-what-architecture-to-use). +> - **Unsure which Reference Architecture to use?** [Go to this guide for more info](index.md#deciding-which-architecture-to-use). | Service | Nodes | Configuration | GCP | AWS | Azure | |------------------------------------------|-------|-------------------------|------------------|--------------|-----------| diff --git a/doc/administration/reference_architectures/2k_users.md b/doc/administration/reference_architectures/2k_users.md index ca70c372e8c705..6530a51f83fc99 100644 --- a/doc/administration/reference_architectures/2k_users.md +++ b/doc/administration/reference_architectures/2k_users.md @@ -18,7 +18,7 @@ For a full list of reference architectures, see > - **Validation and test results:** The Quality Engineering team does [regular smoke and performance tests](index.md#validation-and-test-results) to ensure the reference architectures remain compliant > - **Test requests per second (RPS) rates:** API: 40 RPS, Web: 4 RPS, Git (Pull): 4 RPS, Git (Push): 1 RPS > - **[Latest Results](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Benchmarks/Latest/2k)** -> - **Unsure which Reference Architecture to use?** [Go to this guide for more info](index.md#deciding-on-what-architecture-to-use). +> - **Unsure which Reference Architecture to use?** [Go to this guide for more info](index.md#deciding-which-architecture-to-use). | Service | Nodes | Configuration | GCP | AWS | Azure | |----------------------------|-------|------------------------|-----------------|--------------|----------| diff --git a/doc/administration/reference_architectures/3k_users.md b/doc/administration/reference_architectures/3k_users.md index 4035f93ac95db0..e7a7e9615c5ef0 100644 --- a/doc/administration/reference_architectures/3k_users.md +++ b/doc/administration/reference_architectures/3k_users.md @@ -27,7 +27,7 @@ For a full list of reference architectures, see > - **Validation and test results:** The Quality Engineering team does [regular smoke and performance tests](index.md#validation-and-test-results) to ensure the reference architectures remain compliant > - **Test requests per second (RPS) rates:** API: 60 RPS, Web: 6 RPS, Git (Pull): 6 RPS, Git (Push): 1 RPS > - **[Latest Results](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Benchmarks/Latest/3k)** -> - **Unsure which Reference Architecture to use?** [Go to this guide for more info](index.md#deciding-on-what-architecture-to-use). +> - **Unsure which Reference Architecture to use?** [Go to this guide for more info](index.md#deciding-which-architecture-to-use). | Service | Nodes | Configuration | GCP | AWS | Azure | |-------------------------------------------|-------|-----------------------|-----------------|--------------|----------| diff --git a/doc/administration/reference_architectures/50k_users.md b/doc/administration/reference_architectures/50k_users.md index d1a5d8904ad336..e7304195e556a7 100644 --- a/doc/administration/reference_architectures/50k_users.md +++ b/doc/administration/reference_architectures/50k_users.md @@ -17,7 +17,7 @@ full list of reference architectures, see > - **Validation and test results:** The Quality Engineering team does [regular smoke and performance tests](index.md#validation-and-test-results) to ensure the reference architectures remain compliant > - **Test requests per second (RPS) rates:** API: 1000 RPS, Web: 100 RPS, Git (Pull): 100 RPS, Git (Push): 20 RPS > - **[Latest Results](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Benchmarks/Latest/50k)** -> - **Unsure which Reference Architecture to use?** [Go to this guide for more info](index.md#deciding-on-what-architecture-to-use). +> - **Unsure which Reference Architecture to use?** [Go to this guide for more info](index.md#deciding-which-architecture-to-use). | Service | Nodes | Configuration | GCP | AWS | Azure | |------------------------------------------|-------|-------------------------|------------------|---------------|-----------| diff --git a/doc/administration/reference_architectures/5k_users.md b/doc/administration/reference_architectures/5k_users.md index 6fcd7bf7284928..3dd30fc22e2703 100644 --- a/doc/administration/reference_architectures/5k_users.md +++ b/doc/administration/reference_architectures/5k_users.md @@ -24,7 +24,7 @@ costly-to-operate environment by using the > - **Validation and test results:** The Quality Engineering team does [regular smoke and performance tests](index.md#validation-and-test-results) to ensure the reference architectures remain compliant > - **Test requests per second (RPS) rates:** API: 100 RPS, Web: 10 RPS, Git (Pull): 10 RPS, Git (Push): 2 RPS > - **[Latest Results](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Benchmarks/Latest/5k)** -> - **Unsure which Reference Architecture to use?** [Go to this guide for more info](index.md#deciding-on-what-architecture-to-use). +> - **Unsure which Reference Architecture to use?** [Go to this guide for more info](index.md#deciding-which-architecture-to-use). | Service | Nodes | Configuration | GCP | AWS | Azure | |-------------------------------------------|-------|-------------------------|-----------------|--------------|----------| -- GitLab