배포 관리 도구

무중단 배포 전략 - 우리는 Rolling!

qpmi1zm29 2024. 5. 2. 17:32

면접 때, 무중단 배포에 대한 질문을 받았엇는데.. 답변을 야무지게 하지 못했다^-^..

해당 이론 역시 너무 정보가 많기 때문에, 공부용으로 기억해야 할 핵심만 적도록 하겠다!

 


크게 무중단 배포 전략이라고 한다면,

Rolling / Blue-Green / 카나리 배포가 있겠다.

 

예전에 정보처리 기사 공부할 때 많이 봤었는데...

 

 

Rolling

운영 중인 서버를 순차적으로 LB에서 제거한 후, 더이상 트래픽이 들어오지 않는 서버에 대해 새로운 버전으로 배포를 진행하는 것을 의미한다.

 

이때 LB에서 하나씩 분리해도 되고, 반띵해서 한 번에 여러 대를 분리하기도 한다.

현재 우리는 요 기법을 쓰고 있는데, public cloud 환경을 쓰지 않고, 사내 인프라가 IDC로 구성되어 있는 상태에서 자체적으로 cloud 환경처럼 조성해서 운영되고 있다.

 

그래서 AWS 처럼 장비를 유연하게 추가하거나 네트워크 설정을 그루핑해서 설정하기가 쉽지 않아서 해당 전략을 사용하고 있다.

 

세 전략 중 가장 보편적으로 쓰이고, 쿠버네티스에서 Pot을 배포할 때도 기본 전략이 Rolling 이라고 한다.

 

 

Blue - Green 전략

Blue : 기존 운영 중이던 어플리케이션 버전

Green : 새로 배포할 어플리케이션 버전

 

기존에 운영 중인 서버와 동일한 구성으로 신규 버전 어플리케이션을 위해 준비한다.  ( 2개의 pair가 존재하는 것 )

신규 버전 서버에 배포가 완료되면, 한 번에 사용자 트래픽을 구버전에서 신 버전으로 옮겨버린다. 확 ----!

 

Blue 버전의 서버들은 1시간 정도 있다가 삭제할 수도 있고, 혹은 추후를 위해 백업용으로 가지고 있을 수도 있다.

 

해당 전략의 장점은 구버전과 신버전 호환성 문제가 없다는 것인데,

위처럼 구성하기 위해서는 유연하게 서버의 대수를 증가시키고, 네트워크 설정을 변경할 수 있어야 한다.

그러나 온프라미스 환경에서는 해당 작업이 번거롭기 때문에, 보통 AWS 같은 public cloud 환경에서 많이 쓰이는 전략이다.

 

 

 

카나리 배포 전략

인프라 세팅은 Blue - Green과 동일하게 한다.

그러나 사용자 트래픽을 한 번에 옮기는 것이 아니라 조금씩 Green으로 유입되는 양을 늘리다가 신 버전에 이상이 없다고 판단 되었을때, 완전히 Green으로 트래픽을 전환한다..

 

해당 전략 또한 구 버전과 신 버전이 같이 운영되기 때문에 호환성 문제가 있을 수 있지만, 오류를 조기에 감지할 수 있다는 장점이 있다. 

 

 

 

 

★ 속도 면에서 비교하자면 보통 Rolling 보다는 Blue - Green 의 배포 속도가 더 빠르다고 한다.