배포·릴리스·프로덕션 테스트
Rolling·Blue-Green·Canary·Chaos Engineering으로 배포 리스크를 줄이고 관측·롤백·검증을 체계화하는 전략
한 문단 요약 — 배포 리스크가 커지는 이유 5가지
결론: 배포는 코드 문제가 아니라 상태·의존성·관측의 복합 리스크다.
첫째, 인메모리·세션·캐시 등 상태(State)가 버전 간 충돌한다.
둘째, 서비스·라이브러리·스키마 버전 불일치가 즉시 장애로 드러난다.
셋째, 외부·내부 의존성이 동시 변경되며 실패 확률이 곱해진다.
넷째, 데이터 마이그레이션이 되돌릴 수 없는 변경을 만든다.
다섯째, 관측성 부족으로 문제가 생겨도 알 수 없다.
공통 릴리스 시나리오
결론: 모든 전략은 주문 서비스의 새 버전을 안전하게 노출하는 방법의 차이다.
주문 서비스 v1 → v2 배포
- 주문 생성 로직 변경
- 결제 오류 처리 개선
- 응답 필드 일부 변경
Rolling Deployment
결론: Rolling은 가장 단순하지만, 상태·호환성에 가장 엄격하다.
정의
기존 인스턴스를 점진적으로 교체하며 새 버전을 배포하는 전략.
작동 흐름
Old Pod ↓
New Pod ↑
→ 전체 트래픽 점진 전환
장점 / 단점
| 장점 | 단점 |
|---|---|
| 추가 인프라 비용 낮음 | 롤백 느림 |
| 구현 단순 | 혼합 버전 공존 |
| 자동화 용이 | 상태·스키마 호환 필수 |
언제 적합한가
- 하위 호환이 보장될 때
- 상태를 외부로 완전히 분리했을 때
Blue-Green Deployment
결론: Blue-Green은 빠른 롤백을 비용으로 사는 전략이다.
정의
기존(Blue)과 신규(Green) 환경을 동시에 운영 후 트래픽을 한 번에 전환.
작동 흐름
Blue ←→ Green
→ 트래픽 스위치 전환
장점 / 단점
| 장점 | 단점 |
|---|---|
| 즉각 롤백 가능 | 인프라 비용 2배 |
| 버전 혼합 없음 | 데이터 동기화 부담 |
| 테스트 용이 | 스위치 실패 리스크 |
언제 적합한가
- 다운타임이 치명적인 서비스
- 빠른 복구가 최우선일 때
Canary Deployment
결론: Canary는 안정성 검증을 위한 통제된 실험이다.
정의
일부 트래픽에만 새 버전을 노출해 지표를 비교하는 전략.
작동 흐름
5% → 10% → 50% → 100%
장점 / 단점
| 장점 | 단점 |
|---|---|
| 장애 반경 최소화 | 관측성 필수 |
| 점진적 검증 | 설정·운영 복잡 |
| 자동 중단 가능 | 판단 기준 불명확 위험 |
Canary의 핵심 지표
- 오류율
- 지연(p95/p99)
- 주문 성공률
Canary vs A/B 테스트
결론: 두 전략은 목적이 다르다 — 안정성 vs 제품 판단.
| 구분 | Canary | A/B |
|---|---|---|
| 목적 | 안정성 검증 | 제품 실험 |
| 지표 | 오류·지연 | 전환·매출 |
| 실패 시 | 즉시 중단 | 실험 종료 |
| 대상 | 시스템 | 사용자 행동 |
혼용하면 안전 검증과 제품 판단이 모두 실패한다.
Chaos Engineering
결론: Chaos는 장애를 만드는 게 아니라 가정을 검증하는 실험이다.
목표
“이 시스템은 이 조건에서 버틴다”는 가정 검증.
선행 조건
- 관측성 확보
- 자동 복구 메커니즘
- 명확한 런북
단계적 접근 (3단계)
- 비프로덕션 장애 주입
- 제한된 프로덕션 실험
- 자동화된 혼돈 실험
배포 전략 비교 요약
| 전략 | 롤백 용이성 | 비용 | 장애 반경 | 관측 요구 |
|---|---|---|---|---|
| Rolling | 낮음 | 낮음 | 중 | 중 |
| Blue-Green | 매우 높음 | 높음 | 낮음 | 중 |
| Canary | 높음 | 중 | 매우 낮음 | 높음 |
배포 전 체크리스트
- 하위 호환이 보장되는가?
- 상태/세션 분리가 되었는가?
- 스키마 변경이 되돌릴 수 있는가?
- 롤백 경로가 자동화되어 있는가?
- Canary 중단 조건이 수치로 정의됐는가?
- 주요 SLI/SLO가 정의됐는가?
- 오류·지연 알람이 준비됐는가?
- 배포 책임자가 명확한가?
- 런북이 최신 상태인가?
- 외부 의존성 변경이 없는가?
- 트래픽 전환 시점이 명확한가?
- “지금 배포해도 되는 이유”를 설명할 수 있는가?
시리즈 전체 6편 한 줄 요약
- 패턴은 구현이 아니라 판단 프레임이다.
- 확장성은 분산과 조합의 문제다.
- 데이터 일관성은 단계적으로 회복한다.
- 확장은 경계와 계약으로 흡수한다.
- 실패는 전제로 설계한다.
- 배포는 리스크 관리의 총합이다.
