Over the limit
[Devops] 무중단 배포 방식 (Rolling/BlueGreen/Canary) 본문
무중단 배포는 말그대로 중단 없이 배포를 하도록 하는 것을 말한다.
다음과 같이 v1 서비스 중 v2를 시작할 때, 중간에 끊기는 지점 (다운타임)이 발생하고 이 상황에선
서비스가 중단된다. 무중단 배포를 사용하면 이런 현상을 방지할 수 있음.
무중단 배포의 종류로는,
Rolling/BlueGreen/Canary
세가지가 존재한다.
1. Rolling
사용중인 인스턴스 내에서 새 버전을 점진적으로 교체하는 방법
장점
- 인스턴스마다 차례로 배포를 진행하기 때문에, 에러 발생시 쉽게 롤백이 가능함
- 인스턴스를 추가로 늘리지 않아도됨
- 관리하기 편함
단점
- 새 버전 배포시, 인스턴스의 수가 감소하기 때문에 사용중인 인스턴스에 트래픽이 몰릴 수 있음
- 배포 진행 시 구버전과 신버전의 공존으로 인해 호환성 문제가 발생할 수 있음
2. Blue Green 배포
Blue는 기존 버전, Green은 새로 배포될 버전을 의미한다.
신버전 배포후, 남김없이 일제히 전환하여 모든 연결이 신버전만 바라보게 하는 전략이다.
운영 중인 구 버전과 동일한 신 버전의 인스턴스를 나란히 구성한 후, 배포 시점에 로드밸런서를 통해 모든 트래픽을 일제히 전환시킨다.
장점
- 구 버전의 인스턴스가 그대로 있어서 빠른 롤백이 가능
- 운영 환경에 영향없이 새 버전 테스트가 가능하다
- 구 버전의 환경을 다음 배포에 재사용 가능
단점
- 구 버전과 신 버전을 동시에 갖고 있어야하므로 시스템 자원이 두배로 들어서 비용 문제가 발생한다
3. Canary 배포
canary 에 대한 어원부터 살펴보면, 카나리아라는 새가 있었는데 이 새가 유독가스에 민감해서 옛날 광부들이 광산에서 가스 누출 위험을 감지하는 용도로 사용했다고 한다.
카나리 배포는 즉 잠재적 문제 상황을 미리 발견할 수 있는 배포 전략이다.
특정 서버나 유저한테만 배포했다가, 정상적인게 확인되면 전체에 배포한다. 여기서, 블루그린과는 다르게 단계적으로 전환한다는 특징이 있다.
장점
- 문제 상황을 빠르게 감지할 수 있어서 성능 모니터링시 유용하다
- A/B 테스트가 가능하다
- A/B 테스트 : 대조군과 실험군으로 나누어서 특정 UI나 알고리즘 효과를 비교하는 방법론
단점
- 네트워크 트래픽 제어에 부담이 될 수 있다.
참고)
'Devops > Devops' 카테고리의 다른 글
Jenkins + Ansible 연동하기 (0) | 2024.10.11 |
---|---|
Ansible 모듈 사용해보기 (0) | 2024.10.11 |
[Devops] EC2 디스크 사용량 늘리기 (0) | 2024.10.10 |
Ansible로 Iac 구현하기 (1) | 2024.10.10 |
[Devops] CI/CD 란? (3) | 2024.10.09 |