핵심 요약
타다에서 Spring Boot 메이저 버전 업그레이드의 위험을 낮추기 위해 카나리 배포를 도입했습니다. Helm 차트와 Kubernetes를 활용해 카나리 릴리스를 안전하게 운용하고, NGINX Ingress 어노테이션과 Istio VirtualService로 트래픽을 점진적으로 카나리 버전으로 분배합니다. 배포 도구와 values-prod-canary.yaml를 통해 일관된 설정을 적용하고 Sentry/Grafana로 모니터링합니다.
주요 경험
- 카나리 브랜치 관리와 PR 자동 테스트로 안전한 롤아웃을 확보
- 릴리스 이름과 레이블로 차트의 카나리 인스턴스를 겹치지 않게 분리 설치
- 외부/API 트래픽과 내부 서비스 트래픽의 카나리 비율을 Ingress 어노테이션과 Istio 라우팅으로 제어
얻은 인사이트
- 트래픽 비율의 점진적 증가가 문제 탐지 및 롤백을 용이하게 함
- 프로덕션-카나리 간 변경사항의 동시 반영 필요성과 배포 도구의 자동화가 리스크를 낮춤
- 모니터링(Sentry, Grafana) 중심의 운영 체계가 신뢰성 높은 롤아웃에 기여
