무중단 배포란, 서비스가 중단되지 않고 새로운 버전을 업데이트하는 방법을 의미합니다.
일반적으로 새로운 소프트웨어 버전을 적용하려면 기존 서비스를 멈추고 새로운 버전을 실행해야 합니다. 이 과정에서 서비스가 잠시 중단되는데, 이를 다운타임이라고 합니다.
다운타임은 사용자에게 불편을 줄 수 있기 때문에, 이를 해결하기 위해 무중단 배포 방식을 사용합니다.
무중단 배포를 통해 서비스는 중단 없이 새로운 버전으로 업데이트 되며, 사용자들은 끊김 없이 서비스를 계속 이용할 수 있습니다.
Rolling 배포는 사용 중인 서버(인스턴스)들에 새로운 버전의 소프트웨어를 점진적으로 배포하는 방법으로, 무중단 배포의 가장 기본적인 방식입니다.
이 방법에서는 먼저, 서비스 중인 서버 중 하나를 로드 밸런서에서 잠시 제외시킨 후, 그 서버에 새로운 버전의 소프트웨어를 적용합니다.
이후, 해당 서버를 다시 로드 밸런서에 연결하고, 다른 서버에서도 동일한 과정을 반복하여 모든 서버에 새로운 버전을 배포합니다.
장점
단점
Blue-Green 배포는 기존 버전(Blue)과 새로 배포될 버전(Green)을 의미합니다. 이 배포 방법에서는 기존 운영 환경과 동일한 환경에서 새로운 버전을 배포한 후, 모든 트래픽을 한 번에 새로운 버전으로 전환합니다.
구체적으로, 운영 중인 기존 버전과 동일한 설정을 가진 새로운 버전의 인스턴스를 미리 구성하고, 배포 시점에 로드 밸런서를 사용해 모든 트래픽을 새로운 버전으로 일제히 전환합니다.
장점
단점
Canary 배포는 잠재적인 문제 상황을 미리 발견하기 위해 신버전을 소수의 사용자나 특정 서버에 배포한 후, 문제가 없는 것을 확인하면서 점차 더 많은 사용자에게 배포하는 기법입니다.
Blue-Green 배포와 유사해 보일 수 있지만, 트래픽을 한 번에 전환하는 Blue-Green 배포와 달리, Canary 배포는 단계적으로 트래픽을 조절하면서 점진적으로 전환합니다. 이로 인해 부정적인 영향을 최소화하고, 필요시 롤백할 수 있는 유연성을 제공합니다.
장점
단점