• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

DevOps 인프라(CI/CD) 16분 배포 전략 종류 설명 관련 질문

23.09.25 01:26 작성 조회수 275

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

안녕하세요.

강의를 듣던 도중 궁금증이생겨 질문드립니다.

제가 알기로는

  • rolling update는 서버 관점에서 점진적으로(정수 단위, 혹은 비율 단위) 구 버전에서 신 버전으로 교체하는 것

  • canary는 유저 관점에서 점진적으로 (특정 지역 유저 대상, 혹은 A/B 테스트 대상 등) 구 버전에서 신 버전으로 교체하는 것

     

     

    으로 알고 있습니다. 즉 강의에서 말씀하셨던 'canary는 rolling update와 blue/green의 중간 격의 배포 전략'은 틀린 말이며, 각 배포 전략들은 각각 고유한 배포 전략을 가지고 있는 것으로 생각이 됩니다. 혹시 제가 잘못 알고있는 부분이 있다면 말씀 부탁드립니다. 감사합니다.

     

답변 1

답변을 작성해보세요.

0

네 강의자 한정헌입니다.

말씀하신 바와 같이 각각의 배포 전략은 고유한 전략을 가지고 있으며 각자 나름의 필요가 있다고 생각합니다.

다만 제가 중간이라고 설명한 까닭은 구버전을 얼만큼 유지시키고 교체하는 가? 의 관점이었습니다.

예를 들면 롤링업데이트는 구버전 전체가 있는 상태에서 신버전으로 순차적으로 교체하고, 불루그린은 신/구버전을 한번에 바로 교체하는 측면에서 양극단에 서 있고, 카나리 배포는 신구 버전이 공존하는 상태에서 비율로 조정하는 전략이기 때문에 그런 차원에서 양 극단의 중간에 있다고 설명하려고 한 것 같습니다.

그러한 관점으로 이해해 주시면 감사하겠습니다. 이후 이러한 점을 보강하여 보완하도록 하겠습니다.

추가로 제 설명이 부족했던 것 같아 다음과 같은 자료를 참고로 살펴봐 주시면 감사하겠습니다.


롤링 업데이트, 카나리아 배포, 블루-그린 배포는 Kubernetes 또는 컨테이너화된 환경에서 애플리케이션을 업데이트하고 배포하기 위한 세 가지 전략입니다. 각 접근 방식에는 고유한 특성과 사용 사례가 있습니다.

  1. 롤링 업데이트:

    • 설명: 롤링 업데이트에는 프로세스 전반에 걸쳐 사용자가 애플리케이션을 사용할 수 있도록 유지하면서 애플리케이션 인스턴스를 점진적으로 업데이트하거나 새 버전으로 교체하는 작업이 포함됩니다.

    • 프로세스: 일반적으로 한 번에 하나씩 기존 인스턴스(포드)를 새로운 인스턴스로 점진적으로 교체하여 지정된 수의 포드를 항상 사용할 수 있고 실행되도록 하는 방식으로 작동합니다.

    • 사용 사례: 롤링 업데이트는 가동 중지 시간을 최소화하면서 애플리케이션을 업데이트하려는 대부분의 시나리오에 적합합니다. 이는 위험을 줄이는 안전하고 점진적인 접근 방식이지만 다른 전략에 비해 업데이트를 완료하는 데 시간이 더 오래 걸릴 수 있습니다.

     

     

  2. 카나리아 배포:

    • 설명: Canary 배포는 더 많은 사용자에게 배포하기 전에 성능과 안정성을 테스트하기 위해 사용자 또는 트래픽의 하위 집합에 애플리케이션의 새 버전을 배포하는 것과 관련된 위험 완화 전략입니다.

    • 프로세스: 새 버전의 애플리케이션으로 별도의 "카나리아" 배포를 생성하고 사용자 트래픽의 일부 또는 특정 사용자 그룹을 이 배포로 보냅니다. 카나리아 배포에 문제가 있는지 모니터링하고 성능이 좋으면 이전 버전을 완전히 대체할 때까지 트래픽을 점진적으로 늘립니다.

    • 사용 사례: Canary 배포는 대규모 사용자 기반에 버그나 성능 문제가 발생할 위험을 최소화하려는 경우에 유용합니다. 이를 통해 문제를 조기에 파악하고 전체 출시를 위한 새 버전의 준비 여부에 대해 데이터 기반 결정을 내릴 수 있습니다.

     

  3. 블루-그린 배포:

    • 설명: 블루-그린 배포에는 두 개의 동일한 환경(일반적으로 "블루"와 "그린"이라고 함)을 유지 관리하고 두 환경 간에 트래픽을 전환하여 업데이트와 롤백을 용이하게 하는 작업이 포함됩니다.

    • 프로세스: 애플리케이션의 현재 버전을 실행하는 하나의 환경(예: "blue")으로 시작합니다. 그런 다음 새 버전을 별도의 환경(예: "그린")에 배포하고 테스트를 수행합니다. 새 버전에 대한 확신이 생기면 트래픽을 "블루" 환경에서 "그린" 환경으로 전환하여 효과적으로 새 버전을 활성화할 수 있습니다.

    • 사용 사례: 블루-그린 배포는 가동 중지 시간을 최소화하고 빠른 롤백을 보장해야 할 때 이상적입니다. 버전 간 즉각적인 전환이 가능하므로 문제가 발생할 경우 이전 버전으로 쉽게 되돌릴 수 있습니다.

올바른 배포 전략을 선택하는 것은 가동 중지 시간에 대한 허용 범위, 위험 완화의 필요성, 애플리케이션의 복잡성을 포함한 특정 요구 사항에 따라 달라집니다. 경우에 따라 애플리케이션의 다양한 구성 요소와 중요도에 따라 이러한 전략을 조합하여 사용할 수도 있습니다.

김찬님의 프로필

김찬

질문자

2023.09.25

답변 감사드립니다!

롤링 방식의 배포도 '구/신 버전의 컨테이너가 공존하는 시기'가 존재하는 것으로 알고 있는데, 혹시 제가 잘못 알고 있는 부분일까요?

네 맞습니다. 롤링배포도 신구 버전의 컨테이너나 공존하는 시기가 있죠.