본문 바로가기
Dev/Article

GitOps(Git-based Operations)

by Luigi.yoon 2025. 3. 17.

🔷 GitOps란?

**GitOps(Git-based Operations)**는
Git을 단일 진실 소스(Single Source of Truth)로 삼아
애플리케이션 인프라 구성 및 배포 자동화를 구현하는 운영 모델입니다.

✅ 핵심 개념

  • Git에 선언형 구성 저장: 인프라 상태(예: Kubernetes 리소스)를 YAML 등으로 선언하고 Git에 저장
  • 자동화된 동기화: Git의 상태와 실제 클러스터 상태를 지속적으로 비교, 불일치 시 자동으로 조정
  • 풀(Pull) 기반 배포: CD 도구(예: ArgoCD, Flux)가 Git을 감시하고 클러스터에 배포 적용

✅ 주요 특징

  • 버전 관리: 모든 변경 사항이 Git에 기록되어 변경 이력 추적 가능
  • 재현성: Git 상태만 있으면 동일한 환경 재구성 가능
  • 보안성: Git PR 기반의 승인 및 감사 흐름 활용 가능
  • 자동화: 배포/롤백이 Git 커밋 단위로 자동 수행됨

 

GitOps는 매우 강력한 인프라 및 앱 배포 자동화 모델이지만, GitOps 범위를 벗어나는 현실적 문제들, 특히 보안, 민감 정보(Secret) 관리, 스크립트 관리 등은 별도로 고려해야 합니다.

아래는 GitOps에 대한 보완점, 그리고 관련 보안/운영 이슈를 통합적으로 정리한 내용입니다.


🚫 GitOps 범위 밖 문제들

GitOps만으로 해결이 어려운 현실적인 문제들을 크게 3가지로 나눌 수 있습니다:

1. 🔐 보안 및 Secret 관리

GitOps는 모든 구성을 Git에 저장하지만, 민감한 정보까지 Git에 넣는 것은 보안상 매우 위험합니다.

문제 설명 대안/보완책
Secret 노출 위험 Git에 비밀번호/API 키 저장은 위험 Vault(예: HashiCorp Vault), Sealed Secrets, SOPS, External Secrets 등 활용
권한 관리 Git 접근 권한만으로 시스템 변경이 가능해지는 구조 RBAC, Git branch protection, 2FA, Code Review 정책 적용
Zero Trust 연동 GitOps만으로는 네트워크 경계 보안 부족 클러스터 보안은 별도 CNI, OPA(Gatekeeper), Kyverno 등 필요
 

2. ⚙️ 스크립트/작업 관리 문제

GitOps는 선언형 중심이라, 복잡한 실행 순서, 조건분기, 동적 스크립트를 다루기 어렵습니다.

문제 설명 대안/보완책
순차 실행 제어 부족 예: DB 마이그레이션 → 앱 배포 순서가 필요함 Argo Workflow, Tekton, Jenkins 등 CI 파이프라인 연계
동적 작업 선언형만으로 다루기 어려운 로직 Kubernetes Job, Helm hook, custom controller로 처리
배포 외 작업 필요 예: 백업, 모니터링 설정, cron job 등록 등 GitOps + Ansible/Terraform 등 하이브리드 운영 필요
 

3. 🧾 운영과 관찰성 한계

GitOps 자체에는 운영 도구, 모니터링, 감사 도구가 내장되어 있지 않음.

문제 설명 대안/보완책
이상 탐지/모니터링 부재 Git과 실제 상태 비교 외의 데이터 없음 Prometheus + Grafana, Loki, OpenTelemetry 등 통합 필요
배포 실패 원인 불명확 GitOps는 결과만 보여주고 디버깅은 미흡 로그 수집, 알림 시스템(Slack, PagerDuty) 연동 필수
실행 감사 부족 누가 언제 무엇을 왜 바꿨는지 이유는 Git에만 존재 Git PR 문화 강화, PR Template, Issue 연계 등 사용 권장
 

🔄 GitOps + 보완 아키텍처 예시

┌────────────┐     ┌─────────────┐     ┌────────────┐
│ Git Repo   │───▶│ ArgoCD      │───▶│ Kubernetes │
│ (Infra/App)│     │ (Sync Agent)│     │ Cluster    │
└────────────┘     └─────────────┘     └────────────┘
       │                │                     │
       ▼                ▼                     ▼
  Secrets Repo     Policy Engine        Observability
   (Encrypted)     (OPA/Kyverno)     (Prometheus, Loki)
  • Git에는 선언형 구성만 저장
  • Secret은 SealedSecrets/SOPS/Vault 등을 통해 암호화 저장
  • 운영 정책은 OPA/Gatekeeper/Kyverno로 클러스터 수준에서 통제
  • 실행 결과는 모니터링/로깅 시스템에서 확인

✅ 요약 정리: GitOps + 현실 고려

구분 GitOps 내 가능 GitOps 범위 밖 (보완 필요)
인프라 배포 ✅ 선언형 기반 완전 자동화 -
애플리케이션 배포 ✅ 선언형 및 Helm 등 지원 -
Secret 관리 ❌ 보안상 Git에 저장 불가 Vault, SOPS 등 별도 관리 시스템 필요
복잡한 스크립트 ❌ 순차 실행/조건부 실행 부족 Argo Workflow, Tekton 등으로 보완
보안 정책 ❌ 기본 RBAC만 제공 OPA, Kyverno, IAM 등 통합 필요
감사 및 추적 ✅ Git 기록 활용 가능 Slack, Jira 연계, 로그 강화 필요
운영 모니터링 ❌ 내장 기능 없음 Prometheus, Grafana, Loki 연동 필요
 

🔚 결론

GitOps는 강력한 배포 및 인프라 관리 자동화 도구지만, 보안·운영·스크립트 실행 관점에서는 한계를 가지며 반드시 보완이 필요합니다.
대부분의 조직에서는 다음과 같은 전략을 채택합니다:

"GitOps를 코어로 사용하되, Vault·OPA·Argo Workflow·Prometheus 등과 통합해 보안성과 운영성을 보완한다."

 

'Dev > Article' 카테고리의 다른 글

동시성 문제 - Race Condition(경쟁 조건)  (0) 2025.03.17
동시성 문제 - Deadlock(교착 상태)  (0) 2025.03.17
DataOps(Data Operations)  (0) 2025.03.17
MLOps(Machine Learning Operations)  (0) 2025.03.17
데브옵스(DevOps)  (0) 2025.03.17