Spring

무중단 배포

무중단 배포란 서비스의 중단없이 배포를 완료하는 것을 말한다.

새로운 버전의 서비스가 다운로드되고 로딩되는 도중에 생기는 다운타임 동안 유저는 서비스를 이용할 수 없다.

이같은 문제를 막기 위해 무중단 배포에 대한 고려가 시작되었고 오늘은 대표적인 3가지 무중단 배포에 대해 알아보겠다.

 

1. Rolling Deployment

롤링 배포는 인스턴스를 증가시키지 않고 인스턴스 일부를 점진적으로 업데이트하는 방식이다.

인스턴스 일부를 잠시 중단시킨 후 새로운 서비스를 로딩하고, 나머지 인스턴스에서 실시간 서비스를 담당하는 방식이다

 

장점으로는 가지고 있는 인스턴스만으로도 배포가 가능하고 순서대로 업데이트를 진행하며 롤백도 쉽다는 점이지만

단점으로는 일부 인스턴스가 서비스를 담당하는동안 과부하가 걸릴 가능성이 있고, 어느 인스턴스는 구버전 어느 인스턴스는 신버전인 상황으로 유저들간의 호환성 문제가 발생할 수 있다.

 

2. Blue-Green Deployment

블루그린 배포는 구버전 인스턴스들(블루), 신버전 인스턴스들(그린)을 따로 둔 후에  신버전의 업로드가 완료되면 트래픽을 전환하는 방식이다.

 

장점으로는 구버전의 인스턴스들이 남아있어 활용이 가능하고 운영환경에 영향을 주지 않는 인스턴스들이 있기 때문에 테스트에도 용이하다.

단점으로는 시스템 자원이 두배가 되어야한다.

 

3. Canary Deployment

카나리 배포는 광부들이 카나리아 새를 이용해 가스 누출을 감지했던 것에서 유래한 것으로 잠재적 문제 상황을 미리 발견하고자 하는 방식이다.

신버전을 소수의 유저들에게 배포해보고 문제 상황을 확인한 후 점차 많은 유저들에게 배포하는 방식이다.

블루그린과 다른 점은 한번에 모든 트래픽을 전환하지 않기 때문에 문제 상황을 최소화할 수 있다.

느낀 점

대략적으로만 알아봤는데 최종 프로젝트에 꼭 적용해보자.

'TIL' 카테고리의 다른 글

[24.01.05]  (0) 2024.01.05
[24.01.04]  (1) 2024.01.05
[24.01.02]  (0) 2024.01.02
[23.12.28]  (0) 2023.12.29
[23.12.27]  (2) 2023.12.27

+ Recent posts