# ๐ DevOps ์ด์ ๊ด๋ฆฌ ๊ฐ์ด๋
WorkflowMCP v2.9์ DevOps ์ด์ ๊ด๋ฆฌ ์์คํ
์์ ์ฌ์ฉ ๊ฐ์ด๋์
๋๋ค.
## ๐ ๋ชฉ์ฐจ
- [๐ ๊ฐ์](#-๊ฐ์)
- [๐ ๏ธ ์ธ์๋ํธ ๊ด๋ฆฌ](#๏ธ-์ธ์๋ํธ-๊ด๋ฆฌ)
- [๐ ํ๊ฒฝ ๊ด๋ฆฌ](#-ํ๊ฒฝ-๊ด๋ฆฌ)
- [๐ ๋ฐฐํฌ ๊ด๋ฆฌ](#-๋ฐฐํฌ-๊ด๋ฆฌ)
- [๐ ์์คํ
์ํ ๋ชจ๋ํฐ๋ง](#-์์คํ
-์ํ-๋ชจ๋ํฐ๋ง)
- [๐ง MCP ๋๊ตฌ ์ฌ์ฉ๋ฒ](#-mcp-๋๊ตฌ-์ฌ์ฉ๋ฒ)
- [๐ ์น ๋์๋ณด๋ ์ฌ์ฉ๋ฒ](#-์น-๋์๋ณด๋-์ฌ์ฉ๋ฒ)
## ๐ ๊ฐ์
### ์ง์ ๊ธฐ๋ฅ
| ๊ธฐ๋ฅ | MCP ๋๊ตฌ | ์น ๋์๋ณด๋ | CRUD ์ง์ |
|------|----------|-------------|----------|
| **์ธ์๋ํธ ๊ด๋ฆฌ** | โ
| โ
| Create, Read, Update, Delete |
| **ํ๊ฒฝ ๊ด๋ฆฌ** | โ
| โ
| Create, Read, Update |
| **๋ฐฐํฌ ๊ด๋ฆฌ** | โ
| โ
| Create, Read, Update |
| **์์คํ
์ํ** | โ
| โ
| Read |
### ์ํคํ
์ฒ
```
Claude Code (MCP ๋๊ตฌ) โ MCP ์๋ฒ โ SQLite DB โ ์น ๋์๋ณด๋
```
## ๐ ๏ธ ์ธ์๋ํธ ๊ด๋ฆฌ
### ์ธ์๋ํธ ํ์
- **outage**: ์๋น์ค ์ค๋จ
- **performance**: ์ฑ๋ฅ ์ด์
- **security**: ๋ณด์ ๋ฌธ์
- **data**: ๋ฐ์ดํฐ ๊ด๋ จ ์ด์
- **deployment**: ๋ฐฐํฌ ๊ด๋ จ ๋ฌธ์
### ์ฌ๊ฐ๋ ์์ค
- **critical**: ์ฌ๊ฐ (์๋น์ค ์ ์ฒด ์ค๋จ)
- **high**: ๋์ (์ฃผ์ ๊ธฐ๋ฅ ์ํฅ)
- **medium**: ๋ณดํต (์ผ๋ถ ๊ธฐ๋ฅ ์ํฅ)
- **low**: ๋ฎ์ (๊ฒฝ๋ฏธํ ๋ฌธ์ )
### ์ํ ๊ด๋ฆฌ
- **open**: ์ ๊ท ์ ์
- **investigating**: ์กฐ์ฌ ์ค
- **identified**: ์์ธ ํ์
- **monitoring**: ๋ชจ๋ํฐ๋ง ์ค
- **resolved**: ํด๊ฒฐ ์๋ฃ
### MCP ๋๊ตฌ๋ก ์ธ์๋ํธ ๊ด๋ฆฌ
#### ์ธ์๋ํธ ์์ฑ
```javascript
mcp__workflow-mcp__create_incident({
title: "API ์๋ฒ ์๋ต ์ง์ฐ",
description: "๊ฒฐ์ API ์๋ต ์๊ฐ์ด 10์ด ์ด์ ์์๋จ",
severity: "high",
incident_type: "performance",
status: "open",
affected_services: ["payment-api", "checkout-service"],
tags: ["api", "performance", "payment"],
environment_id: "prod-env-123"
})
```
#### ์ธ์๋ํธ ๋ชฉ๋ก ์กฐํ
```javascript
// ๋ชจ๋ ์ธ์๋ํธ
mcp__workflow-mcp__list_incidents()
// ํํฐ๋ง ์กฐํ
mcp__workflow-mcp__list_incidents({
severity: "critical",
status: "open",
incident_type: "outage"
})
```
#### ์ธ์๋ํธ ์
๋ฐ์ดํธ
```javascript
// API๋ฅผ ํตํ ์
๋ฐ์ดํธ
PUT /api/incidents/{id}
{
"status": "resolved",
"resolution_notes": "์๋ฒ ์ฉ๋ ์ฆ์ค๋ก ํด๊ฒฐ"
}
```
### ์น ๋์๋ณด๋ ์ฌ์ฉ๋ฒ
1. **์ด์ ๊ด๋ฆฌ ํ์ด์ง ์ ์**: `http://localhost:3301/operations`
2. **์ธ์๋ํธ ์์ฑ**: "์ ์ธ์๋ํธ ์์ฑ" ๋ฒํผ ํด๋ฆญ
3. **์ธ์๋ํธ ์์ธ**: ๋ชฉ๋ก์์ ํญ๋ชฉ ํด๋ฆญ โ ์์ธ๋ณด๊ธฐ ํ์ด์ง
4. **์ธ์๋ํธ ์์ **: ์์ธ ํ์ด์ง์์ "์์ " ๋ฒํผ โ ๋ชจ๋ฌ์์ ํธ์ง
## ๐ ํ๊ฒฝ ๊ด๋ฆฌ
### ํ๊ฒฝ ํ์
- **development**: ๊ฐ๋ฐ ํ๊ฒฝ
- **staging**: ์คํ
์ด์ง ํ๊ฒฝ
- **production**: ํ๋ก๋์
ํ๊ฒฝ
- **testing**: ํ
์คํธ ํ๊ฒฝ
### ํ๊ฒฝ ์ํ
- **active**: ํ์ฑ
- **inactive**: ๋นํ์ฑ
- **maintenance**: ์ ๊ฒ ์ค
### MCP ๋๊ตฌ๋ก ํ๊ฒฝ ๊ด๋ฆฌ
#### ํ๊ฒฝ ์์ฑ
```javascript
mcp__workflow-mcp__create_environment({
name: "ํ๋ก๋์
API ์๋ฒ",
environment_type: "production",
description: "๋ฉ์ธ API ์๋น์ค ํ๋ก๋์
ํ๊ฒฝ",
url: "https://api.company.com",
status: "active",
tags: ["api", "production", "critical"]
})
```
#### ํ๊ฒฝ ๋ชฉ๋ก ์กฐํ
```javascript
// ๋ชจ๋ ํ๊ฒฝ
mcp__workflow-mcp__list_environments()
// ํ์
๋ณ ํํฐ๋ง
mcp__workflow-mcp__list_environments({
environment_type: "production",
status: "active"
})
```
#### ํ๊ฒฝ ์ํ ์กฐํ
```javascript
mcp__workflow-mcp__get_environment_status({
environment_id: "env-123"
})
```
#### ํ๊ฒฝ ์
๋ฐ์ดํธ
```javascript
mcp__workflow-mcp__update_environment({
environment_id: "env-123",
updates: {
status: "maintenance",
description: "์ ๊ฒ์ ์ํ ์์ ์ค๋จ"
}
})
```
### ์น ๋์๋ณด๋ ์ฌ์ฉ๋ฒ
1. **ํ๊ฒฝ ๊ด๋ฆฌ ํ์ด์ง**: `http://localhost:3301/environments`
2. **ํ๊ฒฝ ์์ฑ**: "์ ํ๊ฒฝ ์ถ๊ฐ" ๋ฒํผ
3. **ํ๊ฒฝ ์์ **: ํ๊ฒฝ ์นด๋์์ "ํธ์ง" ๋ฒํผ
4. **์ํ ๋ชจ๋ํฐ๋ง**: ๊ฐ ํ๊ฒฝ์ ์ค์๊ฐ ์ํ ํ์ธ
## ๐ ๋ฐฐํฌ ๊ด๋ฆฌ
### ๋ฐฐํฌ ํ์
- **blue_green**: ๋ธ๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ
- **rolling**: ์์ฐจ ๋ฐฐํฌ
- **canary**: ์นด๋๋ฆฌ ๋ฐฐํฌ
- **hotfix**: ํซํฝ์ค ๋ฐฐํฌ
### ๋ฐฐํฌ ์ํ
- **planned**: ๊ณํ๋จ
- **in_progress**: ์งํ ์ค
- **completed**: ์๋ฃ
- **failed**: ์คํจ
- **rolled_back**: ๋กค๋ฐฑ๋จ
### MCP ๋๊ตฌ๋ก ๋ฐฐํฌ ๊ด๋ฆฌ
#### ๋ฐฐํฌ ์์ฑ
```javascript
mcp__workflow-mcp__create_deployment({
title: "API v2.1.0 ํ๋ก๋์
๋ฐฐํฌ",
description: "์๋ก์ด ๊ฒฐ์ ์์คํ
๋ฐ ์ฑ๋ฅ ๊ฐ์ ์ฌํญ ๋ฐฐํฌ",
environment_id: "prod-env-123",
version: "v2.1.0",
deployment_type: "blue_green",
status: "planned",
deployment_config: {
instances: 3,
rollout_percentage: 25,
health_check_url: "/health"
},
scheduled_at: "2025-01-15T02:00:00Z",
rollback_version: "v2.0.5",
tags: ["api", "payment", "performance"]
})
```
#### ๋ฐฐํฌ ๋ชฉ๋ก ์กฐํ
```javascript
// ๋ชจ๋ ๋ฐฐํฌ
mcp__workflow-mcp__list_deployments()
// ํ๊ฒฝ๋ณ ํํฐ๋ง
mcp__workflow-mcp__list_deployments({
environment_id: "prod-env-123",
status: "planned",
sort_by: "scheduled_desc"
})
```
#### ๋ฐฐํฌ ์์ธ ์กฐํ
```javascript
mcp__workflow-mcp__get_deployment({
deployment_id: "deploy-456"
})
```
### ์น ๋์๋ณด๋ ์ฌ์ฉ๋ฒ
1. **๋ฐฐํฌ ๊ด๋ฆฌ ํ์ด์ง**: `http://localhost:3301/deployments`
2. **๋ฐฐํฌ ๊ณํ**: "์ ๋ฐฐํฌ ๊ณํ" ๋ฒํผ
3. **๋ฐฐํฌ ์คํ**: ๊ณํ๋ ๋ฐฐํฌ์์ "์คํ" ๋ฒํผ
4. **๋ฐฐํฌ ๋ชจ๋ํฐ๋ง**: ์ค์๊ฐ ๋ฐฐํฌ ์งํ ์ํฉ ์ถ์
5. **๋กค๋ฐฑ**: ๋ฌธ์ ๋ฐ์ ์ "๋กค๋ฐฑ" ๋ฒํผ์ผ๋ก ์ด์ ๋ฒ์ ๋ณต์
## ๐ ์์คํ
์ํ ๋ชจ๋ํฐ๋ง
### MCP ๋๊ตฌ๋ก ์์คํ
์ํ ์กฐํ
```javascript
// ์ ์ฒด ์์คํ
์ํ
mcp__workflow-mcp__get_system_health()
// ํน์ ํ๊ฒฝ ์ํ
mcp__workflow-mcp__get_system_health({
environment_id: "prod-env-123",
include_details: true
})
```
### ๋ฐํ ๋ฐ์ดํฐ ๊ตฌ์กฐ
```json
{
"success": true,
"system_health": {
"summary": {
"total_environments": 5,
"healthy_environments": 4,
"warning_environments": 1,
"critical_environments": 0,
"last_check": "2025-01-10T10:30:00Z"
},
"recent_checks": [
{
"environment_id": "prod-env-123",
"status": "healthy",
"response_time": 45,
"checked_at": "2025-01-10T10:30:00Z"
}
],
"detailed_metrics": {
"cpu_usage": 65,
"memory_usage": 78,
"disk_usage": 45,
"network_latency": 12
}
}
}
```
## ๐ง MCP ๋๊ตฌ ์ฌ์ฉ๋ฒ
### ๊ธฐ๋ณธ ์ค์
1. **MCP ์๋ฒ ์์**:
```bash
npm start
```
2. **Claude Code์์ ์ฐ๊ฒฐ ํ์ธ**:
```bash
/mcp
```
### ์ผ๋ฐ์ ์ธ ์ํฌํ๋ก์ฐ
#### 1. ์ธ์๋ํธ ๋์ ์๋๋ฆฌ์ค
```javascript
// 1. ์ธ์๋ํธ ์์ฑ
const incident = await mcp__workflow-mcp__create_incident({
title: "ํ๋ก๋์
DB ์ฐ๊ฒฐ ์คํจ",
severity: "critical",
incident_type: "outage",
affected_services: ["user-service", "order-service"]
})
// 2. ์ํ ์
๋ฐ์ดํธ
await updateIncidentStatus(incident.id, "investigating")
// 3. ํด๊ฒฐ ํ ์ข
๋ฃ
await updateIncidentStatus(incident.id, "resolved")
```
#### 2. ๋ฐฐํฌ ์๋๋ฆฌ์ค
```javascript
// 1. ๋ฐฐํฌ ๊ณํ ์์ฑ
const deployment = await mcp__workflow-mcp__create_deployment({
title: "๊ธด๊ธ ๋ณด์ ํจ์น ๋ฐฐํฌ",
environment_id: "prod-env-123",
deployment_type: "hotfix",
version: "v2.0.6-security"
})
// 2. ๋ฐฐํฌ ์คํ ๋ชจ๋ํฐ๋ง
const status = await mcp__workflow-mcp__get_deployment({
deployment_id: deployment.id
})
// 3. ์์คํ
์ํ ํ์ธ
const health = await mcp__workflow-mcp__get_system_health({
environment_id: "prod-env-123"
})
```
## ๐ ์น ๋์๋ณด๋ ์ฌ์ฉ๋ฒ
### ๋ฉ์ธ ์ด์ ๋์๋ณด๋
**URL**: `http://localhost:3301/operations`
#### ์ฃผ์ ์น์
1. **์ธ์๋ํธ ํํฉ**
- ์ฌ๊ฐ๋๋ณ ์ธ์๋ํธ ์
- ์ต๊ทผ ์ธ์๋ํธ ๋ชฉ๋ก
- ํด๊ฒฐ ์๊ฐ ํต๊ณ
2. **ํ๊ฒฝ ์ํ**
- ๊ฐ ํ๊ฒฝ๋ณ ์ํ ์์ฝ
- ํฌ์ค ์ฒดํฌ ๊ฒฐ๊ณผ
- ์ฑ๋ฅ ๋ฉํธ๋ฆญ
3. **์ต๊ทผ ๋ฐฐํฌ**
- ์งํ ์ค์ธ ๋ฐฐํฌ
- ์๋ฃ๋ ๋ฐฐํฌ ๋ชฉ๋ก
- ๋ฐฐํฌ ์ฑ๊ณต๋ฅ
### ํ์ด์ง๋ณ ๊ธฐ๋ฅ
#### ์ธ์๋ํธ ํ์ด์ง (`/operations`)
- **์ธ์๋ํธ ์์ฑ**: ์์ธ ์ ๋ณด ์
๋ ฅ ํผ
- **์ธ์๋ํธ ๋ชฉ๋ก**: ํํฐ๋ง ๋ฐ ์ ๋ ฌ ๊ธฐ๋ฅ
- **์ธ์๋ํธ ์์ธ**: ์ํ ๋ณ๊ฒฝ ๋ฐ ๋
ธํธ ์ถ๊ฐ
- **์ธ์๋ํธ ์์ **: ๋ชจ๋ ํ๋ ํธ์ง ๊ฐ๋ฅ
#### ํ๊ฒฝ ํ์ด์ง (`/environments`)
- **ํ๊ฒฝ ์ถ๊ฐ**: ํ์
, URL, ์ํ ์ค์
- **ํ๊ฒฝ ๋ชฉ๋ก**: ์นด๋ ํํ๋ก ํ์
- **ํ๊ฒฝ ํธ์ง**: ์ธ๋ผ์ธ ํธ์ง ์ง์
- **์ํ ๋ชจ๋ํฐ๋ง**: ์ค์๊ฐ ์ํ ํ์
#### ๋ฐฐํฌ ํ์ด์ง (`/deployments`)
- **๋ฐฐํฌ ๊ณํ**: ์์ธ ๋ฐฐํฌ ์ค์
- **๋ฐฐํฌ ๋ชฉ๋ก**: ์๊ฐ์ ์ ๋ ฌ
- **๋ฐฐํฌ ์คํ**: ์ํด๋ฆญ ์คํ
- **๋ฐฐํฌ ์ถ์ **: ์ค์๊ฐ ์งํ ์ํฉ
## ๐ฏ ๋ชจ๋ฒ ์ฌ๋ก
### ์ธ์๋ํธ ๊ด๋ฆฌ
1. **์ ์ํ ๋ณด๊ณ **: ๋ฌธ์ ๋ฐ๊ฒฌ ์ฆ์ ์ธ์๋ํธ ์์ฑ
2. **์ ํํ ๋ถ๋ฅ**: ์ฌ๊ฐ๋์ ํ์
์ ์ ํํ ์ค์
3. **์์ธํ ๊ธฐ๋ก**: ์กฐ์ฌ ๊ณผ์ ๊ณผ ํด๊ฒฐ ๋ฐฉ๋ฒ ๋ฌธ์ํ
4. **์ฌํ ๋ถ์**: ํด๊ฒฐ ํ ์์ธ ๋ถ์ ๋ฐ ์๋ฐฉ์ฑ
์๋ฆฝ
### ํ๊ฒฝ ๊ด๋ฆฌ
1. **๋ช
ํํ ๋ช
๋ช
**: ํ๊ฒฝ๋ณ ๋ช
ํํ ์ด๋ฆ๊ณผ ์ค๋ช
2. **ํ๊ทธ ํ์ฉ**: ๊ด๋ จ ์๋น์ค ๋ฐ ํ ํ๊ทธ ์ถ๊ฐ
3. **์ํ ์
๋ฐ์ดํธ**: ์ ๊ฒ ์ ์ํ๋ฅผ ์ ์ ํ ๋ณ๊ฒฝ
4. **URL ๊ด๋ฆฌ**: ์ ํํ ์ ์ URL ์ ์ง
### ๋ฐฐํฌ ๊ด๋ฆฌ
1. **์ ์ง์ ๋ฐฐํฌ**: ํ๋ก๋์
์ ๋จ๊ณ์ ๋ฐฐํฌ ์ ํ
2. **๋กค๋ฐฑ ์ค๋น**: ํญ์ ๋กค๋ฐฑ ๋ฒ์ ์ค์
3. **ํฌ์ค ์ฒดํฌ**: ๋ฐฐํฌ ํ ์์คํ
์ํ ํ์ธ
4. **๋ฌธ์ํ**: ๋ฐฐํฌ ๋ด์ฉ๊ณผ ๋ณ๊ฒฝ ์ฌํญ ๊ธฐ๋ก
## ๐จ ํธ๋ฌ๋ธ์ํ
### ์ผ๋ฐ์ ์ธ ๋ฌธ์
#### MCP ์๋ฒ ์ฐ๊ฒฐ ์๋จ
```bash
# ์๋ฒ ์ํ ํ์ธ
ps aux | grep "node src/index.js"
# ์๋ฒ ์ฌ์์
npm start
# Claude Code ์ฌ์์ ํ /mcp ๋ช
๋ น์ด๋ก ์ฐ๊ฒฐ ํ์ธ
```
#### ์น ๋์๋ณด๋ ์ ์ ์๋จ
```bash
# ๋์๋ณด๋ ์๋ฒ ํ์ธ
cd dashboard
npm run dev
# ํฌํธ ์ถฉ๋ ํ์ธ
netstat -an | findstr :3301
```
#### ๋ฐ์ดํฐ ๋๊ธฐํ ๋ฌธ์
1. **SQLite ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ธ**: `data/workflow.db` ํ์ผ ์กด์ฌ ์ฌ๋ถ
2. **๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง์ด๊ทธ๋ ์ด์
**: `node src/database/simple-migrate.js`
3. **์๋ฒ ์ฌ์์**: MCP ์๋ฒ์ ์น ์๋ฒ ๋ชจ๋ ์ฌ์์
### ๋ก๊ทธ ํ์ธ
- **MCP ์๋ฒ ๋ก๊ทธ**: ์ฝ์ ์ถ๋ ฅ ํ์ธ
- **์น ์๋ฒ ๋ก๊ทธ**: ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ โ Network ํญ
- **๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก๊ทธ**: SQLite ์๋ฌ ๋ฉ์์ง ํ์ธ
## ๐ ๊ด๋ จ ๋ฌธ์
- [USER_GUIDE.md](USER_GUIDE.md) - ์ ์ฒด ์์คํ
์ฌ์ฉ ๊ฐ์ด๋
- [../README.md](../README.md) - ํ๋ก์ ํธ ๊ฐ์ ๋ฐ ์ค์น
- [MCP_PHASE_2_9_TESTING_GUIDE.md](MCP_PHASE_2_9_TESTING_GUIDE.md) - DevOps ๊ธฐ๋ฅ ํ
์คํธ ๊ฐ์ด๋
---
**WorkflowMCP v2.9 DevOps ์ด์ ๊ด๋ฆฌ ์์คํ
**์ผ๋ก ํจ์จ์ ์ด๊ณ ์์ ์ ์ธ ์ด์ ๊ด๋ฆฌ๋ฅผ ๊ฒฝํํด๋ณด์ธ์! ๐