1. 개요
대규모 시스템 운영에서는 신규 버전 배포 후 발생할 수 있는 장애를 최소화하기 위해 카나리 배포가 널리 활용됩니다.
기존에는 트래픽을 점진적으로 신규 버전으로 분산한 뒤 수동 모니터링을 통해 롤백을 결정했지만,
Argo Rollouts를 도입하면 다음이 자동화됩니다:
• 점진적 트래픽 전환 (setWeight 기반)
• SLA 지표 기반 자동 중단 또는 롤백
• 자동 프로모션 or 사용자 승인 기반 최종 배포
⸻
2. 전체 아키텍처
graph TD
A[Spring Boot on WebLogic (v1)]
B[Spring Boot on WebLogic (v2)]
C[Argo Rollout Controller]
D[Prometheus SLA Metrics]
E[Metric Server Adapter]
F[ALB/Nginx Ingress with Argo Plugin]
F --> C
C --> A
C --> B
D --> E --> C
⸻
3. 기본 개념: Argo Rollout의 주요 기능
기능 설명
setWeight 기반 트래픽 분산 기존 버전과 신규 버전에 트래픽 비율 조절 (예: 90:10 → 50:50)
Pause / Promote 조건 만족 시 자동 프로모션 or 수동 승인
Metric Analysis Prometheus, Kayenta, Webhooks로 SLA 기준 확인
Rollback SLA 위반 또는 오류 시 자동으로 v1 복귀
⸻
4. Rollout 구성 예시 (Spring Boot v2 배포)
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: spring-app
spec:
replicas: 6
strategy:
canary:
steps:
- setWeight: 10
- pause: {duration: 2m}
- setWeight: 50
- pause: {duration: 3m}
- analysis:
templates:
- templateName: sla-metric-check
selector:
matchLabels:
app: spring-app
template:
metadata:
labels:
app: spring-app
spec:
containers:
- name: app
image: myregistry/spring-on-weblogic:v2
⸻
5. 분석 템플릿: SLA 기준 적용
apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
name: sla-metric-check
spec:
metrics:
- name: high-latency
interval: 30s
successCondition: result < 1.5
provider:
prometheus:
address: http://prometheus.default.svc.cluster.local:9090
query: |
histogram_quantile(0.95, rate(http_request_duration_seconds_bucket[1m]))
응답 지연 95 percentile이 1.5초 이상이면 자동 Rollback
⸻
6. 자동 롤백 흐름
1. v2 배포 시작
2. 10% 트래픽 유입 후 SLA 체크
3. SLA 이탈 시 Rollout 중단 + 자동 롤백 (v1 복원)
4. 성공 시 점진적 증가 → 최종 Promote
⸻
7. 실무 고려사항
항목 설명
ALB/Nginx 구성 nginx.ingress.kubernetes.io/canary 설정 필요
WebLogic 상태 롤링 재시작으로 Zero-Downtime 필요
로그/모니터링 각 버전별 메트릭 분리 지표 필수 (version_label 기준)
Slack / Jira 연계 자동 Rollback 시 이슈 자동 등록 또는 운영자 알림
⸻
8. 확장 전략
전략 설명
Custom SLA 지연 + 오류율 + DB 연결 수 등 조합 분석
Multi-step 롤아웃 10% → 30% → 50% → 100% 점진 확장
Manual Gate 중간 단계마다 Slack 승인 요청 연계
LLM 기반 QA Rollout GPT-based 테스트 자동화 → 점검 후 Promote
⸻
✅ 결론
Argo Rollouts를 활용한 카나리 배포는,
• SLA 기반으로 롤백/프로모션 결정
• 배포 리스크를 운영자가 개입하지 않고 줄일 수 있음
• Spring Boot + WebLogic 환경에도 무리 없이 적용 가능
운영자 입장에서는 “배포가 끝날 때까지 모니터링”하지 않아도 되는 구조를 실현하며,
문제 발생 시 신속한 자동 복구까지 이어지는 “배포 자율화” 전략의 핵심 도구입니다.
카테고리 없음