Skip to content
Back to skills

Deployment Strategies

ASecurity

배포 전략 카탈로그. Blue-Green/Canary/Rolling/A-B Test/Shadow 배포 전략별 장단점, 구현 패턴, 롤백 절차, 헬스체크 설계, DORA 메트릭을 제공하는 pipeline-designer 확장 스킬. '배포 전략', 'Blue-Green', 'Canary', 'Rolling', '롤백', '무중단 배포', 'DORA 메트릭' 등 배포 파이프라인 설계 시 사용한다. 단, 실제 인프라 구성이나 모니터링 도구 설정은 이 스킬의 범위가 아니다.

  • 1,256 stars
  • 0 votes
  • 0 copies
  • 5 views
  • Added May 29, 2026
devopskubernetestestinggitapidatabaseci/cd

Works with

  • api

Security analysis

A100/100

Scanned May 29, 2026

npx -y skills add revfactory/harness-100 --skill deployment-strategies --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Deployment Strategies?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Deployment Strategies
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/revfactory-deployment-strategies/badge)](https://www.skillsdirectory.com/skills/revfactory-deployment-strategies)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: deployment-strategies
description: "배포 전략 카탈로그. Blue-Green/Canary/Rolling/A-B Test/Shadow 배포 전략별 장단점, 구현 패턴, 롤백 절차, 헬스체크 설계, DORA 메트릭을 제공하는 pipeline-designer 확장 스킬. '배포 전략', 'Blue-Green', 'Canary', 'Rolling', '롤백', '무중단 배포', 'DORA 메트릭' 등 배포 파이프라인 설계 시 사용한다. 단, 실제 인프라 구성이나 모니터링 도구 설정은 이 스킬의 범위가 아니다."
---

# Deployment Strategies — 배포 전략 카탈로그

pipeline-designer 에이전트가 배포 파이프라인 설계 시 활용하는 배포 전략, 롤백 절차, 헬스체크, DORA 메트릭 레퍼런스.

## 대상 에이전트

`pipeline-designer` — 이 스킬의 배포 전략과 롤백 패턴을 파이프라인 설계에 직접 적용한다.

## 배포 전략 비교

| 전략 | 다운타임 | 위험도 | 인프라 비용 | 롤백 속도 | 적합 상황 |
|------|---------|--------|-----------|----------|----------|
| **Rolling** | 없음 | 중간 | 낮음 | 중간 | 일반 웹서비스 |
| **Blue-Green** | 없음 | 낮음 | 2배 | 즉각 | 미션 크리티컬 |
| **Canary** | 없음 | 매우 낮음 | 약간 추가 | 즉각 | 대규모 트래픽 |
| **Recreate** | 있음 | 높음 | 없음 | 느림 | 개발/스테이징 |
| **A/B Test** | 없음 | 낮음 | 약간 추가 | 즉각 | 기능 실험 |
| **Shadow** | 없음 | 없음 | 2배 | 불필요 | 성능/호환성 검증 |

## 전략별 상세

### 1. Rolling Update (순차 교체)
```
서버 풀: [v1] [v1] [v1] [v1]
단계 1:  [v2] [v1] [v1] [v1]  -- 1대 교체
단계 2:  [v2] [v2] [v1] [v1]  -- 2대 교체
단계 3:  [v2] [v2] [v2] [v1]  -- 3대 교체
단계 4:  [v2] [v2] [v2] [v2]  -- 완료
```

**설정 파라미터**:
- `maxUnavailable`: 동시에 내릴 수 있는 최대 수 (1 또는 25%)
- `maxSurge`: 동시에 추가할 수 있는 최대 수 (1 또는 25%)

**Kubernetes 예시**:
```yaml
strategy:
  type: RollingUpdate
  rollingUpdate:
    maxUnavailable: 1
    maxSurge: 1
```

**장점**: 추가 인프라 최소, 점진적 교체
**단점**: v1+v2 공존 기간 발생 (호환성 필요)

### 2. Blue-Green (청록 배포)
```
Blue (현재):  [v1] [v1] [v1]  ← 트래픽 100%
Green (대기):  [v2] [v2] [v2]  ← 트래픽 0%

전환:
Blue:   [v1] [v1] [v1]  ← 트래픽 0% (대기/제거)
Green:  [v2] [v2] [v2]  ← 트래픽 100%
```

**절차**:
1. Green 환경에 새 버전 배포
2. Green에서 스모크 테스트/헬스체크
3. 로드밸런서 트래픽 전환 (Green으로)
4. Blue 환경 모니터링 (롤백 대비)
5. 안정화 후 Blue 제거 또는 다음 배포 대기

**롤백**: 로드밸런서를 Blue로 재전환 (수초 이내)

### 3. Canary (카나리 배포)
```
단계 1: [v1 x 95%] [v2 x 5%]   -- 5% 트래픽으로 시작
단계 2: [v1 x 80%] [v2 x 20%]  -- 메트릭 정상 시 확대
단계 3: [v1 x 50%] [v2 x 50%]  -- 추가 확대
단계 4: [v2 x 100%]             -- 전체 전환
```

**단계별 검증 기준**:
| 단계 | 트래픽 | 대기 시간 | 검증 |
|------|--------|----------|------|
| 1 | 5% | 10~30분 | 에러율, 레이턴시 |
| 2 | 20% | 30~60분 | 비즈니스 메트릭 추가 |
| 3 | 50% | 1~2시간 | 전체 메트릭 |
| 4 | 100% | - | 완료 |

**자동 롤백 조건**:
- 에러율 > 1% (평소 대비 2배)
- p99 레이턴시 > 2초 (평소 대비 50% 증가)
- 비즈니스 메트릭 이상 (전환율, 매출 등)

### 4. A/B Testing (기능 실험)
- 사용자 세그먼트 기반 트래픽 분리
- Feature Flag 시스템과 연동
- 통계적 유의성 확보 후 결정

### 5. Shadow (미러링)
- 프로덕션 트래픽을 새 버전에 복제 (응답은 무시)
- 성능, 에러, 호환성 검증에만 사용
- 사용자 영향 zero

## 헬스체크 설계

### 3단계 헬스체크

| 유형 | 검증 대상 | 엔드포인트 | 주기 |
|------|----------|----------|------|
| **Liveness** | 프로세스 생존 | `/healthz` | 10초 |
| **Readiness** | 트래픽 수신 가능 | `/readyz` | 5초 |
| **Startup** | 초기화 완료 | `/healthz` | 1초 (최대 300초) |

### 헬스체크 응답 구조
```json
{
  "status": "healthy",
  "version": "2.1.0",
  "uptime": 86400,
  "checks": {
    "database": { "status": "healthy", "latency": "2ms" },
    "redis": { "status": "healthy", "latency": "1ms" },
    "external_api": { "status": "degraded", "latency": "500ms" }
  }
}
```

### Kubernetes Probe 설정
```yaml
livenessProbe:
  httpGet:
    path: /healthz
    port: 8080
  initialDelaySeconds: 15
  periodSeconds: 10
  failureThreshold: 3

readinessProbe:
  httpGet:
    path: /readyz
    port: 8080
  initialDelaySeconds: 5
  periodSeconds: 5
  failureThreshold: 3
```

## 롤백 절차

### 자동 롤백 트리거
| 지표 | 임계값 | 대기 시간 |
|------|--------|----------|
| HTTP 5xx 비율 | > 5% | 2분 연속 |
| 레이턴시 p99 | > 3초 | 5분 연속 |
| Pod 재시작 | > 3회 | 10분 이내 |
| 메모리/CPU | > 90% | 5분 연속 |

### 롤백 절차
```
1. 트리거 감지 → 자동 알림 (Slack/PagerDuty)
2. 이전 버전으로 즉시 전환
   - Blue-Green: 로드밸런서 전환
   - Canary: 카나리 트래픽 0%로
   - Rolling: kubectl rollout undo
3. 근본 원인 분석 (RCA)
4. 수정 후 재배포
```

## DORA 메트릭

### 4대 핵심 메트릭

| 메트릭 | 설명 | Elite | High | Medium | Low |
|--------|------|-------|------|--------|-----|
| **배포 빈도** | 프로덕션 배포 주기 | 수시 (일 다회) | 일~주 1회 | 월 1회 | 월 1회 미만 |
| **리드 타임** | 커밋→배포 시간 | < 1시간 | 1일~1주 | 1주~1개월 | 1개월+ |
| **변경 실패율** | 배포 후 장애 비율 | < 5% | 6~15% | 16~30% | > 30% |
| **복구 시간** | 장애→복구 시간 | < 1시간 | < 1일 | 1일~1주 | 1주+ |

### 측정 자동화
```
배포 빈도 = 프로덕션 배포 이벤트 카운트 / 기간
리드 타임 = 프로덕션 배포 시간 - 첫 커밋 시간
변경 실패율 = 롤백 배포 수 / 전체 배포 수 x 100
복구 시간 = 인시던트 해결 시간 - 인시던트 발생 시간
```

## 브랜치 전략과 배포 매핑

| 브랜치 전략 | 배포 흐름 | 적합 |
|-----------|----------|------|
| **Trunk-Based** | main → 스테이징 → 프로덕션 | 소규모 팀, 빈번한 배포 |
| **GitHub Flow** | feature → PR → main → 프로덕션 | 중규모 팀, CI/CD 성숙 |
| **GitFlow** | feature → develop → release → main | 대규모, 릴리스 주기 고정 |

### 환경별 자동 배포 규칙
```
feature/* → PR → 프리뷰 환경 (ephemeral)
main       → 자동 → 스테이징 (자동 테스트)
main + tag → 수동 승인 → 프로덕션
hotfix/*   → 긴급 → 프로덕션 (승인 간소화)
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.