ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Infra] 무중단 배포 전략 (Rolling / Blue-Green / Canary)
    프로젝트/뉴스타 2024. 7. 21. 15:45

    무중단 배포 전략 (Rolling / Blue-Green / Canary) 왜 궁금했을까❓

    뉴스타 서비스 CI/CD 과정에서 서비스가 중단되는 문제점으로 인해 사용자가 일정 시간동안 서비스를 이용하지 못하는 문제점이 있었다. 이러한 것을 해결하고자 무중단 배포 전략을 도입하여 사용자들에게 무중단 서비스를 제공하고자 한다. 무중단 배포 전략을 알아보고 뉴스타 서비스에 알맞은 배포 전략을 도입해보겠다.

    1. 무중단 배포란?

    사용자에게 서비스 중단 없이 새로운 버전의 서비스를 배포하는 방법

    1.1. 일반적인 배포 과정

    1. 서비스를 운영하면서 새로운 버전을 배포하기 위해서는 기존 서비스를 종료
    2. 이후, 새로운 서비스를 시작하여 사용자에게 새로운 버전의 서비스 제공
    1번과 2번 사이에 사용자들이 서비스를 이용하지 못하는 시간이 생기게 되는데 이를 Downtime이라고 한다.

    1.2. 무중단 배포 기술

    1. AWS를 활용한 Blue-Green 무중단 배포
    2. Docker를 활용한 무중단 배포
    3. L4, L7 스위치를 활용한 무중단 배포
    4. Nginx를 활용한 무중단 배포

     

    2. 무중단 배포 전략

    2.1. 롤링 배포(Rolling Deployment)

    • 새로운 버전의 서비스를 점진적으로 적용하는 방식
    • 구버전에서 신버전으로 트래픽을 점진적으로 전환하는 배포 방식
    • 구버전과 신버전이 동시에 존재하여 요청을 처리하기 때문에 호환성 문제가 발생 가능
    • 한쪽 인스턴스의 수가 감소되므로 서버 처리 용량을 미리 고려

     

    2.2. 블루-그린 배포 (Blue-Green Deployment)

    • 구버전을 Blue, 신버전을 Green이라고 지칭하며 가장 직관적인 무중단 배포 전략
    • 배포 시, 구버전을 바로 종료하는 것이 아니라 신버전이 정상적으로 올라왔을 때까지 기다렸다가 종료하는 전략
    • 로드밸런서를 통해서 구버전에서 신버전으로 트래픽을 일제히 전환
    • 빠르게 롤백이 가능하며 운영 환경에 영향을 주지 않고 실제 서비스 환경에서 신버전 테스트 가능
    • 시스템 자원이 2배로 요구되어 비용이 많이 발생

    2.3. 카나리 (Canary Deployment)

    • 위험을 빠르게 감지할 수 있는 배포 전략으로 지정한 서버 또는 특정 User에게 배포를 진행했다가 정상일 경우 전체를 배포
    • 서버 트래픽 일부를 신버전으로 분산하여 오류를 확인하는 것으로 A/B 테스트가 가능하며 성능 모니터링에 유용
    • 마찬가지로 구버전과 신버전이 동시에 존재하여 호환성 문제 발생 가능

     

     

    아래 포스팅을 통해서 뉴스타 서비스에 적용한 과정을 볼 수 있다.
     

    [Infra] Blue-Green 배포 전략을 활용한 무중단 서비스

     

    pslog.co.kr

Designed by Tistory.