From 5d72cc71fbb20ecd26b5e1e914389a33e28de8b5 Mon Sep 17 00:00:00 2001 From: DarwinJS Date: Tue, 7 Dec 2021 15:35:44 +0000 Subject: [PATCH 1/6] Update doc/administration/reference_architectures/1k_users.md --- .../reference_architectures/1k_users.md | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/doc/administration/reference_architectures/1k_users.md b/doc/administration/reference_architectures/1k_users.md index 5488d8d33a6115..d96c4284af61c8 100644 --- a/doc/administration/reference_architectures/1k_users.md +++ b/doc/administration/reference_architectures/1k_users.md @@ -43,6 +43,40 @@ changes. We also recommend configuring the kernel's swappiness setting to a lower value (such as `10`) to make the most of your memory, while still having the swap available when needed. +```plantuml +@startuml 1k +card "**Prometheus + Grafana**" as monitor #7FFFD4 +package "GitLab Single Server" as gitlab-single-server { +together { + card "**GitLab Rails**" as gitlab #32CD32 + card "**Gitaly**" as gitaly #FF8C00 + card "**PostgreSQL**" as postgres #4EA7FF + card "**Redis**" as redis #FF6347 + card "**Sidekiq**" as sidekiq #ff8dd1 +} +card "Local Storage" as local_storage #white +} + +gitlab -[#32CD32]--> gitaly +gitlab -[#32CD32]--> postgres +gitlab -[#32CD32]--> redis +gitlab -[#32CD32]--> sidekiq +gitaly -[#32CD32]--> local_storage +postgres -[#32CD32]--> local_storage +sidekiq -[#32CD32]--> local_storage +gitlab -[#32CD32]--> local_storage + +monitor .[#7FFFD4]u-> gitlab +monitor .[#7FFFD4]u-> sidekiq +monitor .[#7FFFD4]-> postgres +monitor .[#7FFFD4]-> gitaly +monitor .[#7FFFD4,norank]--> redis + +@enduml +``` + +Note: The diagram above shows that while GitLab can be installed on a single server, it is internally composed of multiple services. As a GitLab instance is scaled, each of these services are broken out and independently scaled according to the demands placed on them. In some cases PaaS can be leveraged for some services (e.g. Cloud Object Storage for some file systems). For the sake of redundancy some of the services become clusters of nodes storing the same data. In a horizontal configuration of GitLab there are various ancillary services required to coordinate clusters or discover of resources (e.g. pg_bouncer for Postgres connection management, consul for prometheus end point discovery). + ## Setup instructions To install GitLab for this default reference architecture, use the standard -- GitLab From 3ea211ce531d454e6f5154f80e9b7c4effc923c9 Mon Sep 17 00:00:00 2001 From: DarwinJS Date: Tue, 7 Dec 2021 17:52:55 +0000 Subject: [PATCH 2/6] Remove word note --- doc/administration/reference_architectures/1k_users.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/administration/reference_architectures/1k_users.md b/doc/administration/reference_architectures/1k_users.md index d96c4284af61c8..07a6cace45b687 100644 --- a/doc/administration/reference_architectures/1k_users.md +++ b/doc/administration/reference_architectures/1k_users.md @@ -75,7 +75,7 @@ monitor .[#7FFFD4,norank]--> redis @enduml ``` -Note: The diagram above shows that while GitLab can be installed on a single server, it is internally composed of multiple services. As a GitLab instance is scaled, each of these services are broken out and independently scaled according to the demands placed on them. In some cases PaaS can be leveraged for some services (e.g. Cloud Object Storage for some file systems). For the sake of redundancy some of the services become clusters of nodes storing the same data. In a horizontal configuration of GitLab there are various ancillary services required to coordinate clusters or discover of resources (e.g. pg_bouncer for Postgres connection management, consul for prometheus end point discovery). +The diagram above shows that while GitLab can be installed on a single server, it is internally composed of multiple services. As a GitLab instance is scaled, each of these services are broken out and independently scaled according to the demands placed on them. In some cases PaaS can be leveraged for some services (e.g. Cloud Object Storage for some file systems). For the sake of redundancy some of the services become clusters of nodes storing the same data. In a horizontal configuration of GitLab there are various ancillary services required to coordinate clusters or discover of resources (e.g. pg_bouncer for Postgres connection management, consul for prometheus end point discovery). ## Setup instructions -- GitLab From 5b661eba4086bdd20cfb5866b6739e0bfa904a13 Mon Sep 17 00:00:00 2001 From: DarwinJS Date: Tue, 7 Dec 2021 18:15:41 +0000 Subject: [PATCH 3/6] Correct capitalization of Prometheus --- doc/administration/reference_architectures/1k_users.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/administration/reference_architectures/1k_users.md b/doc/administration/reference_architectures/1k_users.md index 07a6cace45b687..80f4c032a5e32b 100644 --- a/doc/administration/reference_architectures/1k_users.md +++ b/doc/administration/reference_architectures/1k_users.md @@ -75,7 +75,7 @@ monitor .[#7FFFD4,norank]--> redis @enduml ``` -The diagram above shows that while GitLab can be installed on a single server, it is internally composed of multiple services. As a GitLab instance is scaled, each of these services are broken out and independently scaled according to the demands placed on them. In some cases PaaS can be leveraged for some services (e.g. Cloud Object Storage for some file systems). For the sake of redundancy some of the services become clusters of nodes storing the same data. In a horizontal configuration of GitLab there are various ancillary services required to coordinate clusters or discover of resources (e.g. pg_bouncer for Postgres connection management, consul for prometheus end point discovery). +The diagram above shows that while GitLab can be installed on a single server, it is internally composed of multiple services. As a GitLab instance is scaled, each of these services are broken out and independently scaled according to the demands placed on them. In some cases PaaS can be leveraged for some services (e.g. Cloud Object Storage for some file systems). For the sake of redundancy some of the services become clusters of nodes storing the same data. In a horizontal configuration of GitLab there are various ancillary services required to coordinate clusters or discover of resources (e.g. pg_bouncer for Postgres connection management, consul for Prometheus end point discovery). ## Setup instructions -- GitLab From ddd1367d7840670a6b468035632f15d5c39aca10 Mon Sep 17 00:00:00 2001 From: DarwinJS Date: Tue, 7 Dec 2021 19:44:51 +0000 Subject: [PATCH 4/6] Update capitalization of products --- doc/administration/reference_architectures/1k_users.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/administration/reference_architectures/1k_users.md b/doc/administration/reference_architectures/1k_users.md index 80f4c032a5e32b..c221db94e30baf 100644 --- a/doc/administration/reference_architectures/1k_users.md +++ b/doc/administration/reference_architectures/1k_users.md @@ -75,7 +75,7 @@ monitor .[#7FFFD4,norank]--> redis @enduml ``` -The diagram above shows that while GitLab can be installed on a single server, it is internally composed of multiple services. As a GitLab instance is scaled, each of these services are broken out and independently scaled according to the demands placed on them. In some cases PaaS can be leveraged for some services (e.g. Cloud Object Storage for some file systems). For the sake of redundancy some of the services become clusters of nodes storing the same data. In a horizontal configuration of GitLab there are various ancillary services required to coordinate clusters or discover of resources (e.g. pg_bouncer for Postgres connection management, consul for Prometheus end point discovery). +The diagram above shows that while GitLab can be installed on a single server, it is internally composed of multiple services. As a GitLab instance is scaled, each of these services are broken out and independently scaled according to the demands placed on them. In some cases PaaS can be leveraged for some services (e.g. Cloud Object Storage for some file systems). For the sake of redundancy some of the services become clusters of nodes storing the same data. In a horizontal configuration of GitLab there are various ancillary services required to coordinate clusters or discover of resources (e.g. PgBouncer for Postgres connection management, Consul for Prometheus end point discovery). ## Setup instructions -- GitLab From 91356706b0a2f4188a5467c1af9fd77efe72cdf7 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Fri, 17 Dec 2021 15:42:34 +0000 Subject: [PATCH 5/6] Apply 1 suggestion(s) to 1 file(s) --- doc/administration/reference_architectures/1k_users.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/administration/reference_architectures/1k_users.md b/doc/administration/reference_architectures/1k_users.md index c221db94e30baf..7f90771f65d22f 100644 --- a/doc/administration/reference_architectures/1k_users.md +++ b/doc/administration/reference_architectures/1k_users.md @@ -75,7 +75,7 @@ monitor .[#7FFFD4,norank]--> redis @enduml ``` -The diagram above shows that while GitLab can be installed on a single server, it is internally composed of multiple services. As a GitLab instance is scaled, each of these services are broken out and independently scaled according to the demands placed on them. In some cases PaaS can be leveraged for some services (e.g. Cloud Object Storage for some file systems). For the sake of redundancy some of the services become clusters of nodes storing the same data. In a horizontal configuration of GitLab there are various ancillary services required to coordinate clusters or discover of resources (e.g. PgBouncer for Postgres connection management, Consul for Prometheus end point discovery). +The diagram above shows that while GitLab can be installed on a single server, it is internally composed of multiple services. As a GitLab instance is scaled, each of these services are broken out and independently scaled according to the demands placed on them. In some cases PaaS can be leveraged for some services (for example, Cloud Object Storage for some file systems). For the sake of redundancy, some of the services become clusters of nodes storing the same data. In a horizontal configuration of GitLab there are various ancillary services required to coordinate clusters or discover of resources, such as PgBouncer for Postgres connection management, Consul for Prometheus end point discovery, etc. ## Setup instructions -- GitLab From 49db05d5446464febe355cb5d7ee351a5b233933 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Fri, 17 Dec 2021 15:45:22 +0000 Subject: [PATCH 6/6] Apply 2 suggestion(s) to 1 file(s) --- .../reference_architectures/1k_users.md | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/doc/administration/reference_architectures/1k_users.md b/doc/administration/reference_architectures/1k_users.md index 7f90771f65d22f..d1b717b9c10b33 100644 --- a/doc/administration/reference_architectures/1k_users.md +++ b/doc/administration/reference_architectures/1k_users.md @@ -29,20 +29,6 @@ many organizations. | Up to 500 | 4 vCPU, 3.6 GB memory | `n1-highcpu-4` | `c5.xlarge` | `F4s v2` | | Up to 1,000 | 8 vCPU, 7.2 GB memory | `n1-highcpu-8` | `c5.2xlarge` | `F8s v2` | -The Google Cloud Platform (GCP) architectures were built and tested using the -[Intel Xeon E5 v3 (Haswell)](https://cloud.google.com/compute/docs/cpu-platforms) -CPU platform. On different hardware you may find that adjustments, either lower -or higher, are required for your CPU or node counts. For more information, see -our [Sysbench](https://github.com/akopytov/sysbench)-based -[CPU benchmarks](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Reference-Architectures/GCP-CPU-Benchmarks). - -In addition to the stated configurations, we recommend having at least 2 GB of -swap on your server, even if you currently have enough available memory. Having -swap helps to reduce the chance of errors occurring if your available memory -changes. We also recommend configuring the kernel's swappiness setting to a -lower value (such as `10`) to make the most of your memory, while still having -the swap available when needed. - ```plantuml @startuml 1k card "**Prometheus + Grafana**" as monitor #7FFFD4 @@ -75,7 +61,21 @@ monitor .[#7FFFD4,norank]--> redis @enduml ``` -The diagram above shows that while GitLab can be installed on a single server, it is internally composed of multiple services. As a GitLab instance is scaled, each of these services are broken out and independently scaled according to the demands placed on them. In some cases PaaS can be leveraged for some services (for example, Cloud Object Storage for some file systems). For the sake of redundancy, some of the services become clusters of nodes storing the same data. In a horizontal configuration of GitLab there are various ancillary services required to coordinate clusters or discover of resources, such as PgBouncer for Postgres connection management, Consul for Prometheus end point discovery, etc. +The diagram above shows that while GitLab can be installed on a single server, it is internally composed of multiple services. As a GitLab instance is scaled, each of these services are broken out and independently scaled according to the demands placed on them. In some cases PaaS can be leveraged for some services (e.g. Cloud Object Storage for some file systems). For the sake of redundancy some of the services become clusters of nodes storing the same data. In a horizontal configuration of GitLab there are various ancillary services required to coordinate clusters or discover of resources (e.g. PgBouncer for Postgres connection management, Consul for Prometheus end point discovery). + +The Google Cloud Platform (GCP) architectures were built and tested using the +[Intel Xeon E5 v3 (Haswell)](https://cloud.google.com/compute/docs/cpu-platforms) +CPU platform. On different hardware you may find that adjustments, either lower +or higher, are required for your CPU or node counts. For more information, see +our [Sysbench](https://github.com/akopytov/sysbench)-based +[CPU benchmarks](https://gitlab.com/gitlab-org/quality/performance/-/wikis/Reference-Architectures/GCP-CPU-Benchmarks). + +In addition to the stated configurations, we recommend having at least 2 GB of +swap on your server, even if you currently have enough available memory. Having +swap helps to reduce the chance of errors occurring if your available memory +changes. We also recommend configuring the kernel's swappiness setting to a +lower value (such as `10`) to make the most of your memory, while still having +the swap available when needed. ## Setup instructions -- GitLab