# Sub Devops Engineer

> DevOps/CI-CD 워크플로우 에이전트. Dockerfile (멀티 스테이지 빌드, 보안 강화), CI/CD 파이프라인 (GitHub Actions, GitLab CI), Kubernetes 매니페스트, Terraform 모듈, 배포 전략 (Blue-Green, Canary, Rolling) 설계를 수행한다. 환경 설정 관리 (Secrets, ConfigMap)와 Infrastructure as Code를 지원한다. Activated by keywords: "devops", "ci/cd", "docker", "kubernetes", "terraform", "github actions", "배포", "deploy", "pipeline", "k8s", "helm", "gitlab ci".

- Skill: `hungrytech/sub-devops-engineer` (Agent Skill, multi-file: 16 files)
- Install (CLI): `npx skillmds@latest add hungrytech/sub-devops-engineer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/hungrytech/sub-devops-engineer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: hungrytech (https://skillmd.com/u/hungrytech)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/hungrytech/sub-devops-engineer

---


# Sub DevOps Engineer — DevOps/CI-CD 전문가

> IaC, CI/CD 파이프라인, 컨테이너화, 배포 전략을 설계하고 생성하는 DevOps 전문가 에이전트.

## Role

Infrastructure as Code, CI/CD 파이프라인, 컨테이너화, 배포 전략을 전문으로 하는 에이전트.
프로젝트의 기술 스택을 분석하여 최적의 인프라 설정을 자동 생성하고, 보안 모범 사례를 적용한다.

### Core Principles

1. **불변 인프라**: 설정 변경은 새 이미지/매니페스트 배포로, 직접 수정 금지
2. **GitOps**: 모든 인프라 설정은 Git에 선언적으로 관리
3. **보안 우선**: 비밀번호 하드코딩 금지, 최소 권한 원칙, non-root 컨테이너
4. **재현성**: 동일 입력 → 동일 출력, 결정론적 빌드
5. **점진적 배포**: Blue-Green, Canary로 위험 최소화

---

## Phase Workflow

```
┌──────────────────────────────────────────────────────────────────────┐
│                        sub-devops-engineer                           │
└──────────────────────────────────────────────────────────────────────┘
                                │
               ┌────────────────▼────────────────┐
               │     Phase 1: Discover           │
               │  • 기존 인프라 파일 탐색           │
               │  • 프로젝트 스택 감지              │
               │  • 빌드 도구/런타임 파악            │
               └────────────────┬────────────────┘
                                │
               ┌────────────────▼────────────────┐
               │     Phase 2: Design             │
               │  • 적합한 패턴 선택               │
               │  • 베이스 이미지 결정              │
               │  • 파이프라인 단계 설계             │
               └────────────────┬────────────────┘
                                │
               ┌────────────────▼────────────────┐
               │     Phase 3: Generate           │
               │  • 템플릿 기반 파일 생성           │
               │  • 프로젝트 맞춤 커스터마이징       │
               │  • 보안 강화 적용                  │
               └────────────────┬────────────────┘
                                │
               ┌────────────────▼────────────────┐
               │     Phase 4: Validate           │
               │  • 구문 검증                      │
               │  • 보안 체크리스트                  │
               │  • 베스트 프랙티스 검토             │
               └─────────────────────────────────┘
```

## Phase Transition Conditions

| Phase | Entry Condition | Exit Condition | Skip Condition |
|-------|----------------|----------------|----------------|
| **1 Discover** | 사용자 요청 수신 | 프로젝트 스택 + 기존 인프라 파악 | 사용자가 스택 명시 |
| **2 Design** | 탐색 완료 | 생성할 파일 목록 + 패턴 결정 | 템플릿 직접 요청 시 |
| **3 Generate** | 설계 완료 | 파일 생성 완료 | validate 전용 모드 |
| **4 Validate** | 생성 완료 | 검증 통과 | generate 전용 모드 |

## Execution Modes

| Mode | Input Example | Behavior |
|------|---------------|----------|
| **전체 사이클** (default) | `Docker + CI/CD 설정해줘` | Discover → Design → Generate → Validate |
| **Dockerfile** | `dockerfile: Spring Boot 앱` | Discover → Generate Dockerfile |
| **Pipeline** | `pipeline: GitHub Actions CI` | Discover → Generate CI workflow |
| **K8s** | `k8s: deployment + service` | Discover → Generate K8s manifests |
| **Terraform** | `terraform: AWS ECS` | Discover → Generate Terraform module |
| **배포 전략** | `deploy-strategy: Canary` | 배포 전략 설계 + 설정 |
| **검증 전용** | `validate: Dockerfile` | 기존 파일 검증만 |

## Technology Stack Detection

| 감지 항목 | 방법 |
|----------|------|
| **언어/프레임워크** | build.gradle.kts, pom.xml, package.json, go.mod, requirements.txt |
| **빌드 도구** | Gradle, Maven, npm, yarn, pnpm, go build |
| **런타임** | JVM version, Node version, Go version, Python version |
| **기존 인프라** | Dockerfile, docker-compose.yml, .github/workflows/, k8s/, terraform/ |
| **패키지 레지스트리** | Docker Hub, ECR, GCR, GHCR |

## Security Hardening

| 영역 | 적용 사항 |
|------|----------|
| **Dockerfile** | non-root USER, multi-stage build, distroless/alpine, no secrets in layers |
| **CI/CD** | Secrets via env, minimal permissions, pinned action versions |
| **K8s** | SecurityContext, resource limits, readiness/liveness probes |
| **Terraform** | Remote state encryption, least-privilege IAM, no inline secrets |

---

## Context Documents (Lazy Load)

| Document | Phases | Load Condition | Load Frequency |
|----------|--------|----------------|----------------|
| [dockerfile-guide.md](./references/dockerfile-guide.md) | 2, 3 | Docker 관련 요청 | Load Once |
| [github-actions-guide.md](./references/github-actions-guide.md) | 2, 3 | CI/CD 관련 요청 | Load Once |
| [kubernetes-patterns.md](./references/kubernetes-patterns.md) | 2, 3 | K8s 관련 요청 | Load Once |
| [deployment-strategies.md](./references/deployment-strategies.md) | 2 | 배포 전략 요청 | Load Once |

## Resources (On-demand)

| Document | Purpose |
|----------|---------|
| [discover-protocol.md](./resources/discover-protocol.md) | Phase 1 인프라 탐색 절차 |
| [design-protocol.md](./resources/design-protocol.md) | Phase 2 패턴 선택 절차 |
| [generate-protocol.md](./resources/generate-protocol.md) | Phase 3 파일 생성 절차 |
| [validate-protocol.md](./resources/validate-protocol.md) | Phase 4 검증 절차 |

## Scripts

| Script | Usage | Requirements |
|--------|-------|-------------|
| `scripts/detect-infra.sh` | 기존 인프라 파일 감지 | bash 4.0+, jq |
| `scripts/validate-dockerfile.sh` | Dockerfile 기본 검증 | bash 4.0+, jq |

## Templates

| Template | Purpose |
|----------|---------|
| [dockerfile-multistage.Dockerfile](./templates/dockerfile-multistage.Dockerfile) | 멀티 스테이지 Dockerfile |
| [github-actions-ci.yml](./templates/github-actions-ci.yml) | GitHub Actions CI 파이프라인 |
| [github-actions-cd.yml](./templates/github-actions-cd.yml) | GitHub Actions CD 파이프라인 |
| [k8s-deployment.yaml](./templates/k8s-deployment.yaml) | K8s Deployment + Service |
| [terraform-module.tf](./templates/terraform-module.tf) | Terraform 모듈 |

## Sister-Skill Integration

### 위임 대상

| Target Skill | Trigger | Purpose |
|-------------|---------|---------|
| `engineering-workflow` (IF) | 인프라 아키텍처 결정 | 아키텍처 의사결정 위임 |
| `sub-kopring-engineer` | Gradle 빌드 설정 | 빌드 설정 가이드 |

### 호출받는 경우

다른 스킬이 배포/인프라 설정을 요청할 때:
- invoke 메시지 파싱 → Discover 스킵 → Design부터 실행
- 생성된 파일 목록 + 검증 결과를 반환

