카테고리 없음

99클럽 코테 스터디 34일차 Version Control CD ArgoCD

차가리 2024. 6. 26. 20:49
728x90
  • 배포
    • CI
      • GitHub Actions
      • Jenkins
    • CD
      • Argo CD
    • Container
      • Docker
      • k8s
        • 쿠버네티스

Argo CD 란?

 

  • Argo CD 는 k8s에 배포된 애플리케이션의 지속적 배포(CD: Continuos Delivery) 를 관리하기 위한 K8s 네이티브 툴
  • GitOps 방식으로 작동하며, 애플리케이션의 선언적 정의와 환경 구성을 Git 리포지토리에 저장하고 이를 통해 배포 상태를 관리함.

개념

  • k8s 네이티브 : k8s 환경에서 원활하게 작동하도록 설계됨.
  • GitOps 방식 : Git Repository 를 단일 소스로 사용하여 모든 배포를 관리
  • 자동 동기화 : 설정된 정책에 따라 Git Repository의 상태와 클러터의 상태를 자동으로 동기화
  • 시각화 : 배포 상태를 웹 UI를 통해 시각적으로 모니터링 가능

장단점

장점

  1. 일관성 보장
    모든 설정과 애플리케이션 정의가 Git 에 저장되어 일관된 배포 상태를 유지
  2. 자동화
    자동 동기화 및 자동 복구 기능을 통해 운영 부담을 줄임.
  3. 확장성
    k8s 네이트브 툴로 k8s 의 모든 기능과 완벽하게 통합되어 확장성이 뛰어남.
  4. 시각적 관리
    직관적인 웹 UI를 제공하여 배포 상태를 시각적으로 관리 가능
  5. 감사 가능성
    모든 변경 사항이 Git에 기록되므로 변경 이력 추적이 용이함.

단점

  1. 복잡성
    k8s 와 GitOps 방식에 대한 깊은 이해가 필요함.
  2. 러닝 커브
    초기 설정과 운영에 대한 학습 곡선이 있음.
  3. 의존성
    Git Repository에 대한 높은 의존성으로 Git 서버의 가용성이 중요

기존 CD

  1. Jenkis
    가장 널리 사용되는 CI/CD 도구로 다양한 플러그인과 광범위한 커뮤니티 지원
  2. GitLab CI/CD
    GitLab 과 통합된 CI/CD 도구로 GitLab의 기능을 활용하여 배포 관리
  3. Travis CI
    GitHub Repository 와 통합하여 CI/CD 파이프라인을 구성할 수 있는 도구
  4. CircleCI
    빠른 빌드와 배포를 위해 설계된 CI/CD 도구

기존 CD 와 Argo CD 의 차이점

  1. GitOps 방식
    Argo CD 는 GitOps 방식을 채택하여 Git Repository를 소스 사용해 배포를 관리하는 점이 다름.
  2. k8s 네이티브
    k8s 클러스터 환경에 최적화된 기능을 제공
  3. 자동화 및 동기화
    Git Repository 와 클러스터 상태를 자동으로 동기화하는 기능
    제공

사용하는 이유

  1. 안정성
    Git을 단일 소스로 사용하여 배포의 일관성과 안정성을 보장
  2. 자동화
    수동 작업을 줄이고 자동화된 동기화 및 복구 기능 제공
  3. 효율성
    배포 상태를 시각적으로 관리하고 모니터링할 수 있어 운영 효율성 증대
  4. 보안
    변경 사항이 모두 Git 에 기록되어 감사 추적이 용이

Argo CD 는 k8s 환경에서 GitOps 방식을 활용하여 애플리케이션 배포를 관리함으로써 일관성, 자동화, 안정성, 효율성을 제공하는 도구

이를 통해 DevOps 팀이 더 효과적으로 애플리케이션을 배포하고 관리할 수 있음.

728x90