CS

무중단 배포 3가지 방법 (Rolling, Blue-Green, Canary)

주코식딩 2024. 1. 28. 13:58

무중단 배포 3가지 방법을 소개한다.

 

새로운 버전을 배포하는 방식으로 다운타임이 발생하지 않고 배포한다.

 

3개의 방식 모두 4개의 WAS가 가동중이고 v1 -> v2 로 업데이트 한다고 가정한다.

Rolling Update

가장 기본적인 방식이다.

1. 2개의 WAS를 v2로 업데이트한다.

2. 2개의 WAS가 정상 동작하는지 확인한다.

3. 나머지 2개의 WAS도 v2로 업데이트 한다.

 

단점으로는 잠시 v1과 v2가 동시에 존재하므로 호환성 문제를 일으킬 수 있다.

 

Blue-Green

v1을 Blue, v2를 Green으로 가정한다.

1. Green에 4개의 WAS를 올린다.

2. Green이 정상 동작하는지 확인한다.

3. Green으로 트래픽을 전환한다.

4. Blue의 4개의 WAS를 내린다.

 

단점으로는 잠시 8개의 WAS가 올라가게 되므로 시스템 자원을 2배 더 차지하게 된다.

 

 

Canary

Blue-Green과 유사한 방법으로 배포하지만 한번에 트래픽을 변경하지 않고 소수만 사용가능한 곳에 배포한 뒤에 트래픽을 전환한다.(PBE 테스트 서버)

1. Green에 1개의 WAS를 올린다.

2. Green이 정상 동작하는지 확인한다.

3. Green으로 트래픽을 전환한다.

4. Blue -> Green 전환을 하나씩 할지 한번에 할지는 요구사항에 따라 정하면 된다.

 

단점으로는 구현이 복잡하다.

 

'CS' 카테고리의 다른 글

동기 비동기, 블록킹 논블록킹  (0) 2024.01.19
GSLB와 CDN  (0) 2024.01.17
쓰레드 특징 (프로세스와 비교)  (1) 2024.01.12
ORM, JPA, Spring Data JPA 란  (0) 2022.06.09
DB Index  (0) 2022.05.27