Files
John Qiu 3706d7f32d feat(skill): REQ-20260406-0004 技能三层分离重构(7主线+16插件)
批次1: req-prd 瘦身 + req-design 重定位 + dev-coding 聚焦
批次2: dev-review 新建 + review-checklist 插件
批次3: dev-integration 新建 + req-compare 拆出
批次4: 插件完善 (req-research/db-migration/dev-scaffold/deploy-rollback)
批次5: 平台拆分 (dev-ios/dev-android/dev-mcp/dev-pda) + dev 分组更新
批次6: marketplace.json 32→44 plugins

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 17:44:08 +09:30

103 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: deploy-rollback
description: 回滚方案插件。部署后发现问题时的回滚策略和执行步骤。挂载在 deploy 阶段,部署出问题时激活。
---
# 回滚方案插件 (deploy-rollback)
## 概述
当生产部署后发现问题时,提供结构化的回滚决策和执行步骤。
**触发条件**
- 部署后健康检查失败
- 部署后用户报告问题
- 部署后监控告警
## 回滚决策树
```
问题发现
├── 服务完全不可用?
│ └── YES → 立即回滚(紧急)
├── 核心功能异常?
│ └── YES → 评估影响范围 → 回滚或热修复
├── 非核心功能异常?
│ └── 评估修复时间
│ ├── < 30 分钟 → 热修复
│ └── > 30 分钟 → 回滚
└── 性能下降?
├── 严重(>5x → 回滚
└── 轻微(<2x → 监控 + 排期修复
```
## 回滚类型
### 1. Docker 镜像回滚(最常用)
```bash
# 查看历史镜像
docker images | grep ai-proj
# 回滚到上一版本
cd deploy
# 修改 docker-compose.prod.yml 中的镜像 tag
docker compose -f docker-compose.prod.yml up -d
# 验证
curl -s http://localhost:8080/health | jq .
```
### 2. 数据库回滚
```bash
# 执行 down migration
cd backend
migrate -path migrations -database "$DB_URL" down 1
# 验证表结构
psql -U user -d db -c "\d affected_table"
```
**注意**:数据库回滚可能导致数据丢失,必须先评估影响。
### 3. 配置回滚
```bash
# 恢复旧配置
git checkout HEAD~1 -- deploy/config/
docker compose -f docker-compose.prod.yml restart
```
## 回滚检查清单
- [ ] 确认问题现象和影响范围
- [ ] 通知相关人员(用户需知道在维护中)
- [ ] 执行回滚操作
- [ ] 验证服务恢复正常
- [ ] 验证数据完整性
- [ ] 记录回滚原因和过程
- [ ] 创建修复任务
## 回滚记录模板
```markdown
## 回滚记录
**时间**: YYYY-MM-DD HH:mm
**触发原因**: [问题描述]
**影响范围**: [受影响的功能/用户]
**回滚类型**: Docker 镜像 / 数据库 / 配置
**回滚操作**: [具体步骤]
**恢复确认**: [验证结果]
**根因分析**: [问题根因]
**修复计划**: [后续修复方案]
```
## 预防措施
- 部署前确保 Migration 有 down.sql
- 部署前确保 Docker 保留上一版本镜像
- 大变更使用灰度发布
- 监控关键指标错误率、延迟、CPU/内存)