ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 배포 전략 (Rolling Update, Blue/Green, Canary)
    📖 개발 공부 2023. 4. 9. 23:37

    Rolling Update

    구 버전에서 신 버전으로 트래픽을 점진적으로 전환하는 배포이다.

    배포되어있는 팟들을 동시에 업데이트하는 것이 아니라 1개, 2개 등 퍼센테이지를 정해 교체해 나가는 방식이다. 즉, 새 버전 인스턴스를 하나씩 늘려가고 기존 버전의 인스턴스를 하나씩 줄여나가는 방식이다.

    서비스의 중단이 발생하진 않지만, 서비스가 받는 부하가 커지며 구버전과 신버전이 공존하는 시기가 존재할 수 있는 단점이 있다.

    관리가 편하지만 배포 중 한쪽 인스턴스의 수가 감소되므로 서버 처리 용량을 미리 고려해야 한다.

    롤링 업데이트를 하기 위해서는 RS(Replica Set)이 2개가 필요하고, replica의 수를 단계적으로 조절해줘야 한다. 배포가 잘못되었을 경우, 롤백을 하기 위해 순서를 거꾸로 실행해야 하는 등 불편함이 있다.

     

    Blue/Green

    블루/그린 배포를 위한 필요사항이 있다.

    기존 서비스를 운영하는데 필요로 하는 자원의 2배와 공통 엔드포인트가 필요하다. (위에서는 로드밸런서)

    • 장점: 무중단 배포를 쉽게 할 수 있고, 쉽고 빠른 롤백이 가능하다.
    • 단점: 시스템 자원이 2배로 필요하여 비용이 더 많이 발생한다.

    Canary

    Canary는 카나리아 라는 새를 뜻한다. 이 새는 일산화탄소 및 유독가스에 매우 민감하다. 그래서 과거 광부들은 이 새를 옆에 두고 일을 하다가 카나리아가 갑자기 죽으면 대피를 한다고 한다.

    Canary 배포는 위험을 빠르게 감지할 수 있는 배포 기법이다. 구 버전의 서버와 새 버전의 서버들을 구성하고, 일부 트래픽을 새 버전으로 분산하여 오류 여부를 판단한다.

    이 기법은 A/B 테스트도 가능한데, 오류율 및 성능 모니터링에 유용하다. 트래픽을 분산시킬 라우팅은 랜덤으로 할 수도 있고 사용자 프로필 등을 기반으로 분류할 수도 있다. 분산 후 결과에 따라 새 버전이 운영 환경을 대체할 수 있고, 다시 구 버전으로 돌아갈 수 있다.

    728x90
    반응형

    '📖 개발 공부' 카테고리의 다른 글

    비동기 asynchronous  (0) 2023.07.02
    intellij로 디버깅 하기  (0) 2023.06.06
    Eventual Consistency  (0) 2023.04.01
    [Resilience4j] Circuit Breaker Config 정리  (0) 2023.03.19
    [Memcached] slab allocator  (0) 2023.03.19

    댓글

Designed by Tistory.