본문 바로가기
[개발] Infrastructure/Deployment

카나리아 배포

by Devsong26 2023. 11. 17.

카나리아 배포(Canary Deployment)는 새로운 버전의 소프트웨어를 제한된 사용자 그룹에게 점진적으로 배포하는 방식입니다. 이 용어는 카나리아 새가 과거 탄광에서 가스 유출을 감지하는 데 사용되었던 것에서 유래했습니다. 비슷한 방식으로, 카나리아 배포는 새 소프트웨어 버전의 안정성과 성능을 실제 사용 환경에서 테스트하여 위험을 최소화합니다.

 


카나리아 배포의 주요 단계

 

  • 초기 배포
    • 새 버전의 애플리케이션을 소수의 사용자 또는 서버에 배포합니다. 이 단계에서는 일반적으로 전체 사용자의 소수만이 새 버전에 접근합니다.
  • 모니터링 및 평가
    • 새 버전의 성능, 안정성, 그리고 기타 중요 지표를 면밀히 모니터링합니다. 이를 통해 버그, 성능 문제, 사용성 이슈 등을 식별할 수 있습니다.
  • 점진적 확대
    • 초기 테스트에서 문제가 발견되지 않으면, 새 버전을 더 많은 사용자나 서버에 점진적으로 확대 배포합니다. 이 과정에서 지속적으로 모니터링과 평가를 수행합니다.
  • 전면 배포
    • 새 버전이 안정적이라고 판단되면, 전체 인프라에 걸쳐 새 버전을 배포합니다.

 

카나리아 배포의 장점

  • 위험 최소화
    • 새 버전의 소프트웨어가 큰 문제를 일으킬 경우, 영향을 받는 사용자 수를 최소화합니다.
  • 실시간 피드백
    • 실제 사용 환경에서의 성능과 사용자 경험에 대한 즉각적인 피드백을 얻을 수 있습니다.
  • 점진적인 롤아웃
    • 문제가 발견되면 쉽게 이전 버전으로 롤백할 수 있으며, 새 버전의 안정성을 확보한 후 전체 사용자에게 배포합니다.

 

카나리아 배포의 단점

  • 관리 복잡성
    • 여러 버전을 동시에 운영해야 하므로 인프라와 배포 프로세스의 관리가 복잡해질 수 있습니다.
  • 테스팅 요구사항
    • 다양한 사용자 그룹에 대한 성능 및 안정성 테스팅이 필요하므로, 테스트 계획과 자동화에 추가적인 노력이 필요할 수 있습니다.

 

카나리아 배포는 특히 대규모 시스템이나 복잡한 애플리케이션에서 유용하며, 지속적 통합 및 지속적 배포(CI/CD) 파이프라인의 일부로 흔히 사용됩니다.

'[개발] Infrastructure > Deployment' 카테고리의 다른 글

Hystrix  (0) 2023.11.30
사가 패턴  (0) 2023.11.27
Docker 블루-그린 배포  (0) 2023.11.17
MSA 통신 패턴 (동기, 비동기)과 Apache Kafka, Zookeeper  (0) 2022.02.27
MSA(Micro Service Architecture) 기본 개념  (0) 2022.02.26