[매일매일]백엔드 기술 일기: 무중단 배포(Zero-Downtime Deployment)란?
무중단 배포란 말 그대로 서비스를 중단하지 않고 새로운 애플리케이션 버전을 배포하는 방식입니다. 사용자 입장에서는 배포 중이라는 사실조차 모를 정도로 자연스럽게 서비스가 이어지는 것이 핵심입니다.배포 과정에서 발생할 수 있는 서버 오류나 응답 지연, 트래픽 오류 등을 최소화하여 고가용성(High Availability)과 서비스 안정성을 보장합니다.
🧠 왜 무중단 배포가 중요할까?❌ 사용자가 오류 메시지를 보는 순간 이탈 가능성 증가❌ 다운타임 동안의 데이터 손실 또는 요청 누락🔁 빠른 롤백과 테스트 대응 필요📈 CI/CD 자동화가 일반화되면서 무중단 배포는 거의 필수 전략
📦 대표적인 무중단 배포 전략 3가지1. 🎯 롤링 배포 (Rolling Deployment)
서버를 순차적으로 하나씩 업데이트하는 방식
✅ 서버 한 대씩 새 버전으로 업데이트❗ 업데이트 중인 서버는 일시적으로 트래픽 처리 불가🔁 두 버전이 공존하므로 하위 호환성 필요💡 활용 예시:비용이 민감한 프로젝트, 작은 패치나 버그 수정 시👉 “서버 10대 중 1대만 우선 수정 후 로그로 확인 → 이상 없으면 나머지 순차 배포”
- 🟦🟩 블루/그린 배포 (Blue/Green Deployment)
기존 서버(Blue)와 새 서버(Green)를 동시에 운영하고, 트래픽을 전환하는 방식
✅ 새 서버를 미리 준비한 뒤 트래픽을 스위칭🔁 빠른 롤백 가능 (기존 서버 유지 중)💸 새로운 서버를 미리 구성해야 해서 비용이 큼💡 활용 예시:대규모 업데이트, 기술 스택 전환 등👉 “기술 부채 청산 후 전체 인프라를 새로운 서버에 배포”
- 🐤 카나리 배포 (Canary Deployment)
새 버전을 일부 사용자만 먼저 사용하도록 하고, 점진적으로 트래픽을 확장하는 방식
✅ 트래픽을 비율로 분산 (ex. 신규 서버 10% → 30% → 100%)📊 오류율, 성능 통계를 통해 효과적인 검증 가능🔁 롤링 배포처럼 두 버전이 공존 → 하위 호환 고려💡 활용 예시:A/B 테스트, 통계 기반 검증, 실시간 사용자 반응 체크👉 “신규 기능의 반응이 궁금할 때, 카나리로 30% 사용자만 먼저 사용”
🧭 어떤 배포 전략을 선택해야 할까?
상황
추천 배포 방식
비용 제약 있음, 작은 수정 배포
🔁 롤링 배포
대규모 업데이트, 큰 변화
🟦🟩 블루/그린 배포
통계 기반 기능 검증, A/B 테스트
🐤 카나리 배포
📚참고 및 출처https://www.youtube.com/watch?v=kgvBlruQEKU
https://hudi.blog/zero-downtime-deployment/
무중단 배포 아키텍처와 배포 전략 (Rolling, Blue/Green, Canary) 무중단 배포 아키텍처와 배포 전략 (Rolling, Blue/Green, Canary) @ Hudi · August 29, 2022 · 3 min read 배포 중단 배포 방식과 다운타임 다운타임 서버 한대로 서비스를 운영한다고 가정해보자. 현재 서버에는 V1 버전이 실행되고 있는 상황이다. 그리고 우리는 이번에 여러 기능을 추가한 V2 버전을 새로 개발했다. 이제 사용자들이 V2 버전을 사용할 수 있도록 배포해야한다. 배포를 하려면 어떤 과정을 거쳐야할까? 일단 새로 만든 V2 버전 빌드를 서버에 다운로드 해야한다. V1 버전과 … hudi.blog