ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 배포 방식
    도커와 쿠버 2022. 7. 19. 23:32

    최근 회사에서 컨테이너화된 서비스를 사용하면서 여러 배포 방식이 있다는 것을 확인했습니다. 크게 사용하는 배포방식은 롤링 업데이트, 블루-그린 업데이트, 카타리 업데이트 이렇게 3개가 있습니다. 이번 포스팅에서는 3가지 배포 방식에 대해서 알아보겠습니다.

    롤링 업데이트(Ramped 업데이트)

    사용중인 인스턴스 내에서 새 버전을 교체하는 가장 기본적인 방식입니다.

    이 방식은 서비스 중인 인스턴스 하나를 로드밸런서에서 라우팅 하지 않도록 한 뒤 새 버전을 적용해서 다시 라우팅합니다. 순차적으로 새로운 버전을 교체해줍니다.

    장점

    • 롤링 방식은 구성된 자원을 그대로 유지한 채로 무중단 배포가 가능하므로 관리가 편합니다.
    • 인스턴스마다 차례로 배포를 진행하기 때문에 상황에 따라 손쉽게 롤백이 가능합니다.

    단점

    • 롤링 배포 방식은 보통 가용자원이 제한적일 경우에 사용됩니다.
    • 예를들어 롤링 업데이트 과정에 새로운 버전 인스턴스가 1개만 존재할 경우 트래픽이 몰리면 과부하가 발생할 수 있습니다.
    • 배포가 진행되는 동안 구버전과 신버전이 공존하기 때문에 호환성 문제가 발생할 수 있습니다.

     

    블루 그린 업데이트

    예전의 배포물을 블루, 신규 배포물을 그린이라고 해서 붙여진 이름입니다.

    해당 업데이트를 진행할 땐 이전 버전과 새로운 버전을 모두 띄우고 새로운 버전이 준비되었다고 판단할 때 기존 버전의 연결을 제거합니다. 롤링 업데이트와 다르게 버전 혼재의 문제가 없습니다. 하지만 이전 버전과 새 버전을 동시에 실행하기 때문에 리소스가 두배로 필요합니다.

    장점

    • 롤링 배포와 마찬가지로 빠른 롤백이 가능합니다.
    • 배포가 완료된 후 남아 있는 구 버전 환경을 다음 배포에 재사용할 수 있습니다.
    • 신 버전 배포가 진행되는 동안 구 버전으로 요청이 들어오기 때문에 서버 과부화를 원활하게 처리할 수 있습니다.

    단점

    • 시스템 자원이 롤링보다 2배 이상으로 필요하여 비용 등 문제로 소규모 프로젝트에 적용하기 여렵습니다.

    카나리 업데이트

    카나리아 라는 새는 광부들이 탄광에 들어가기전에 갱도로 먼저 날려보냈던 새입니다. 이 새는 유독 가스에 민감하기 때문에 석탄 광산에서 유독 가스 누출의 위험을 알리는 용도로 사용되었습니다. 즉, 미리 잠재적 위험을 감지하기 위해 사용되었습니다.

    카나리 배포 방식은 위험을 빠르게 감지할 수 있는 배포전략입니다. 1대 또는 특정 사용자에게만 미리 배포했다가 잘되면 전체 배포를 진행하는 방식입니다. 또한 수정한 코드가 워낙 많고 신규버전에 대한 검증을 많이 하지 못했을 때에도 사용할 수 있는 방식입니다.

    장점

    • 운영 환경에 신버전을 미리 테스트 해볼 수 있습니다.
    • 단계적인 전환 방식을 통해 부정적 영향을 최소화 하고 상황에 따라 트래픽 양을 늘리거나 롤백할 수 있습니다.

    단점

    • 롤링 배포 처럼 신버전과 구버전이 동시에 운영되기 때문에 버전 관리가 필요합니다.

    참고

    댓글