Canary
Canary(카나리 배포)는 새로운 버전을 전체 사용자에게 한 번에 배포하지 않고, 일부 사용자나 트래픽에만 먼저 적용해 안정성을 검증하는 점진적 배포 전략이다. 문제가 없으면 점차 대상을 확대하고, 이상이 발견되면 즉시 롤백한다.
카나리 배포는 위험을 최소화하면서 실제 환경에서 새 버전을 검증할 수 있게 한다. 광부들이 유해 가스를 감지하기 위해 카나리아 새를 이용한 데서 유래한 이름으로, 안전한 릴리스의 대표적 기법이다.
주요 특징
- 점진적 롤아웃: 일부 트래픽에 먼저 새 버전을 적용함.
- 실시간 검증: 실제 환경에서 성능과 오류를 관측함.
- 자동 롤백: 이상 감지 시 이전 버전으로 되돌림.
- 트래픽 제어: 배포 비율을 세밀하게 조정함.
- 지표 기반 판단: 오류율·지연 등 지표로 확대 여부를 결정함.
장점
- 위험 최소화: 문제 영향을 소수 사용자로 제한함.
- 빠른 롤백: 이상 발생 시 즉시 복구함.
- 실환경 검증: 테스트로 잡기 힘든 문제를 발견함.
- 무중단 배포: 서비스 중단 없이 새 버전을 적용함.
- 데이터 기반 결정: 지표로 안전하게 확대 여부를 판단함.
관련 용어
- 블루그린 배포: 두 환경을 전환해 배포하는 무중단 전략.
- 롤백: 문제 시 이전 버전으로 되돌리는 조치.
- A/B 테스트: 두 버전을 비교해 성과를 평가하는 기법.
- 트래픽 분할: 요청을 버전별로 나누어 전달하는 방식.
- 프로그레시브 딜리버리: 점진적으로 안전하게 배포하는 접근.
주요 솔루션 및 사용 사례
- 주요 솔루션
- Argo Rollouts: 쿠버네티스에서 카나리 배포를 지원하는 도구.
- 서비스 메시: Istio 등으로 트래픽을 세밀하게 분할함.
- 인그레스 트래픽 제어: 게이트웨이에서 배포 비율을 조정함.
- 플래그 기반 배포: 기능 플래그로 노출 대상을 제어함.
- 모니터링 연계: 지표를 관측해 자동 확대·롤백함.
- 사용 사례
- 안전한 신규 배포: 새 기능을 소수에게 먼저 검증함.
- 성능 검증: 실제 부하에서 새 버전을 확인함.
- 점진적 마이그레이션: 단계적으로 새 버전으로 전환함.
- 위험 완화 릴리스: 장애 영향을 최소화하며 배포함.
- 실험적 기능 출시: 일부 사용자에게 기능을 시험 적용함.

