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