Search
🚀

✅ 무중단 배포 개념

개념

무중단 배포(Zero-Downtime Deployment) 는 서비스에 다운 타임이 발생하지 않으면서, 새로운 버전의 애플리케이션을 서버에 배포하는 것을 의미합니다. 무중단 배포 패턴에는 대표적으로 순차적으로 배포하는 롤링 배포, 전체 서버를 통째로 바꾸는 블루/그린 배포, 트래픽을 순차적으로 이동시키는 카나리 배포가 존재합니다.

상황에 맞는 각 배포 전략

소규모 - Rolling Update

배포를 위해 새로운 서버를 생성하는 비용을 감수하기 어려운 경우, 롤링 배포를 선택할 수 있습니다. 또한, 서버 API 구간에서 버그가 생겼을 때 이것을 수정하고 개발 서버에서 충분히 테스트한 이후 상용에 올려보고 싶을 때 롤링 배포가 유용할 수 있습니다. 서버 10대 중 1대만 버그를 수정해서 배포하고 디버그 레벨로 로깅을 하면서 수정한 버그가 해결됐는지 확인합니다. 만약 실제 상용 서버에서도 문제가 없다면 1대씩 순차적으로 롤링 배포를 진행합니다.

대규모 - Blue Green

대규모 업데이트가 있을 때는 블루/그린 배포를 선택할 수 있습니다. 예를 들어 전면적으로 기술 부채가 해결되거나 중요한 변화가 있을 때, 비용을 감수하고 블루/그린 배포를 채택하는 것이 유용할 수 있습니다.

통계적 - Canary

카나리 배포는 통계적으로 무언가 확인하고 싶은 것 (오류율, 성능)이 있을 때, 혹은 A/B 테스트를 하고 싶을 때 채택할 수 있습니다.