ChooseMe의 무중단 배포(1)

김동헌·2024년 9월 15일
0

ChooseMe

목록 보기
2/3
post-thumbnail

개념 잡기

무중단 배포란, 서비스가 중단되지 않고 새로운 버전을 업데이트하는 방법을 의미합니다.

일반적으로 새로운 소프트웨어 버전을 적용하려면 기존 서비스를 멈추고 새로운 버전을 실행해야 합니다. 이 과정에서 서비스가 잠시 중단되는데, 이를 다운타임이라고 합니다.

다운타임은 사용자에게 불편을 줄 수 있기 때문에, 이를 해결하기 위해 무중단 배포 방식을 사용합니다.

무중단 배포를 통해 서비스는 중단 없이 새로운 버전으로 업데이트 되며, 사용자들은 끊김 없이 서비스를 계속 이용할 수 있습니다.

배포 방식

Rolling

Rolling 배포는 사용 중인 서버(인스턴스)들에 새로운 버전의 소프트웨어를 점진적으로 배포하는 방법으로, 무중단 배포의 가장 기본적인 방식입니다.

이 방법에서는 먼저, 서비스 중인 서버 중 하나를 로드 밸런서에서 잠시 제외시킨 후, 그 서버에 새로운 버전의 소프트웨어를 적용합니다.
이후, 해당 서버를 다시 로드 밸런서에 연결하고, 다른 서버에서도 동일한 과정을 반복하여 모든 서버에 새로운 버전을 배포합니다.

장점

  • 서버마다 순차적으로 배포가 이루어지므로, 문제가 발생할 경우 쉽게 이전 버전으로 롤백할 수 있습니다.
  • 추가적인 서버를 늘릴 필요가 없어 자원 활용이 효율적입니다.
  • 관리가 비교적 쉽습니다.

단점

  • 새로운 버전을 배포하는 동안 일부 서버가 서비스에서 제외되므로, 남은 서버들에 트래픽이 집중될 수 있습니다. 따라서 서버의 처리 용량을 신중하게 고려해야 합니다.
  • 배포 과정에서 기존 버전과 새로운 버전이 동시에 존재하기 때문에, 호환성 문제를 일으킬 가능성이 있습니다.

Blue Green

Blue-Green 배포는 기존 버전(Blue)과 새로 배포될 버전(Green)을 의미합니다. 이 배포 방법에서는 기존 운영 환경과 동일한 환경에서 새로운 버전을 배포한 후, 모든 트래픽을 한 번에 새로운 버전으로 전환합니다.

구체적으로, 운영 중인 기존 버전과 동일한 설정을 가진 새로운 버전의 인스턴스를 미리 구성하고, 배포 시점에 로드 밸런서를 사용해 모든 트래픽을 새로운 버전으로 일제히 전환합니다.

장점

  • 기존 버전의 인스턴스가 그대로 유지되므로, 문제가 발생할 경우 빠르게 이전 버전으로 롤백할 수 있습니다.
  • 운영 환경에 영향을 주지 않고 새로운 버전을 미리 테스트할 수 있습니다.
  • 기존 버전의 환경을 다음 배포에 재사용할 수 있어 효율적입니다.

단점

  • 시스템 자원이 두 배로 필요하여 비용이 더 많이 발생합니다.
  • 새로운 환경에서의 충분한 테스트가 필수적입니다.

Canary

Canary 배포는 잠재적인 문제 상황을 미리 발견하기 위해 신버전을 소수의 사용자나 특정 서버에 배포한 후, 문제가 없는 것을 확인하면서 점차 더 많은 사용자에게 배포하는 기법입니다.

Blue-Green 배포와 유사해 보일 수 있지만, 트래픽을 한 번에 전환하는 Blue-Green 배포와 달리, Canary 배포는 단계적으로 트래픽을 조절하면서 점진적으로 전환합니다. 이로 인해 부정적인 영향을 최소화하고, 필요시 롤백할 수 있는 유연성을 제공합니다.

장점

  • 문제 상황을 빠르게 감지할 수 있어 성능 모니터링에 유용합니다.
  • A/B 테스트에 활용할 수 있습니다.
    - (A/B 테스트는 대조군과 실험군으로 나누어 특정 UI나 알고리즘의 효과를 비교하는 방법론)

단점

  • 네트워크 트래픽 제어에 부담이 될 수 있습니다.

profile
백엔드 기록 공간😁

0개의 댓글