DevOps/GitOps

GitOps 원칙

우드의개발개발 2024. 10. 30. 18:09

0. 개념

GitOps 원칙은 애플리케이션과 인프라 배포를 보다 안전하고 일관되게 관리하기 위해 Git 리포지토리를 중심으로 운영을 자동화하는 방법론입니다. GitOps의 주요 원칙을 이해하려면 다음 네 가지 핵심 원칙을 알고 있어야 합니다.

1. 선언적 인프라 (Declarative Infrastructure)

  • 설명: 인프라와 애플리케이션의 상태를 선언적으로 정의합니다. Kubernetes의 YAML 파일처럼 모든 상태와 구성을 명확하게 기술해두면, 현재 상태와 원하는 상태 간의 차이를 쉽게 관리할 수 있습니다.
  • 장점: 선언적 파일을 사용하면 구성 변경의 추적과 버전 관리가 쉬워지며, 상태의 일관성이 높아집니다.

2. Git을 단일 진실 소스로 사용 (Git as a Single Source of Truth)

  • 설명: 모든 인프라와 애플리케이션 구성을 Git 리포지토리에서 관리하며, Git에 저장된 내용이 현재 배포된 상태와 일치하도록 유지합니다.
  • 장점: Git이 단일 진실 소스 역할을 함으로써, 인프라와 애플리케이션 구성 변경 사항이 기록되고 감사 기능을 지원하게 됩니다. 변경 사항은 모두 Git에서 관리되고 추적됩니다.

3. 자동화된 적용 (Automatic Application)

  • 설명: Git에 변경 사항이 적용되면, GitOps 도구(예: ArgoCD, Flux)가 변경 사항을 자동으로 인프라에 적용합니다. 즉, 새 커밋이나 PR(풀 리퀘스트)이 승인되면 해당 내용이 배포 환경에 반영됩니다.
  • 장점: 모든 변경은 Git을 통해 이루어지기 때문에, 변경 내역이 기록되고 적용 과정에서 사람의 개입이 줄어들어 실수나 에러가 발생할 가능성이 낮아집니다.

4. 상태 동기화와 모니터링 (Continuous Sync and Monitoring)

  • 설명: GitOps 도구는 실제 배포 상태와 Git에 정의된 선언적 상태가 일치하는지 계속 모니터링하고, 차이가 발생할 경우 이를 자동으로 조정합니다.
  • 장점: 만약 클러스터에서 상태가 의도치 않게 변경되더라도 자동으로 원래의 상태로 복구할 수 있어, 선언적 상태와 실제 상태가 항상 일치하게 유지됩니다.

요약

GitOps 원칙은 코드의 변경이 곧 배포의 변경으로 이어지는 워크플로우를 구현합니다. 이러한 방식을 통해 시스템의 안정성과 일관성을 높이고, DevOps 팀이 인프라와 애플리케이션을 보다 쉽게 관리할 수 있습니다.

'DevOps > GitOps' 카테고리의 다른 글

Pull-based 접근 방식이 멀티 테넌트를 지원하는 방법  (1) 2024.10.30