참조 아키텍처: 최대 20 RPS 또는 1,000 사용자

Tier: Free, Premium, Ultimate Offering: Self-Managed

이 페이지는 GitLab 참조 아키텍처를 설명하며, 실제 데이터를 기반으로 20 초당 요청(20 RPS)의 피크 부하 및 최대 1,000 명의 사용자(매뉴얼 및 자동화)의 일반적인 피크 부하를 대상으로합니다.

전체 참조 아키텍처 디렉터리은 사용 가능한 참조 아키텍처을 참조하십시오.

사용자 구성 GCP AWS Azure
최대 1,000 또는 20 RPS 8 vCPU, 16 GB 메모리 n1-standard-81 c5.2xlarge F8s v2

각주:

  1. GCP의 경우, 권장 사항인 8 vCPU 및 16 GB RAM과 가장 가깝고 동등한 표준 기계 유형을 선택했습니다. 원하는 경우 사용자 지정 기계 유형을 사용할 수도 있습니다.

위 다이어그램은 GitLab이 단일 서버에 설치될 수 있지만, 내부적으로 여러 서비스로 구성된 것을 보여줍니다. GitLab 인스턴스가 확장되면 각 서비스는 이에 대한 수요에 따라 독립적으로 확장됩니다. 경우에 따라 일부 서비스에는 PaaS를 활용할 수도 있습니다(예: 일부 파일 시스템에 대한 클라우드 객체 리포지터리). 이중화를 위해 데이터를 저장하는 노드 클러스터가 되는 경우도 있습니다. GitLab의 수평 구성에서는 클러스터를 조정하거나 리소스를 찾기 위해 여러 보조 서비스가 필요합니다(예: PostgreSQL 연결 관리를 위한 PgBouncer, Prometheus 엔드포인트 검색을 위한 Consul).

요구 사항

시작하기 전에, 참조 아키텍처에 대한 요구 사항을 참조하십시오.

caution
노드 사양은 활발하게 사용되는 패턴 및 리포지터리 크기의 상위 백분위수를 기반으로합니다. 그러나 대규모 단일 리포지터리(여러 기가바이트보다 큰)나 추가 워크로드가 있는 경우, 환경의 성능에 중대한 영향을 미칠 수 있으며 추가 조정이 필요할 수 있습니다. 이 경우, 연결된 문서를 참고하고 고객 성공 관리자 또는 지원 팀에 문의하여 추가 지침을 받는 것이 좋습니다.

테스트 방법론

1k 아키텍처는 대부분의 워크플로를 커버하도록 설계되었으며, 정기적으로 스모크 및 성능 테스트를 수행합니다. 테스트 플랫폼 팀은 다음 엔드포인트 처리량 대상에 대해 테스트를 실시합니다.

  • API: 20 RPS
  • 웹: 2 RPS
  • Git (Pull): 2 RPS
  • Git (Push): 1 RPS

위 목표는 사용자 수에 해당하는 총 환경 부하에 기반하여 선택되었습니다(CI 및 기타 워크로드 포함).

만약 위 엔드포인트 대상에 대해 정기적으로 높은 처리량을 가지고 있다는 메트릭치가 있다면, 대규모 단일 리포지터리나 주목할만한 추가 워크로드가 있는 경우에는 환경의 성능에 중대한 영향을 미칠 수 있으며, 추가 조정이 필요할 수 있습니다. 이 경우, 연결된 문서를 참고하고 고객 성공 관리자 또는 지원 팀에 문의하여 추가 지침을 받는 것이 좋습니다.

테스트는 정기적으로 GitLab 성능 도구 (GPT) 및 해당 데이터셋을 통해 수행되며, 누구나 사용할 수 있습니다. 이러한 테스트의 결과는 GPT 위키에서 공개적으로 사용할 수 있습니다. 테스트 전략에 대한 자세한 정보는 문서의 이 섹션을 참조하십시오.

설치 지침

이 기본 참조 아키텍처를 위해 GitLab을 설치하려면 표준 설치 지침을 사용하십시오.

외부 PostgreSQL 서비스외부 객체 리포지터리 서비스를 사용하도록 GitLab을 구성하거나, 성능과 신뢰성을 높이기 위해 구성할 수도 있습니다. 이 경우 복잡성이 높아집니다.

고급 검색 구성

Tier: Premium, Ultimate Offering: Self-Managed

전체 GitLab 인스턴스에서 빠르고 고급 코드 검색을 위해 Elasticsearch를 활용하고 고급 검색 기능을 활성화할 수 있습니다.

Elasticsearch 클러스터 설계 및 요구 사항은 특정 데이터에 따라 다릅니다. 인스턴스와 함께 Elasticsearch 클러스터를 설정하는 권장 사항 및 최적의 클러스터 구성을 선택하는 방법에 대한 정보는 여기서 읽을 수 있습니다.

Helm 차트(https://docs.gitlab.com/charts/)를 사용한 클라우드 네이티브 하이브리드 참조 아키텍처

클라우드 네이티브 하이브리드 참조 아키텍처는 선택한 상태 없는 컴포넌트를 Kubernetes를 통해 배포하고 공식 Helm 차트를 사용하여 상태 있는 컴포넌트를 Linux 패키지와 함께 계산 VM에 배포하는 대체 접근 방식입니다.

2k 또는 40 RPS GitLab 클라우드 네이티브 하이브리드(HA가 아님) 및 3k 또는 60 RPS GitLab 클라우드 네이티브 하이브리드 (HA) 참조 아키텍처는 Kubernetes에서 권장하는 가장 작은 사양입니다. 사용자 수가 적거나 RPS가 낮은 환경의 경우, 모든 권장 노드 사양을 원하는대로 낮출 수 있습니다. 그러나 일반 요구 사항보다 낮게 설정하지 않는 것이 좋습니다.