728x90

1.1 GitOps란?
GitOps는 Git 저장소를 단일 소스(Single Source of Truth) 로 삼아 인프라를 코드로 관리(Infrastructure as Code) 하는 방법론이다.
즉, 모든 인프라와 애플리케이션 배포를 Git을 통해 관리하고 자동화하는 방식이다.
GitOps의 3대 핵심 원칙 (Pillars)
- Git은 단일 진실의 원천이다 — 모든 상태는 Git에서 관리된다.
- 모든 것은 코드로 표현한다 — 설정과 인프라 모두 코드로 명시한다.
- Git 워크플로를 통해 운영한다 — Pull Request, Merge 등 Git 프로세스로 변경을 수행한다.
OpenGitOps (CNCF 산하 프로젝트)
GitOps 원칙을 정의하고 표준화한 워킹 그룹이다.
4가지 핵심 원칙
- Declarative : 원하는 상태를 선언적으로 기술한다.
- Versioned & Immutable : 버전 이력과 불변성을 유지한다.
- Pulled Automatically : Git에서 자동으로 반영된다.
- Continuously Reconciled : 실제 상태를 지속적으로 조정한다.
1.2 왜 GitOps인가?
GitOps를 도입하면 DevOps 문화와 배포 자동화를 더 깊게 통합할 수 있다.
GitOps 도입의 4가지 주요 이점
- 표준 워크플로 (Standard workflow)
개발자에게 익숙한 Git 도구와 절차를 그대로 사용할 수 있다. - 보안 강화 (Enhanced security)
변경 전 코드 리뷰, 예기치 않은 구성 변경 감지를 통해 안정성을 확보한다. - 가시성 및 감사 (Visibility and audit)
모든 변경 이력이 Git에 기록되어 추적 가능하다. - 멀티클러스터 일관성 (Multicluster consistency)
여러 환경에서도 일관된 배포를 보장한다.
1.3 쿠버네티스 CI/CD와 GitOps
CI/CD란?
- CI (지속적 통합) : 코드 변경을 자동으로 통합한다.
- CD (지속적 배포) : 검증된 코드를 자동으로 배포한다.
GitOps는 CI/CD 파이프라인의 CD 영역을 확장한 개념이다.
CI가 컨테이너 이미지를 빌드하고, GitOps는 매니페스트 변경을 감지해 자동 배포를 수행한다.
흐름 예시
- 개발자가 코드를 Git에 푸시한다.
- CI가 컨테이너 이미지를 빌드하여 레지스트리에 저장한다.
- GitOps 엔진이 Git 매니페스트를 읽어 쿠버네티스에 배포한다.
1.4 쿠버네티스에 GitOps 적용하기
GitOps 엔진은 CD의 핵심 역할을 하며, GitOps Loop이라는 주기를 통해 시스템을 자동 조정한다.
GitOps Loop의 4단계
- Deploy — Git의 매니페스트를 배포한다.
- Monitor — Git과 클러스터 상태를 모니터링한다.
- Detect Drift — 실제 상태와 Git 정의의 차이를 감지한다.
- Take Action — 차이를 수정(동기화 또는 롤백)한다.
Git 저장소의 내용만을 ‘진실’로 신뢰하고, 모든 변경은 Git 워크플로로만 수행한다.
GitOps 환경 구성 예시
- 앱 소스 코드 저장소
- CI 파이프라인 (컨테이너 빌드)
- 컨테이너 이미지 레지스트리
- 쿠버네티스 매니페스트 저장소
- GitOps 엔진 (Argo CD, Flux 등)
1.5 DevOps와 GitOps의 관계
DevOps가 애자일 개발의 연장이라면,
GitOps는 DevOps를 인프라 자동화 및 애플리케이션 수명주기 관리로 확장한다.
핵심 포인트
- 애자일의 목표는 납기(Lead Time) 단축이다.
- GitOps는 이를 위해 자동화·가시성·일관성을 제공한다.
- 모든 변경은 Git 워크플로로만 관리되어 피드백 루프가 짧아진다.
GitOps는 단순한 기술이 아니라 문화적 전환이다.
조직이 Git을 통해 모든 인프라와 애플리케이션 변경을 수행할 수 있는 체질로 변화해야 한다.
728x90
'스터디(Study) > CI·CD Study' 카테고리의 다른 글
| GitOps Cookbook 6장: 클라우드 네이티브 CI/CD (0) | 2025.10.25 |
|---|---|
| GitOps Cookbook 5장: 헬름 (0) | 2025.10.25 |
| GitOps Cookbook 4장: 커스터마이즈 (0) | 2025.10.18 |
| GitOps Cookbook 3장: 컨테이너 (0) | 2025.10.18 |
| GitOps Cookbook 2장: 실습 준비 (0) | 2025.10.18 |
댓글