Over the limit

[Devops] 무중단 배포 방식 (Rolling/BlueGreen/Canary) 본문

Devops/Devops

[Devops] 무중단 배포 방식 (Rolling/BlueGreen/Canary)

ellapk 2024. 10. 8. 22:27

무중단 배포는 말그대로 중단 없이 배포를 하도록 하는 것을 말한다.

 

 

다음과 같이 v1 서비스 중 v2를 시작할 때, 중간에 끊기는 지점 (다운타임)이 발생하고 이 상황에선

서비스가 중단된다. 무중단 배포를 사용하면 이런 현상을 방지할 수 있음.

 

 

 

무중단 배포의 종류로는,

Rolling/BlueGreen/Canary

세가지가 존재한다.

 

 

 

1. Rolling

 

사용중인 인스턴스 내에서 새 버전을 점진적으로 교체하는 방법

 

 

 

장점

  • 인스턴스마다 차례로 배포를 진행하기 때문에, 에러 발생시 쉽게 롤백이 가능함
  • 인스턴스를 추가로 늘리지 않아도됨
  • 관리하기 편함

 

단점

  • 새 버전 배포시, 인스턴스의 수가 감소하기 때문에 사용중인 인스턴스에 트래픽이 몰릴 수 있음
  • 배포 진행 시 구버전과 신버전의 공존으로 인해 호환성 문제가 발생할 수 있음

 

 

 

2. Blue Green 배포

 

배포전/배포후

 

Blue는 기존 버전, Green은 새로 배포될 버전을 의미한다.

신버전 배포후, 남김없이 일제히 전환하여 모든 연결이 신버전만 바라보게 하는 전략이다.

운영 중인 구 버전과 동일한 신 버전의 인스턴스를 나란히 구성한 후, 배포 시점에 로드밸런서를 통해 모든 트래픽을 일제히 전환시킨다.

 

 

장점

  • 구 버전의 인스턴스가 그대로 있어서 빠른 롤백이 가능
  • 운영 환경에 영향없이 새 버전 테스트가 가능하다
  • 구 버전의 환경을 다음 배포에 재사용 가능

 

단점

  • 구 버전과 신 버전을 동시에 갖고 있어야하므로 시스템 자원이 두배로 들어서 비용 문제가 발생한다

 

 

 

 

3. Canary 배포

 

canary 에 대한 어원부터 살펴보면, 카나리아라는 새가 있었는데 이 새가 유독가스에 민감해서 옛날 광부들이 광산에서 가스 누출 위험을 감지하는 용도로 사용했다고 한다.

 

카나리 배포는 즉 잠재적 문제 상황을 미리 발견할 수 있는 배포 전략이다.

특정 서버나 유저한테만 배포했다가, 정상적인게 확인되면 전체에 배포한다. 여기서, 블루그린과는 다르게 단계적으로 전환한다는 특징이 있다.

 

 

 

장점

  • 문제 상황을 빠르게 감지할 수 있어서 성능 모니터링시 유용하다
  • A/B 테스트가 가능하다
    • A/B 테스트 : 대조군과 실험군으로 나누어서 특정 UI나 알고리즘 효과를 비교하는 방법론

 

단점

  • 네트워크 트래픽 제어에 부담이 될 수 있다.

 

 

 

참고)

https://hoehen-flug.tistory.com/53

'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