X

소프트웨어 무중단 배포 전략

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
도리: