배포 전략: Rolling Update, Blue/Green, Canary
Rolling Update
- 현재 운영 중인 서버들을 하나씩 새로운 버전으로 점진적으로 교체하는 방식
- 서버를 순차적으로 업데이트하여 전체 시스템의 가용성을 유지하면서 배포한다.
장점
- 서비스가 완전히 멈추지 않아 무중단 배포가 가능하다.
- 추가적인 자원 없이 기존 서버를 활용하여 배포할 수 있어 자원이 절약된다.
- 초기에 문제를 발견할 수 있고, 전체 시스템의 일부만 새로운 서버에 노출되기 때문에 위험을 줄일 수 있다.
단점
- 배포 중에는 구 버전과 신 버전이 동시에 존재하므로 호환성 문제가 발생할 수 있다.
- 데이터베이스 스키마가 바뀌었다면 구 버전에서 오류가 발생할 수 있다.
- 업데이트 과정에서 일시적으로 사용 가능한 서버 수가 줄어들어 서비스 처리 용량에 영향을 줄 수 있다.
- 서버를 하나씩 업데이트하므로 배포 속도가 느리다.
- 타겟팅된 롤아웃을 지원하지 않아 특정 사용자에게 새 버전을 제공할 수 없다.
Blue/Green Deployment
- 두 개의 동일한 배포 환경을 유지하며, 하나는 현재 서비스 중인 환경 (Blue), 다른 하나는 새로운 버전 (Green)이다.
- Green이 안전하게 배포되고 테스트가 끝나면 트래픽을 Green으로 전환한다.
장점
- 문제 발생 시 빠르게 이전 버전(Blue)으로 롤백할 수 있다.
- 환경 전환만 하면 되므로 무중단 배포가 가능하다.
- 새 버전을 실제 트래픽에 연결하기 전에 충분한 테스트를 할 수 있다.
단점
- 두 개의 완전한 환경을 유지해야 하므로 인프라 비용이 증가한다.
- 두 환경을 관리하고 동기화하는 게 복잡할 수 있다.
Canary
- 새로운 버전을 전체 사용자에게 배포하기 전에 일부 사용자나 소수의 서버에 먼저 배포하여 안정성을 검증하는 방식
- 문제가 없으면 점진적으로 배포 범위를 확대한다.
장점
- 실제 사용자 환경에서 새로운 버전의 성능과 안정성을 테스트할 수 있다.
- 문제 발생 시 영향을 받는 사용자가 제한적이다.
단점
- 트래픽 분배 및 모니터링을 위한 추가적인 설정이 필요하다.
- 배포 관리가 복잡할 수 있다.