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 이중화 솔루션이 된 것입니다. (짝짝짝)