무중단 배포 전략 3가지

devyumi·2024년 6월 6일

CICD

목록 보기
2/3

무중단 배포

  • 서비스 중단 없이 새로운 버전의 소프트웨어를 배포하는 방법

  • 중단 배포 시 발생하는 다운타임을 해결할 수 있음

  • 보통 2가지 이상의 배포 전략을 사용함


로드 밸런싱 (Load Balancing)

  • 요청에 대해서 모든 인스턴스가 균등하게 사용되도록 네트워크 트래픽을 처리하는 것

  • 수많은 클라이언트의 요청마다 가장 적합한 서버를 결정하여 클라이언트 요청을 효율적으로 처리하도록 함

  • 사용자(클라이언트, 요청)와 서버 사이에 위치하며 보이지 않는 촉진자 역할을 함

  • 클라이언트와 서버 간 트래픽을 제어함으로써 서비스 가용성과 확장성을 향상




롤링 배포 (Rolling)

  • 사용 중인 인스턴스 내에서 버전을 점진적으로 교체하는 배포 전략

  • 사용 중인 인스턴스 중 하나를 로드밸런서에서 라우팅 되지 않도록 한 후, 신 버전으로 교체함

  • 장점
    1) 인스턴스 수에 제약이 있을 경우 유용함

  • 단점
    1) 신 버전 배포 중 사용할 수 있는 인스턴스의 수가 감소하므로 서버 용량을 미리 고려해야 함
    2) 구 버전과 신 버전이 공존하기 때문에 호환성 문제가 발생할 수 있음




블루/그린 배포 (Blue/Green)

  • 블루 구 버전 서버 / 그린 신 버전 서버

  • 블루와 동일한 환경의 그린을 구축한 후, 그린으로 모든 트래픽을 전환하는 배포 전략
    (구 버전, 신 버전이 한 순간이라도 공존했다고 보는 시각도 있음)

  • 장점
    1) 실제 서비스 환경에서 신 버전을 미리 테스트 할 수 있음
    2) 문제 발생 시, 로드 밸런서를 통해 블루 서버로 빠른 롤백 가능

  • 단점
    1) 실제 운영 중인 인스턴스 자원의 2배가 필요하며, 그만큼 비용 측면에서 비효율적임




카나리 배포 (Canary)

  • 사용 중인 인스턴스 중 일부만 신 버전으로 배포하는 전략

  • 소수의 이용자들만 신 버전을 사용하게 하고, 신 버전이 이상이 없다고 판단되면 모든 트래픽을 신규 버전으로 옮김

  • 롤링 배포는 버전이 교체되는 동안 작업을 수행할 수 없지만, 카나리 배포는 버전 교체와 작업을 동시에 진행

  • 장점
    1) 사용자 테스트와 무중단 배포를 동시에 진행할 수 있음
    2) 오류를 조기에 감지하여 위험을 방지할 수 있음

  • 단점
    1) 구 버전과 신 버전이 공존하기 때문에 호환성 문제가 발생할 수 있음




참고

profile
Web Back-end Junior Developer

0개의 댓글