핵심 인사이트 (3줄 요약)
- 본질: 섀도 배포는 실제 프로덕션 트래픽을 **신버전에 복제(미러링)**하되, 신버전의 응답은 사용자에게 반환하지 않고 버리는 방식으로 실 트래픽 기반 검증을 수행하는 배포 전략이다.
- 가치: 카나리 배포는 실제 사용자 1%가 신버전 응답을 받으므로 장애 영향이 있지만, 섀도 배포는 **사용자 영향 제로(Zero Impact)**로 신버전을 프로덕션 트래픽으로 테스트한다.
- 판단 포인트: Istio VirtualService의
mirror 기능으로 구현하며, **부작용(Side Effect)이 있는 쓰기 요청(POST/PUT/DELETE)**은 미러링 시 중복 처리 위험이 있어 읽기 전용(GET) 트래픽만 미러링하거나 격리된 DB를 사용해야 한다.
Ⅰ. 개요 및 필요성
┌───────────────────────────────────────────────────────┐
│ 섀도 배포 트래픽 흐름 │
├───────────────────────────────────────────────────────┤
│ 사용자 요청 ──▶ LB ──▶ v1 (응답 반환) ✅ │
│ │ │
│ └──▶ v2 (복제본, 응답 버림) 🗑️ │
│ └── 로그·메트릭만 수집 │
│ │
│ 사용자: v1 응답만 받음 (영향 제로) │
│ 엔지니어: v2 로그·에러·레이턴시 비교 분석 │
└───────────────────────────────────────────────────────┘
- 📢 섹션 요약 비유: 섀도 배포는 신인 배우(v2)가 무대 뒤에서 동시에 연기하지만, 관객(사용자)은 베테랑(v1)만 보는 드레스 리허설이다.
Ⅱ. 아키텍처 및 핵심 원리
배포 전략 비교
| 전략 | 사용자 영향 | 실 트래픽 검증 | 인프라 |
| 블루/그린 | 전환 시 전체 | 전환 후 | 2배 |
| 카나리 | 1~5% | ✅ | +α |
| 섀도 | 제로 | ✅ (미러링) | +α |
Istio 미러링 설정
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
spec:
http:
- route:
- destination:
host: v1-service
mirror:
host: v2-service
mirrorPercentage:
value: 100.0
- 📢 섹션 요약 비유: 미러링은 시험지를 복사해서 다른 사람(v2)에게도 풀게 하는 것이다. 채점(응답)은 원본(v1)만 한다.
Ⅲ. 비교 및 연결
| 비교 | 카나리 | 섀도 |
| 사용자 영향 | 1~5% | 제로 |
| 검증 데이터 | 실 응답 | 로그·메트릭만 |
| 쓰기 요청 | 실제 처리 | 격리 필요 |
Ⅳ. 실무 적용 및 기술사 판단
적합 시나리오
- ML 모델 교체: 추천 모델 v2의 응답 품질을 실 트래픽으로 비교.
- DB 마이그레이션: 읽기 쿼리를 신 DB에 미러링하여 결과 비교.
안티패턴
- 쓰기 요청 무분별 미러링: 주문·결제가 중복 처리 → 반드시 읽기 전용 또는 격리 DB.
Ⅴ. 기대효과 및 결론
| 지표 | 카나리 | 섀도 | 개선 |
| 사용자 장애 위험 | 1~5% | 0% | 무위험 |
| 검증 현실성 | 높음 | 높음 (실 트래픽) | 동등 |
섀도 배포는 위험 제로로 프로덕션 트래픽 검증이 필요한 ML 모델 교체·인프라 마이그레이션에 최적이다.
📌 관련 개념 맵
| 개념 | 연결 포인트 |
| 트래픽 미러링 | 섀도 배포의 핵심 메커니즘 |
| Istio VirtualService mirror | 구현 도구 |
| 카나리 배포 | 사용자 영향이 있는 대안 |
| A/B 테스트 | 두 버전 비교 (사용자 응답 포함) |
| Dark Launching | 피처 플래그 기반 비공개 테스트 |
📈 관련 키워드 및 발전 흐름도
[스테이징 테스트 (합성 트래픽)]
│
▼
[카나리 배포 (실 트래픽 1~5%, 사용자 영향 있음)]
│
▼
[섀도 배포 (실 트래픽 미러링, 사용자 영향 제로)]
│
▼
[Istio mirror (2018~) — Service Mesh 기반 자동 미러링]
│
▼
[현재: AI 기반 섀도 분석 — 미러링 결과 자동 비교·판정]
👶 어린이를 위한 3줄 비유 설명
- 섀도 배포는 신인 배우(v2)가 무대 뒤에서 같이 연기하지만 관객은 못 보는 거예요.
- 연기 결과만 비교해서 "신인이 더 잘하면" 다음에 무대에 올려요.
- 관객(사용자)은 아무 영향 없이 베테랑(v1) 공연만 보니까 안전하답니다!