architecture · medium priority
Deployment Strategies
Blue-Green, Canary, Rolling, Edge Functions, CDN
학습 개요
쉬운 설명
복잡한 개념을 실생활 비유로 설명합니다.
“카나리아 배포는 맛집 신메뉴를 먼저 단골 손님 10명에게 시식시키고 반응을 보는 것. Blue-Green은 옆에 새 레스토랑을 차려놓고 한번에 모든 손님을 이동시키는 것.”
배포 전략은 "새 버전을 어떻게 안전하게 출시할까"의 문제다. 위험을 작게 나눠서 테스트하거나(Canary), 즉시 되돌릴 수 있는 준비를 해두거나(Blue-Green) 한다.
핵심 개념
Blue(현재 운영)와 Green(새 버전) 두 환경을 준비한다. 새 버전 배포가 완료되면 로드밸런서 트래픽을 Green으로 전환한다. 문제 발생 시 즉시 Blue로 롤백 가능하다.
Blue-Green 배포 흐름
Green 환경 준비
새 버전을 Green 환경에 배포 (Blue는 계속 운영)
스모크 테스트
Green 환경에서 주요 기능 검증
트래픽 전환
로드밸런서/DNS를 Green으로 전환
모니터링
오류율, 응답시간 모니터링 (이상 시 Blue로 즉시 롤백)
Blue 정리
안정화 후 Blue 환경을 다음 배포를 위한 준비 상태로 전환
장단점
장점: 즉각적인 롤백, 다운타임 없음. 단점: 두 배의 인프라 비용, DB 스키마 변경이 복잡함 (두 버전이 동시에 같은 DB를 사용하므로 하위 호환성 필요).
실무 적용
어떤 상황에서 사용하는가
Vercel에서 결제 플로우를 변경하는 새 버전을 안전하게 배포할 때
어떻게 적용하는가
1) Feature Flag로 신규 플로우를 특정 사용자에게만 활성화, 2) Vercel Preview로 스테이징 검증, 3) Canary 배포로 10% 트래픽 먼저 전환, 4) 에러율 모니터링 후 점진적 확대
흔한 실수와 안티패턴
- DB 스키마 변경을 롤백 없이 배포 (구 버전과 호환성 문제)
- CDN 캐시 purge 없이 배포 (이전 버전 JS가 새 HTML과 충돌)
- 배포 중 트래픽 급증으로 Cold Start 발생
- Blue-Green에서 세션/쿠키가 환경 간 공유 안 되는 문제
면접 질문
답변 방향 힌트
트레이드오프: 속도 vs 안전성, 비용
반드시 언급할 키워드
- Blue-Green: 즉각 전환, 높은 비용
- Canary: 점진적 검증, 낮은 위험
- 롤백 용이성 차이
- DB 스키마 변경의 복잡성
예상 꼬리 질문
- Feature Flag가 배포 전략과 어떻게 연결되나요?
- CDN 캐시 무효화는 어떻게 처리하나요?