1. 무중단 배포란?
말 그대로 애플리케이션의 중단 없이 배포를 하는 것을 말한다.
애플리케이션은 언제 중단될까?

v1 서비스가 실행 중일 때 v2 버전을 다운로드 받는다.
v1 서비스를 종료 시키는 시점부터 v2를 시작하기 전까지 애플리케이션은 중단된다.
이렇게 서비스가 중단되는 시간을 다운타임(downtime)이라고 한다.
무중단 배포에는 크게 3가지 기법이 있다.
아래에서 자세히 알아보자
2. 무중단 배포 기법

블루는 구버전, 그린은 신버전을 의미한다.
운영중인 구버전과 동일하게 신버전의 인스턴스를 구성한 후 로드밸런서를 통해 모든 트래픽을 한번에 신버전 쪽으로 전환하는 방식이다.
장점.
단점.

롤링 배포는 사용 중인 인스턴스 내에서 새 버전을 점진적으로 교체하는 것으로 무중단 배포의 가장 기본적인 방식이다.
서비스 중인 인스턴스 하나를 로드밸런서에서 라우팅하지 않도록 한 뒤, 새 버전을 적용하여 다시 라우팅하도록 한다.
이를 반복하여 모든 인스턴스에 새 버전의 애플리케이션을 배포한다.
위 움짤을 보면
4개의 기존 버전(v0.0.1)이 있다.
그 중에 2개의 라우팅을 끊고 업데이트 버전(v0.0.2)로 업그레이드 한다.
업데이트 버전이 배포가 되면 다시 라우팅을 시작한다.
나머지 2개 인스턴스의 라우팅을 끊고 업데이트 버전을 배포한다.
나머지 2개의 인스턴스의 업데이트가 끝나면 다시 라우팅을 연결한다.
장점
단점

옛날 광부들이 유독 가스에 민감한 카나리아 새를 이용해 가스 누출 위험을 감지했던 것에서 유래한 것으로 잠재적 문제 상황을 미리 발견하기 위한 방식이다.
신버전을 소수의 유저들에게만 배포를 해보고 문제가 없는것을 확인해가며 점차 많은 유저들에게 배포하는 기법이다.
블루그린 배포와 유사하지만 블루그린처럼 트래픽을 한번에 확 바꾸는 것이 아니라 단계적으로 전환하기에 부정적 영향을 최소화하고 상황에 따라 트래픽 양을 조절하며 롤백할 수 있다.
장점.
단점.
*A/B 테스트란?
대조군과 실험군으로 나누어서 특정한 UI나 알고리즘의 효과를 비교하는 방법론
정리


배포 전

배포 후

참고
서버는 stateless해야한다. 왜냐하면 오토 스케일링으로 서버가 늘어날때
어떤 서버로 들어와도 같은동작을 해야함
만약 특정서버가 유저정보를 갖고있게되면 오토스케일링으로 서버가 늘어났을때
로드밸런스로 인해 다른서버로 들어가게 되면 세션이 끊기게 된다.
sticky session - 로그인 세션 문제 해결 But auto scaling이 밸런스있게 안됨