서비스 배포 전략
롤링 업데이트
- 일반적인 배포
- 단순하게 서버를 구성하여 배포하는 전략
- 구버전에서 신버전으로 트래픽을 점진적으로 전환하는 배포
- 관리가 편하지만, 배포 중 한쪽 인스턴스의 수가 감소되므로 서버 처리 용량을 미리 고려해야함
장점
- Downtime이 없음
- 버전의 업데이트와 테스팅을 동시에 할 수 있음
단점
- 구버전과 신버전이 공존하는 시기가 있으므로, 두 버전을 모두 고려해 개발해야 함
- 세션 영속성에 대한 고려사항 👉 서버가 롤링업데이트를 진행할 때, 기존 서버에 접속하고 있던 사용자의 세션을 신규 서버로 이전해야 함
카나리 배포
- 일부 서버(10% 정도)만 신 버전을 배포하여 운영한 후 문제가 없는 것이 확인되면 점차적으로 모든 서버에 신 버전을 배포하는 방식
장점
- capacity testing을 운영환경에서 진행할 수 있음
- Rollback도 간단하게 가능함
단점
- 동시에 여러 소프트웨어 버전을 관리해야 함
- 동시에 2개 이상의 버전이 운영환경에 배포되도록 할 수 있으나, 좋은 방법은 아님
- 사용자 PC나 모바일 기기에 설치하는 경우, 사용이 어려움
블루 그린
- 새 버전의 서버 그룹을 모두 배포 완료한 뒤에, 로드밸런서에서 트래픽을 구 버전에서 새 버전으로 일시 바꾸는 방식
장점
- Downtime의 최소화 가능
- 신규 버전의 문제 발생시 빠른 rollback이 가능함
단점
- 인프라 리소스가 2배로 들어감
- 기존 운영되고 있는 서버에서 Long-term 트랜잭션이 수행중이었다면 전환시 어떤 방식으로 처리할 지 고려가 필요함
- 두 서버 환경간 migration이 배포때마다 필요하며, Rollback 수행시에도 고려되어야 함
참고자료
배포 전략의 종류 : reference-m1
배포 전략 : poikilo