The GitOps Pipeline
이 문서는 GitOps 파이프라인의 두 번째 부분으로, GitOps의 개념, 중요성 및 실제 적용 방법에 대해 설명합니다.
1. GitOps란 무엇인가
GitOps는 Git을 원천으로 사용하여 지속적인 배포를 하는 방법입니다. 인프라와 어플리케이션을 선언적으로 관리하고, Git에 변경이 있을 때 자동으로 인프라에 롤아웃합니다. 실제 생산 환경의 상태와 Git 소스 코드 간 불일치를 파악하여 문제를 해결할 수 있는 피드백 루프를 포함합니다.

출처: Flux
2. GitOps의 중요성
GitOps는 개발자가 Kubernetes와 같은 운영 관리 및 모니터링 작업을 간소화하고 가속화하는 데 도움이 됩니다. 클라우드 네이티브 CI/CD 파이프라인 모델을 제공하며, 빠른 배포 및 복구 시간, 효과적인 알림, 안정적인 롤백 등을 가능하게 합니다.
3. GitOps: Continuous Delivery meets Cloud Native
GitOps는 DevOps와 사이트 신뢰성 엔지니어링에서 영감을 받았으며, 변경 후 위험 최소화 및 Git에서 시스템의 원하는 상태를 완전히 기술하는 데 중점을 둡니다. 컨테이너와 클라우드 네이티브 도구를 활용하여 효율성을 높입니다.
4. GitOps: 자동 Git → 클러스터 동기화
Kubernetes에서 컨테이너 배포 및 서비스, 네트워크 정책, Istio 라우팅 규칙 관리를 자동화하는 도구입니다.
5. GitOps 파이프라인
Git은 모든 것의 소스로서 중심 역할을 하며, CI, 빌드 및 테스트 서비스는 배포 가능한 아티팩트 구성을 위해 필요하지만, 전체적인 배달 조정은 CD 도구에 의해 관리됩니다.
6. GitOps: 컨테이너 및 설정만 배포
빌드 시스템은 컨테이너 이미지를 생성하고 이를 클러스터에 배포합니다.
7. GitOps 및 컨테이너 오케스트레이션 권장 사항
전체 시스템을 선언적으로 표현하는 것이 중요하며, Kubernetes나 Docker Swarm과 같은 오케스트레이션 도구를 사용합니다.
8. Git 제공자 선택
시스템 변경을 관리하고 추적하며, 필요에 따라 롤아웃하거나 롤백합니다. GitHub, Bitbucket, GitLab 등이 있습니다.
9. 요약
개발자는 GitHub에서 코드를 업데이트하고 풀 리퀘스트로 생산에 릴리스할 수 있습니다. GitOps는 클라우드 네이티브 아키텍처를 활용하여 개발자 생산성과 비즈니스 유연성을 향상시킵니다.
'04. DevOps,CICD' 카테고리의 다른 글
ArgoCD vs Spinnaker (0) | 2024.01.20 |
---|---|
롤링 업데이트(Rolling Update)는 소프트웨어 배포 방식 (0) | 2024.01.20 |
DevOps vs GitOps (0) | 2024.01.18 |
DevSecOps의 주요 보안 요소 (0) | 2024.01.18 |
DevSecOps는 개발, 보안, 운영의 통합 (0) | 2024.01.18 |