무중단 배포

From_A_To_Z·2024년 5월 7일
0

무중단 배포란?

  • 기존 배포 방식은 서비스 배포를 위해 서버를 내리고 서비스 배포 후에 서비스를 올리는 방식 -> 실제 운영 환경에서는 서비스가 일시적으로 중단되기 때문에 권장되지 않음
  • 무중단 배포는 사용자가 서비스를 순단 없이 계속 사용할 수 있도록 새로운 버전을 배포하는 방식

무중단 배포 방식

  • 무중단 배포에는 배포 방식에 따라 대표적으로 Rolling Update, Blue Green, Canary 3가지 전략이 있음

Rolling

  • Rolling Update는 사용 중인 서비스의 업데이트를 점진적으로 수행하는 방식으로 가장 기본적인 무중단 배포 방식
  • 서비스 중인 인스턴스를 하나씩 로드 밸런서의 라우팅 대상에서 제외하고 업데이트 이후에 다시 라우팅에 포함시킨다

장점

  • 추가적인 서비스 배포가 없기 때문에 리소스 소모가 적음
  • 업데이트되는 서비스는 서비스 대상에서 제외되기 때문에 적은 서비스에 트래픽이 집중될 수 있음

단점

  • 기존 버전과 새로운 버전의 서비스가 함께 존재하기 때문에 호환성 문제가 발생할 가능성 있음

Blue Green


  • Blue: 기존 버전, Green은 새로운 버전
  • 새로운 버전에 대한 서비스를 배포 이후에 로드 밸런서의 라우팅을 기존 버전 서비스에서 새로운 버전의 서비스를 변경한다

장점

  • 운영 환경에 영향 없이 새로운 버전에 대한 테스트 가능

단점

  • 서비스 배포에 필요한 리소스가 2배 발생

Canary

  • 어원: Canary (카나리아) - 광부들의 광산에서 가스 누출을 감지하기 위한 용도로 사용된 새
  • 사용자의 범위를 늘려가며 피드백을 통해 배포하는 방식
  • 잠재적 문제를 초기에 발견하여 전체 운영환경이나 사용자에게 영향을 미치는 것을 방지

장점

  • 문제 상황을 빠르게 파악할 수 있음
  • 대조군 (기존 서비스)과 실험군 (새로운 서비스)을 비교 테스트 가능 (A/B 테스트)

단점

  • 기존 서비스와 새로운 서비스에 대한 세부적인 트래픽 제어 필요

참고 링크

https://blog.devops.dev/microsevices-deployment-patterns-rolling-vs-blue-green-vs-canary-e35440e794ed

profile
What goes around comes around.

0개의 댓글