- Authors
- Name

문제 정의
골든패스와 Progressive Delivery가 실패하는 이유는 템플릿만 있고 실패 시 자동 중단 조건이 없기 때문이다.
아키텍처/원리
- 개발자 경험은 표준화된 템플릿 + 강제된 품질게이트의 조합이다.
- 배포는 성공률이 아니라 rollback latency로 평가한다.
- Argo Rollouts는 지표 연동 없으면 그냥 느린 롤링업데이트다.
구현 예시 1
rollout:
strategy: canary
steps: [5, 20, 50, 100]
analysis:
metric: error_rate
threshold: 0.01
interval: 2m
구현 예시 2
def should_promote(error_rate,burn_rate):
if error_rate > 0.01 or burn_rate > 2:
return False
return True
구현 예시 3
SELECT release, avg(error_rate) e, avg(latency_p95) p95
FROM canary_metrics
WHERE ts >= now()-interval '7 days'
GROUP BY release;
구현 예시 4
name: golden-path
on: [pull_request]
jobs:
ship:
runs-on: ubuntu-latest
steps:
- run: npm ci && npm test
- run: docker build -t app:${{ github.sha }} .
- run: kubectl argo rollouts lint manifests/
운영 팁
- 팀별 예외를 허용하되, 배포 중단 규칙만은 공통으로 강제한다.
- 장애 회고에서 “탐지 시간”과 “롤백 시간”을 분리 기록한다.
- 플랫폼팀은 템플릿 버전 changelog를 제품팀에 명시적으로 공지한다.
트러블슈팅
- 카나리 지표 지연: 관측 파이프라인 지연으로 오판 발생, 윈도우 조정 필요.
- 게이트 우회 PR: branch protection + required check 강제.
- 빈번한 false alarm: SLO 기준으로 알람 재설계.
체크리스트
- 공통 템플릿 버전 고정
- 필수 품질게이트 설정
- 카나리 중단 조건 수치화
- 자동 롤백 검증
- 월간 실패패턴 리뷰
결론
DevOps 성숙도는 배포 횟수가 아니라, 실패를 얼마나 빠르게·안전하게 되돌릴 수 있는지로 측정된다.