무중단 배포 구현하기 - 블루그린 배포
무중단 배포가 무엇일까?
- 무중단 배포는 재배포하는 도중에도 서비스를 종료하지 않고 배포한것을 적용하는 것을 의미합니다.
- 그럼 어떻게 무중단 배포를 구현할까요?
- A라는 서비스를 사용자들이 사용하고 있다고 해보겠습니다.
- 이때 A 서비스에 기능을 추가한 B 서비스가 등장합니다.
- A 서비스를 제공하고 있는 도중에 B 서비스를 배포합니다.
- 이 후 B 서비스가 안정화가 되면 A 서비스로 가는 트랙픽을 B 서비스로 바꿔줍니다.
- 이러면 사용자는 재배포에서 발생하는 다운타임을 느끼지 못한채 새로운 기능이 추가된 서비스를 사용할 수 있는 것입니다!
무중단 배포에는 무엇이 있을까요?
- 블루그린 배포 / 카나리 배포 / 롤링 업데이트 배포가 있습니다.
- 블루 그린 배포가 위에서 언급한 방식대로 동작합니다. 기존 서비스는 블루 서비스라고 하면 새로 대체되는 서비스가 그린 서비스인 것이지요.
- 그럼 카나리 배포와 롤링 업데이트가 무엇일까요?
카나리 배포
- 카나리 배포는 새 버전을 소수의 사용자에게 선 배포합니다.
- 이 후 안정성이 검토되면 점차적으로 더 많은 사용자의 트래픽을 배포된 서버로 옮기고 기존 서버를 종료시킵니다.
롤링 업데이트 배포
- 기존 인프라 위에서 점진적으로 업데이트 하는 방식으로 서버의 총 숫자가 변하지 않습니다.
- 예를 들어 기존 3개의 서버가 존재하면 서버 하나씩 점진적으로 업데이트 하는 방식입니다.
그렇다면 저희는 왜 블루그린 배포를 선택했을까요?