참조 아키텍처: 최대 1,000명의 사용자

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

이 페이지는 최대 1,000명의 사용자 부하를 고려한 GitLab 참조 아키텍처에 대해 설명합니다. 주목할만한 여유 공간이 있는 (비-HA 독립형) 아키텍처입니다.

전체 참조 아키텍처 목록은 다음을 참조하세요. 사용 가능한 참조 아키텍처

사용자 수 구성 GCP AWS Azure
최대 1,000명 8 vCPU, 7.2 GB 메모리 n1-highcpu-8 c5.2xlarge F8s v2

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

요구 사항

시작하기 전에, 참조 아키텍처의 요구 사항을 확인하세요.

경고: 노드 사양은 사용 패턴과 리포지토리 크기의 높은 백분위수에 기반합니다. 그러나 대규모 단일 저장소(여러 기가바이트보다 큰)나 추가 작업 부하가 있는 경우에는 이러한 사항은 환경의 성능에 상당한 영향을 줄 수 있습니다. 만약 해당 사항이 해당된다면, 링크된 문서를 확인하거나 더 많은 안내를 위해 고객 성공 매니저나 저희 지원 팀에 문의하는 것을 강력히 권장합니다.

테스트 방법론

1k 아키텍처는 대부분의 작업 흐름을 커버하도록 설계되었으며, 품질 엔지니어링 팀에 의해 정기적으로 스모크 및 성능 테스트가 이루어집니다.

  • API: 20 RPS
  • 웹: 2 RPS
  • Git (풀): 2 RPS
  • Git (푸시): 1 RPS

위의 목표치는 사용자 수에 해당하는 총 환경적 부하와 함께 CI 및 기타 작업 부하 및 추가적인 충분한 여유 공간이 추가된 실제 고객 데이터를 기반으로 선택되었습니다.

만약 당신의 메트릭이 위의 엔드포인트 목표치에 대해 정기적으로 높은 처리량, 대규모 단일 저장소나 중요한 추가 작업 부하 가 높다는 것을 시사한다면, 이러한 요소들은 환경의 성능에 상당한 영향을 줄 수 있으며, 추가 조정이 필요할 수 있습니다. 만약 해당 사항이 해당된다면, 링크된 문서를 확인하거나 더 많은 안내를 위해 고객 성공 매니저나 저희 지원 팀에 문의하는 것을 강력히 권장합니다.

테스트는 정기적으로 GitLab 성능 도구(GPT) 및 해당 데이터셋을 활용하여 이루어집니다. 이러한 테스트의 결과는 GPT 위키에서 공개되어 있습니다. 테스트 전략에 대한 더 자세한 정보는 문서의 이 섹션을 참조하세요.

설정 지침

기본 참조 아키텍처에 대한 GitLab을 설치하려면 표준 설치 지침을 사용하십시오.

옵션으로 GitLab을 추가적인 성능과 신뢰성을 위해 외부 PostgreSQL 서비스외부 객체 저장소 서비스를 사용하도록 구성할 수도 있습니다. 이 경우 복잡성 비용이 증가합니다.

고급 검색 구성

Tier: Premium, Ultimate Offering: Self-Managed

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

권장되는 최상의 방법에 대한 권고 사항 및 Elasticsearch 클러스터 설계 및 요구 사항은 특정 데이터에 따라 달라집니다. 인스턴스와 함께 Elasticsearch 클러스터를 설정하는 방법에 대한 권장 모범 사례에 대해 읽으려면 최적의 클러스터 구성 선택에 관한 지침을 참조하십시오.

Helm 차트를 활용한 클라우드 네이티브 하이브리드 참조 아키텍처

클라우드 네이티브 하이브리드 참조 아키텍처는 일부 무상태 구성 요소가 쿠버네티스에 공식 Helm 차트를 통해 배포되고 상태유지 구성 요소는 Linux 패키지를 사용하여 컴퓨팅 VM에 배포되는 대안적인 접근 방식입니다.

2k GitLab 클라우드 네이티브 하이브리드 (비 고가용성) 및 3k GitLab 클라우드 네이티브 하이브리드 (HA) 참조 아키텍처는 쿠버네티스에서 권장하는 가장 작은 규모입니다. 사용자 수가 적은 환경의 경우 노드 사양을 낮출 수 있습니다. 사용자 수에 따라 모든 제안된 노드 사양을 필요에 따라 낮출 수 있습니다. 그러나 일반적인 요구 사항보다 낮아지지 않도록 권장됩니다.