CI/CD 파이프라인

출제 빈도: ★★★★★ | 매회 기본


답안.

Ⅰ. 개요

CI/CD(Continuous Integration / Continuous Delivery·Deployment)는 소프트웨어의 빌드·테스트·배포를 자동화하여 릴리스 주기를 단축하고 품질을 보장하는 DevOps의 핵심 실천이다. CI는 코드 통합 시 자동 빌드·테스트를, CD는 검증된 코드의 자동 배포를 수행한다.

Ⅱ. 파이프라인 구조

개발자 코드 커밋
    ↓
┌──────────────────────────────────────────┐
│ CI (지속적 통합)                          │
│  Source → Build → Unit Test → SAST       │
│                                          │
│ CD (지속적 배포)                          │
│  → Integration Test → Stage → Approval   │
│  → Production Deploy                     │
└──────────────────────────────────────────┘
    ↓
모니터링 & 피드백 (SRE)

Ⅲ. 핵심 구성요소

구성요소역할대표 도구
소스 관리버전 관리, 브랜치 전략Git, GitHub
빌드 자동화컴파일, 패키징Maven, Gradle, Docker
테스트 자동화단위·통합·E2E 테스트JUnit, Selenium, Jest
보안 스캔SAST/DAST/SCASonarQube, Trivy
배포 전략무중단 배포ArgoCD, Spinnaker
모니터링성능·에러 추적Prometheus, Grafana

Ⅳ. 배포 전략 비교

전략방법장점단점
롤링인스턴스 순차 교체자원 효율버전 혼재
블루/그린두 환경 전환즉시 롤백2배 인프라
카나리소수에 먼저 배포리스크 최소화관측성 필요
A/B 테스트사용자 그룹별 분배데이터 기반 검증복잡한 설정

Ⅴ. GitOps와의 연계

GitOps는 Git 저장소를 단일 진실의 원천(SSOT)으로 삼아 선언적 인프라와 애플리케이션 상태를 관리하는 운영 모델이다. ArgoCD가 Git과 클러스터 상태를 지속 동기화하여 드리프트를 자동 교정한다.


관련: IaC(03번) · DevSecOps(04번) · GitOps(09번) · SRE(02번)