deploy가 문제를 일으키면, 사용자에 대한 영향을 최소화하기 위해 동작하는 상태로 빠르게 rollback해야 합니다. 효과적인 rollback 전략 — 그리고 모니터링, 자동 rollback, forward-fix의 관련 실천 — 은 안정적인 deploy에 필수적입니다.
왜 rollback 능력이 중요한가
deploy는 때때로 테스트를 통과한 문제(버그, 오류, 성능 문제)를 일으킴.
production에서 그런 일이 생기면:
→ 동작하는 상태를 빠르게 복원해야 함 (사용자 영향/다운타임 최소화)
→ 빠르고 안정적인 rollback이 필수 — 나쁜 deploy를 빠르게 되돌릴 수 있어야 함
→ "어떻게 rollback하는가?"는 필요하기 전에 답해져야 함.
rollback 접근법
✓ 이전 버전 재deploy — 마지막 known-good artifact/버전을 deploy
(버전 관리된 artifact가 이를 쉽게 함: v1.2.3을 되돌리려면 v1.2.2 deploy)
✓ BLUE-GREEN → 트래픽을 이전 환경으로 다시 전환하여 즉각 rollback
✓ CANARY → canary가 문제를 보이면, rollout 중지 (소수의 사용자만 영향)
✓ 데이터베이스 변경 → 더 까다로움 (하위 호환 migration 필요; 아래 참조)
✓ Feature FLAG → 재deploy 없이 문제 있는 기능 비활성화 (동작의 즉각 "rollback")
