🌳 고급 인프라
무중단 배포가 뭔가요?
쉽게 이해하기
24시간 편의점을 생각해보세요. 리모델링을 할 때 문을 닫지 않고, 한쪽 구역씩 순서대로 공사하는 거예요. 손님들은 계속 쇼핑할 수 있고, 공사가 끝나면 새로운 인테리어의 편의점이 되어있죠. 웹서비스도 마찬가지로 사용자들이 눈치채지 못하게 새 버전으로 바꿀 수 있어요.
핵심 정리
서비스를 멈추지 않고 새 버전으로 업데이트하는 배포 방식이에요.
자세히 알아보기
무중단 배포는 서비스를 중단하지 않고 새로운 버전의 애플리케이션을 배포하는 기술이에요. 전통적인 배포 방식에서는 서버를 잠시 멈추고 업데이트한 후 다시 시작하는데, 이 과정에서 사용자들은 "서비스 점검 중" 화면을 보게 되죠.
대표적인 무중단 배포 방식으로는 블루-그린 배포와 롤링 배포가 있어요. 블루-그린 배포는 기존 서버(블루)와 동일한 새 서버(그린)를 준비한 후, 트래픽을 한 번에 새 서버로 전환하는 방식이에요. 문제가 생기면 즉시 기존 서버로 되돌릴 수 있죠. 롤링 배포는 여러 대의 서버를 하나씩 순차적으로 업데이트하는 방식이에요. 3대의 서버가 있다면 1대를 먼저 업데이트하고, 정상 동작하면 다음 서버를 업데이트하는 식이에요.
실무에서는 로드밸런서와 함께 사용해요. 로드밸런서가 트래픽을 분산하면서, 업데이트 중인 서버는 제외하고 나머지 서버로만 요청을 보내는 거죠. 쿠팡이나 배달의민족 같은 서비스가 한밤중에도 멈추지 않고 업데이트되는 이유예요.
무중단 배포를 위해서는 데이터베이스 스키마 변경도 신중하게 해야 해요. 구버전과 신버전이 동시에 동작할 수 있도록 하위 호환성을 유지해야 하거든요. 예를 들어 컬럼을 삭제하려면, 먼저 코드에서 해당 컬럼 사용을 제거하고, 배포 후 실제로 컬럼을 삭제하는 2단계 작업이 필요해요.