Skip to content
Published on

DevOps 골든패스 2026: GitHub Actions와 배포 안전장치 설계

Authors
  • Name
    Twitter
DevOps 골든패스 2026: GitHub Actions와 배포 안전장치 설계

문제 정의

골든패스와 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를 제품팀에 명시적으로 공지한다.

트러블슈팅

  1. 카나리 지표 지연: 관측 파이프라인 지연으로 오판 발생, 윈도우 조정 필요.
  2. 게이트 우회 PR: branch protection + required check 강제.
  3. 빈번한 false alarm: SLO 기준으로 알람 재설계.

체크리스트

  • 공통 템플릿 버전 고정
  • 필수 품질게이트 설정
  • 카나리 중단 조건 수치화
  • 자동 롤백 검증
  • 월간 실패패턴 리뷰

결론

DevOps 성숙도는 배포 횟수가 아니라, 실패를 얼마나 빠르게·안전하게 되돌릴 수 있는지로 측정된다.

참고 자료