1. 소프트웨어 무중단 배포의 개념 및 필요성
- Software Zero Downtime Deployment Strategies
| 개념 | 실행 중인 소프트웨어의 변경 사항 적용을 위해 서비스 중단 없이 시스템에 새로운 버전을 배포하는 방식 | |
|---|---|---|
| 필요성 | 사용자 경험 향상 | 중단 없는 서비스 사용을 통한 사용자 경험/만족도 향상 |
| 비즈니스 연속성 보장 | 중단 없이 배포 가능하므로 서비스 운영 영향 최소화 | |
| 빠른 피드백 제공 | 신규 버전 배포 시 실시간 피드백 및 문제 대응 가능 | |
- 신규 버전의 소프트웨어 적용을 위해 롤링, 블루/그린, 카나리 배포 등 적절한 무중단 배포 전략을 선택하여 서비스 연속성, 가용성, 신뢰성 확보
2. 소프트웨어 무중단 배포 전략의 종류
(1) 롤링 배포 (Rolling Deployment)
| 개념 | 구버전 서버를 하나씩 신버전으로 교체하여, 두 버전이 일시 공존하며 점진적으로 배포 |
|---|---|
| 메커 니즘 | |
| 배포 절차 | ① 인스턴스 제외: 로드밸런서에 연결된 Old ver. 중 일부(예: 1대)를 트래픽 처리에서 제외 ② 업데이트: 제외된 해당 서버에 New ver. 애플리케이션을 배포 ③ 재투입: New ver. 서버의 상태(Health Check)가 정상이면 다시 로드밸런서에 연결 ④ 반복: 남은 Old ver. 서버들도 위 과정을 순차적으로 반복 ⑤ 완료: 모든 서버가 New ver. 교체되면 배포 종료. (배포 중에는 Old와 New Version 공존) |
(2) 블루/그린 배포 (Blue/Green Deployment)
| 개념 | 신버전 환경을 별도로 구축해 테스트한 뒤, 트래픽을 한순간에 전환하여 즉시 배포 |
|---|---|
| 메커 니즘 | |
| 배포 절차 | ① 환경 준비: 현재 운영 중인 환경(Blue)과 동일한 스펙의 새로운 환경(Green) 준비 ② 신버전 배포: Green 환경에 New ver. 배포하고 구동. 실제 사용자 트래픽은 Blue로만 연결 ③ 내부 검증: 운영자와 개발자가 Green 환경에 접속해 기능과 성능을 테스트 ④ 트래픽 스위칭: 로드밸런서 설정을 변경하여 모든 트래픽을 Blue → Green 한 번에 전환 ⑤ 대기 및 종료: Blue 환경은 롤백을 위해 대기하고 안정화가 완료되면 리소스 제거 |
(3) 카나리 배포 (Canary Deployment)
| 개념 | 소수 사용자에게 신버전을 먼저 노출해 검증한 뒤, 단계적으로 전체 트래픽을 전환 |
|---|---|
| 메커 니즘 | |
| 배포 절차 | ① 소수 배포: New ver. 환경 소규모 생성, 라우팅 규칙으로 소수 트래픽(예: 5%)만 v2로 연결 ② 모니터링: New ver.로 유입된 트래픽에서 발생하는 에러율, 응답 속도, 리소스 사용량 감시 ③ 점진적 확대: 문제가 없다면 New ver. 트래픽 비중 단계별 증가(예: 10% → 30% → 50%) ④ 전면 교체: 특정 시점 혹은 100% 도달 시 Old ver.을 완전히 내리고 New ver. 만 운영 ⑤ 중단 시나리오: 트래픽 전환 중 오류 발견 시 트래픽 차단, 롤백하여 대다수 사용자를 보호 |
- 롤링, 블루/그린, 카나리 배포 특징에 따라 운영 시스템과 서비스에 적절한 배포 전략 선택 필요
3. 소프트웨어 무중단 배포 전략 비교
| 비교 항목 | 롤링 배포 | 블루/그린 배포 | 카나리 배포 |
|---|---|---|---|
| 전환 방식 | 순차적 전환 | 즉시 전환 | 검증 후 전환 |
| 필요 인프라 | 기존 인프라 활용 | 인프라 2배 필요 | 일부 인프라 추가 필요 |
| 롤백 방식 | 역순 롤백 배포 | 트래픽만 원복 | 소수 트래픽만 차단 |
| 장점 | 비용 최소화 | 신속한 롤백 가능 | 점진적 배포로 안정화 |
| 단점 | 배포 시간 증가 | 인프라 비용 증가 | 배포 복잡성 증가 |
| 적용 사례 | MSA, 클라우드 시스템 | 금융권, 대규모 서비스 | 글로벌 서비스, UX 개선 |
- 비용 최소화 필요 시 롤링, 배포 안정성과 신속한 롤백 필요 시 블루그린, 영향도 최소화 필요 시 카나리 배포 전략 선택 권장
- 소프트웨어 무중단 배포의 필수 요소로 클라이언트의 요청을 특정 서버 또는 VM으로만 전달하도록 L4 스위치 등 리버스 프록시와 로드밸런서를 통해 제어 필요
[참고]
- CNCF, Amina Reshma, Mastering deployment strategies, 2023.5
- dev.to, Jason Skowronski, Intro to deployment strategies: blue-green, canary, and more, 2018.11