Cloud/Kubernetes

Kubernetes) Application 배포

Adım Kim 2022. 10. 24. 23:32
학습 목표 : 몇가지 Application 배포 방식에 대해 알아본다.

Application 배포(Update) 방식

  • 기본적인 Application 배포는 Application을 중단하고 업데이트를 진행하여 서비스가 중단되는 시점(downtime)이 생긴다.

 

  • downtime을 극복하기위한 무중단 배포방식이 사용된다.

 

  • Rolling Update (Rolling 배포)

    -  무중단 방식의 가장 기본적인 방식으로 사용중인 인스턴스 내에서 새버전을 점진적으로 교체한다.

    -  장점

        -  인스턴스마다 차례로 배포를 진행하여 상황에따라 쉽게 Rollback이 가능하다.

        -  추가적인 인스턴스를 늘리지 않아도 되고 간편하게 관리가 가능하다.

    -  단점

        -  사용중인 인스턴스에 트래픽이 몰릴 수 있다.

        -  배포중에 신버전과 구버전이 공존하므로 호환성 문제가 발생할 수 있다.

 

  • Blue/Green Deployment

    -  Blue(구버전)과 Green(신버전)으로 나눈다.

    -  Load Balancer를 통해 구버전의 모든 트래픽을 한번에 신버전 쪽으로 전환하는 방식

    -  장점

        -  신버전에 구버전의 인스턴스가 그대로 남아있어 손쉬운 Rollback이 가능하다.

        -  구버전의 환경을 다음 배포에 재사용할 수 있다.

        -  운영환경에 영향을 주지않고 새버전을 테스트할 수 있다.

    -  단점

        -  시스템 자원이 두배로 필요하다.

        -  새로운 환경에 대한 테스트가 전제되어야 한다.

 

  • Canary Release (Canary 배포)

    -  옛날 광부들이 유독가스감지를위해 Canary 새를 이용한것을 유래로 잠재적 문제 상황을
       미리 감지하기위한 방식

    -  신버전을 소수의 사용자에게 배포하여 문제가 없는지 확인한 후, 점차 사용자를 늘려 배포한다.

    -  Blue/Green Deployment와 유사한 면이 있지만 트래픽을 한 번에 바꾸는 것이 아니라 단계적으로
       전환하기 때문에 부정적 영향을 최소화하고 트래픽 양을 조절하여 Rollback할 수 있다.

    -  A/B 테스트, 대조군과 실험군을 나누어 특정 UI나 Algorithm 효과 비교 테스트를 할 수 있다.

    -  문제상황을 빠르게 감지가 가능하나 네트워크 트래픽 제어에 부담이 갈 수 있다.