[문제] CI/CD 파이프라인 구축에 사용되는 Jenkins, GitLab CI/CD, GitHub Actions의 특징과 차이점을 비교하고, GitOps 방법론에서 ArgoCD를 활용한 지속적 배포(CD) 구현 방식을 설명하시오.
1. CI/CD 도구 비교
| 도구 | 특성 | 장점 | 단점 |
|---|---|---|---|
| Jenkins | 오픈소스, 자체 호스팅. 2000+ 플러그인. Java 기반 | 고도 커스터마이징, 성숙한 생태계, 온프레미스 지원 | 초기 설정 복잡, 플러그인 관리 부담, UI 노후 |
| GitLab CI/CD | GitLab과 통합. .gitlab-ci.yml YAML 기반 | 소스 관리·CI/CD·보안 통합, Auto DevOps 지원 | GitLab 종속성, 대규모 시 비용 |
| GitHub Actions | GitHub 기본 내장. .github/workflows/ YAML | GitHub와 완벽 통합, 오픈소스 Actions 생태계, 무료 티어 | GitHub 종속성, 대규모 빌드 분 소진 |
2. GitOps + ArgoCD
GitOps는 Git 저장소를 단일 진실 공급원(SSOT)으로 사용하여 인프라·애플리케이션 상태를 선언적으로 관리하는 방법론이다.
ArgoCD 동작 방식: ① Git 저장소의 K8s 매니페스트 감시 → ② 클러스터 실제 상태와 비교 → ③ 차이(Diff) 감지 시 자동 동기화(Sync) → ④ 드리프트 자동 교정
- 장점: 배포 이력=Git 커밋 이력, 롤백=Git revert, 감사 추적 자동화
- 비교 대상: FluxCD (CNCF 다른 GitOps 구현체)
핵심 키워드: CI/CD, Jenkins, GitLab CI, GitHub Actions, GitOps, ArgoCD, SSOT, K8s 배포
Jenkins는 유연성, GitLab CI·GitHub Actions는 플랫폼 통합 편의성이 강점이다. GitOps의 ArgoCD는 K8s 배포 상태를 Git과 동기화하여 선언적·감사가능한 지속적 배포를 구현한다.