무중단 배포의 종류
무중단 배포는 아래와 같이 크게 3가지 방식으로 나뉩니다.
Rolling 방식
동작 중인 인스턴스를 점진적으로 업데이트하는 방식입니다.
-
장점:
- 인스턴스를 추가로 늘리지 않아도 괜찮습니다.
- 인스턴스마다 차례로 버전이 전환되기 때문에 상황에 따라 롤백이 가능합니다.
-
단점:
- 신버전을 배포하고 구버전의 인스턴스 수가 감소하면서 사용 중인 인스턴스에 트래픽이 몰릴 수 있습니다.
- 배포 과정에서 구버전과 신버전이 동시에 존재하는 시점이 생기고, 이때 사용자들이 통일되고 균일한 서비스를 받지 못하게 된다.
Blue / Green 방식
동작 중인 인스턴스 환경과 동일한 환경에서 새로운 버전을 배포한 뒤, 로드밸런서를 통해 모든 트래픽을 새로운 버전의 인스턴스 환경으로 한 번에 전환하는 방식입니다.
-
장점:
- 구버전의 인스턴스가 그대로 남아있기 때문에 롤백하기 쉽습니다.
- 새 버전의 테스트가 용이합니다.
-
단점:
- 인스턴스 가동에 필요한 시스템 자원이 두 배로 필요합니다.
- 인스턴스를 새로 가동하는 환경에 대한 테스트를 사전에 완료해야 합니다.
Canary 방식
동작 중인 인스턴스 환경과 동일한 환경에서 새로운 버전을 배포한 뒤, 소수의 사용자 트래픽을 새로운 버전으로 보내 문제가 없음을 확인합니다.
문제가 없다면 점점 더 많은 사용자 트래픽을 새로운 버전으로 전달하는 방식입니다.
참고로 Canary(카나리)라는 이름은, 광부들이 유독 가스에 민감한 ‘카나리아’라는 새를 자신들의 작업 환경에 미리 풀어 가스 누출 여부를 감지했던 것에서 유래되었습니다.
-
장점:
- A/B 테스트로 활용가능합니다.
-
단점:
- 네트워크 트래픽 제어 작업이 추가로 필요합니다.