Gitaly를 통해 Git 레파지토리 안정적인 운영하기

GitLab 13.0에서는 Git 스토리지에 대한 설정에 HA와 복제(Redundancy: 시스템 장애 상황을 대비해서 중요한 시스템 구성요소를 복제)가 가능합니다. GitLab은 조직에 중요한 시스템이기 때문에, 다운타임으로 인해 소프트웨어 개발 및 CI/CD 파이프라인으로 피해가 발생 되지 않도록 해야합니다. GitLab HA는 피해를 줄 일 수 있는 방법입니다. 그렇다면 Git Repository 를 어떻게 안정적으로 운영 할 수 있는지 Gitaly 를 클러스터링 하는 방법으로 간단히 설명합니다.
Gitaly란?
Gitlab Gitaly 는 NFS(Network File System) 없이도 Git 레파지토리에 대한 RPC 기반의 빠른 읽기/쓰기를 가능하게 하는 오픈소스 서비스입니다. GitLab 13.0 이전 버전에서는 Git 레파지토리에 HA가 포함되지 않았습니다.
이게 어떤 의미가 있냐요?
Gitlab Gitaly 클러스터에 여러 Gitaly 노드를 포함하고 있으면, 모든 Git 레파지토리는 클러스터의 모든 노드에 저장됩니다. 따라서 노드 하나가 중단되면 다른 노드로 인계돼서 사용됩니다. 이로 Git 레파지토리에 대해서 Active-Active 이중화 솔루션이 된 것입니다. (짝짝짝)
이것으로 얻게 되는 것은 무엇인가요?
- 사용자에게 GitLab 고가용성을 보장합니다. 즉, 클러스터 노드가 중단돼도 인지를 못 합니다. 하나의 Gitaly 노드에 문제가 생기면 사용자에게 투명하게 다른 노드로 리다이렉션 됩니다.
- 그래서 Git 레파지토리의 오류가 적어지고, 복제된 저장소를 얻을 수 있게 됩니다.
다음은 Gitaly 클러스터에 대한 아키텍처입니다.

Gitaly Cluster 구성은 GitLab 안정성을 유지할 수 있는 좋은 솔루션이 될 수 있습니다. 몇백 명 이상의 개발자가 협업 중이시라면 Gitaly 클러스터는 반드시 필요합니다.
인포그랩이 GitLab 아키텍처를 안정적으로 유지할 수 있도록 돕겠습니다. 인포그랩은 Gitaly 클러스터뿐만 아니라 DR(재해 복구)를 위한 GEO 솔루션, 클라우드에서의 HA 구성 및 업그레이드, 쿠버네티스에서 운영에 대해서 지원 가능합니다. 오른쪽 상단에 문의하기를 통해 필요하신 사항을 알려주세요.
사전 동의 없이 2차 가공 및 영리적인 이용을 금하며, 온·오프라인에 무단 전재 또는 유포할 수 없습니다.
DevOps 도입이 필요하신가요?
인포그랩 전문가가 맞춤 을 도와드립니다.
관련 글

GitLab CI/CD와 Jenkins는 무엇이 다를까?
GitLab CI/CD는 코드 저장소와 CI/CD 프로세스를 단일화하여 협력을 강화하고 효율적인 개발 및 배포를 지원하는 통합된 플랫폼입니다. Jenkins는 많은 플러그인과 확장 기능을 제공하여 다양한 환경과 요구 사항에 맞춤형 CI/CD 파이프라인을 구축할 수 있습니다. 두 도구는 설치, UI/UX, 확장성 등에서 차이가 있으며, 프로젝트의 특성과 요구 사항을 고려하여 선택해야 합니다.
2023년 8월 10일

CJ 올리브네트웍스 GitLab CI/CD Training 진행
이번 블로그에서는 인포그랩에서 3월 11일에 CJ 올리브네트웍스애서 진행한 GitLab CI/CD 교육에 대해서 소개합니다.
2021년 4월 27일

GitLab Pipeline Execution Policy로 DevOps 보안 자동화하기
GitLab의 Pipeline Execution Policy 기능을 사용하면, 모든 변경 사항이 컴플라이언스 요구 사항을 충족하도록 손쉽게 강제하고, 그 결과를 확인할 수 있습니다. 이 글은 Pipeline Execution Policy의 개념, 구성 방법, 정책 적용 확인 방법을 실습 예제와 함께 다뤘습니다.
2025년 5월 7일