GitOps 방법론(GitOps Methodology)

GitOps

핵심 키워드

  • 개발자와 운영팀 사이의 협업을 강화
  • Kubernetes와 같은 클라우드 네이티브 환경에서 애플리케이션을 배포하고 관리 목적
  • Git을 단일 소스 오브 진리(Source of Truth)로 사용

GitOps 방법론을 채택하게 된다면?

  • 인프라와 애플리케이션의 상태를 Git 저장소에 선언적으로 정의함으로써, 변경 사항과 이력이 추적이 가능해지고 개발팀과 운영팀이 동일한 Git 저장소를 사용하여 코드 리뷰와 협업을 통해 안정성을 향상시키며, 클러스터의 안정성 또한 향상시킵니다.
  • 지속 가능한 배포와 신속하게 오류 복구를 가능하게 하고, 브랜치로 인프라를 여러 환경에서 다른 구성을 할 수 있습니다.

단계별 사용 예시

1. 개발 워크플로우

  • 애플리케이션에 변경 사항이 발생하면 개발자가 Git에 Commit하고 Push합니다.

2. CI (지속적 통합)

  • CI 시스템이 Git에 발생한 변경 사항을 감지합니다. 이후 빌드 및 테스트를 수행합니다. 이 단계에서 빌드 및 테스트 결과에서 발생한 문제를 보고 받을 수 있고, 또한 버전 관리를 수행 할 수 있습니다.
  • CI 도구에는 Jenkins, Gitlab CI/CD, Circle CI 등이 있습니다.

3. GitOps 배포

  • CI 단계가 완료되면 컨테이너 이미지의 태그와 버전을 GitOps 저장소에 업데이트합니다. GitOps 시스템은 이를 감지하고 배포 프로세스를 트리거합니다.
  • GitOps 도구에는 Flux, Argo CD, Jenkins X 등이 있습니다.

4. 배포 워크플로우

  • GitOps 시스템에서 배포 프로세스를 트리거하면, 예시로 Flux는 Kubernetes Cluster에 변경 사항을 적용시킵니다. 다른 여러 도구에서 또한 배포도 가능합니다.

5. 롤백과 복구

  • 배포된 애플리케이션에서 오류가 감지되면 GitOps 저장소에서 변경 사항을 롤백함으로써 이전 상태로 되돌릴 수 있습니다.
  • Flux에서는 자동으로 이전 배포로 롤백 할 수도 있습니다.

6. 모니터링과 관찰

  • 지속적인 관찰로 지표, 로그 및 경고를 확인합니다.
  • 모니터링 도구에는 Prometheus, Grafana 등이 있습니다.

기존에 대비하여 추가적으로 얻을 수 있는 이점

  1. Git의 이점을 최대한으로 활용이 가능하다.
  2. 변경사항의 추적과 오류 해결이 용이하다.
  3. 단일 소스 오브 진리(Source of Truth)로 상태의 일관성을 유지할 수 있다.

참고 문서



Comments:

comments powered by Disqus

results matching ""

    No results matching ""