카나리 릴리스(Canary Release)란?

새 버전을 먼저 일부 이용자나 요청(예를 들어 5%)에만 내보내고, 오류율이나 응답 시간 등의 지표를 보면서 문제가 없으면 비율을 단계적으로 늘리는 릴리스 방법. 결함이 있어도 영향을 받는 것은 일부 요청으로 한정되며, 바로 원래 버전으로 되돌릴 수 있다. 이름은 탄광에서 유독 가스를 빨리 알아차리기 위해 카나리아를 데리고 들어간 데서 유래한다. 신구 버전을 비교하려면 충분한 수의 요청이 필요하며, 지표 감시와 자동 롤백을 조합하는 경우가 많다.

일본어 명칭: カナリアリリース

카나리 릴리스(Canary Release)은(는) 클라우드와 컨테이너의 기초 등 1개 분야의 연습 문제 2개에 나와요.

분야: 클라우드와 컨테이너의 기초

도전해 보기: 카나리 릴리스(Canary Release) 관련 문제

1시간에 12,000건의 요청을 받는 서비스에서 새 버전을 카나리 릴리스하여, 요청의 5%만 새 버전으로 보냈다. 새 버전에는 받은 요청의 3%가 실패하는 결함이 있었고, 1시간 뒤에 알아차려 모든 요청을 원래 버전으로 되돌렸다. 이 1시간 동안 결함으로 실패한 요청의 건수로 올바른 것은?

  1. A18건
  2. B360건
  3. C600건
정답과 해설 보기

정답: A. 18건

새 버전으로 보내진 요청은 12,000 × 5% = 600건이고, 그중 3%가 실패하므로 600 × 3% = 18건입니다. 모든 요청을 한 번에 새 버전으로 전환했다면 12,000 × 3% = 360건이 실패했을 것입니다. 카나리 릴리스는 이처럼 결함의 영향을 받는 요청을 일부로 한정하고, 오류율이나 응답 시간 등을 보면서 문제가 없으면 비율을 늘려 가는 방법입니다. 새 버전과 이전 버전의 지표를 비교하려면 충분한 수의 요청이 필요하므로, 보내는 비율과 관찰하는 시간을 함께 정합니다.

해설 속 카나리 릴리스(Canary Release)

카나리 릴리스(Canary Release)이(가) 나오는 문제 (2)

  1. 1시간에 12,000건의 요청을 받는 서비스에서 새 버전을 카나리 릴리스하여, 요청의 5%만 새 버전으로 보냈다. 새 버전에는 받은 요청의 3%가 실패하는 결함이 있었고, 1시간 뒤에 알아차려 모든 요청을 원래 버전으로 되돌렸다. 이 1시간 동안 결함으로 실패한 요청의 건수로 올바른 것은?
  2. 운영 환경과 같은 구성의 환경을 두 개 준비하여, 한쪽에서 현재 버전을 실행한 채로 다른 쪽에 새 버전을 넣어 확인한 다음, 로드 밸런서가 향하는 곳을 한 번에 전환한다. 문제가 있으면 향하는 곳을 되돌려 즉시 원래 버전으로 돌아간다. 이 릴리스 방법은?

관련 용어

로드 밸런서(Load Balancer) 블루-그린 배포(Blue-Green Deployment) 가용 영역(Availability Zone) 공동 책임 모델(Shared Responsibility Model) 관측 가능성(Observability) 서버리스(Serverless) 오브젝트 스토리지(Object Storage) 오토 스케일링(Autoscaling) 이뮤터블 인프라스트럭처(Immutable Infrastructure) 컨테이너 이미지(Container Image)

용어집으로 돌아가기