무중단 배포: 블루-그린 vs 카나리 전략 프로덕션
Source: Dev.to
Introduction
금요일 오후 5시에 배포하는 것이 폭탄 해체와 같은 긴장감이 없어야 합니다. 하지만 많은 팀에게 배포는 언제나 위험 요소입니다: 문제가 생기면 어떻게 할까? 얼마나 빨리 롤백할 수 있을까? 월요일까지 기다려야 할까? 제로‑다운타임 배포 전략은 바로 이러한 불안을 없애기 위해 존재합니다. 여기서는 검증된 두 가지 접근법, Blue‑Green와 Canary 배포를 살펴보겠습니다.
The Problem with Traditional Deployments
전통적인 배포 과정은 다음과 같습니다:
- 실행 중인 애플리케이션 중지
- 새 버전 배포
- 애플리케이션 시작
- 문제가 없기를 기대
1‑3 단계 동안 서비스는 이용 불가능합니다. 4 단계에서 문제가 발견되면 롤백을 위해 전체 과정을 다시 수행해야 합니다. 고가용성이 요구되는 시스템에서는 이는 받아들일 수 없습니다.
Blue‑Green Deployment
How it works
- Blue가 모든 프로덕션 트래픽을 담당(현재 버전)
- Green에 새 버전을 배포(사용자 영향 없음)
- Green을 충분히 테스트
- 라우터를 Green으로 전환
- Green이 활성화되고 Blue는 대기 상태가 됨
Rollback? 라우터를 다시 Blue로 전환하면 즉시 복구됩니다.
Pros and Cons
Advantages
- 즉시 롤백 가능
- 전환 전 전체 테스트 가능
- 제로 다운타임
- 이해하기 쉬움
Disadvantages
- 인프라 2배 필요
- 데이터베이스 마이그레이션이 복잡할 수 있음
- 전환이 전부 혹은 전무 방식임
Canary Deployment
How it works
- 새 버전을 기존 안정 버전과 함께 배포합니다.
- 트래픽의 일부(예: 5 %)를 카나리 버전으로 라우팅합니다.
- 오류율, 지연 시간, 비즈니스 지표를 모니터링합니다.
- 상태가 양호하면 트래픽을 점진적으로 확대: 5 % → 25 % → 50 % → 100 %。
- 문제가 감지되면 모든 트래픽을 안정 버전으로 되돌립니다.
Pros and Cons
Advantages
- 영향 범위 제한
- 실제 사용자 검증
- 점진적인 신뢰 구축
- 데이터 기반 의사결정
Disadvantages
- 라우팅이 복잡함
- 우수한 모니터링 필요
- 전체 롤아웃이 느림
- 세션 친화성 문제
Choosing Between Them
Choose Blue‑Green when:
- 즉시, 완전한 전환이 필요할 때.
- 인프라 비용이 큰 문제가 아닐 때.
- 데이터베이스 스키마 변경이 최소일 때.
- 보다 단순한 운영 모델을 선호할 때.
Choose Canary when:
- 위험 노출을 최소화하고 싶을 때.
- 견고한 모니터링 체계가 갖춰져 있을 때.
- 사용자 경험이 세그먼트별로 다를 때.
- 전체 롤아웃 전에 실제 환경 검증이 필요할 때.
많은 팀이 두 방식을 모두 사용합니다: 인프라 변경에는 Blue‑Green, 애플리케이션 코드에는 Canary.
Database Considerations
두 전략 모두 데이터베이스 마이그레이션에 어려움을 겪습니다. 핵심 원칙은 역방향 호환성을 유지하는 것으로, 기존 버전과 새 버전이 동시에 동작할 수 있도록 하는 것입니다.
Real‑World Applications
제로‑다운타임 배포는 가용성이 비즈니스에 직접적인 영향을 미치는 시스템에서 필수적입니다:
| Industry | Downtime Impact |
|---|---|
| E‑commerce | 매출 손실, 장바구니 포기 |
| Fintech | 거래 실패, 규제 위반 |
| Casino Solution Platforms | 세션 중단, 규제 문제 |
| Healthcare | 환자 안전 위험 |
Quick Reference
| Aspect | Blue‑Green | Canary |
|---|---|---|
| Rollback Speed | 즉시 | 빠름 |
| Infrastructure Cost | 2배 | 1.1‑1.5배 |
| Risk Exposure | 전체 사용자에게 한 번에 | 점진적 |
| Complexity | 낮음 | 높음 |
| Monitoring Need | 기본 | 고급 |
Conclusion
제로‑다운타임 배포의 목표는 단순히 장애를 피하는 것이 아니라, 자신감 있게 빈번히 릴리즈할 수 있게 하는 것입니다. 배포가 안전하게 느껴지면 팀은 더 자주 배포하게 되고, 배포가 많아질수록 변경 규모는 작아져 위험도 낮아집니다.
고가용성 분산 시스템에서 포괄적인 배포 자동화 패턴을 원한다면 casino solution architecture guide를 참고하세요.
자신감을 가지고 배포하세요. 패닉 없이 롤백하세요.