Gitaly를 통해 Git 레파지토리 안정적인 운영하기 | DevSecOps 구축 컨설팅, 교육, 기술지원 서비스 제공

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

Dexter
Dexter | DevOps Consultant

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 구성 및 업그레이드, 쿠버네티스에서 운영에 대해서 지원 가능합니다. 오른쪽 상단에 문의하기를 통해 필요하신 사항을 알려주세요.