본문 바로가기
[Linux]

인프라 무중단 배포 방식

by SAMSUNG Metaverse-Cloud 2024. 10. 24.
728x90

무중단 배포란 애플리케이션을 중지하지 않고 배포를 진행하는 것을 의미한다.

중단 시간을 가져간다면 개발자 및 인프라 담당자들은 편하게 작업할 수 있겠지만 사용자 입장에서는 불편함을 가져온다.

그렇다면 무중단 배포 방식에는 어떤 방법이 있을까?

1. Rolling 배포

Rolling 배포는 새로운 버전이 적용 된 서버와 적용되지 않은 서버가 공존하는 배포 방식이다.

위 사진에서 보듯이 3개의 서버가 있다면 한대를 라우팅에서 제외한 후 업데이트를 진행하고 업데이트가 완료되면 다시 라우팅을 진행한다. 그 후 한대씩 점진적으로 변경할 수 있다.

장점으로는 추가 비용이 들지 않으며, 롤백이 쉽고, 관리가 간편하다는 점이다.

단점으로는 구버전과 신버전이 공존하므로 호환성이나 버전에 대한 문제가 생길 수 있다. 또한 배포가 진행되는 도중 나머지 서버들에 대한 부하가 심해질 수 있다. 

 

 

2. Blue / Green 배포

Blue / Green 배포는 구버전(Blue)과 같은 갯수의 서버를 신규(Green)로 만들어 신 버전 소스를 올린 후 라우팅을 모두 신 버전으로 돌리는 배포 방식을 의미한다. 

장점으로는 롤백이 쉬우며, 구 버전을 계속 가지고 있을 경우 다음 배포 시 새로운 Green으로 사용이 가능하다. 호환성 문제 및 운영에 영향 없이 배포가 가능하다.

단점으로는 구버전과 신버전 서버가 필요하므로 서버 비용의 증가가 생기며, 신 버전을 충분히 확인하지 않을 시 배포에는 문제가 없지만 실 운영에 문제가 생길 수 있다. 

 

 

3. Canary 배포

Canary 배포는 서서히 구버전에서 신버전으로 변경하는 배포 방식으로

신버전을 소수의 유저들에게만 배포를 해보고 문제가 없는것을 확인하며 점차 많은 유저들이 신 버전을 사용할 수 있게 하는 것이다.

롤링 배포와 블루그린 배포를 섞어놓은 형태이다.장점으로는 문제가 발생 시 빠르게 감지할 수 있으며, 구버전 및 신버전 테스트가 동시에 가능하다.단점으로는 일부 사용자에게 신버전을 사용하게 한 후 점차 늘려가므로 네트워크 트레픽 제어가 필수적이다. 

728x90