| name | deployment-procedures |
| description | 生产环境部署原则与决策(Deployment procedures)。安全部署工作流、回滚策略与验证。强调思考而非背脚本。 |
| allowed-tools | Read, Glob, Grep, Bash |
部署规程
生产环境发布的部署原则与决策逻辑。
学习如何思考(THINK),而非死记硬背脚本。
[WARN] 如何使用此技能
此技能传授的是部署原则,不是可盲目复制的脚本。
- 每次部署都有差异
- 理解每一步背后的原因
- 根据平台实际情况调整流程
1. 平台选择
决策树
What are you deploying?
|
+-- Static site / JAMstack
| +-- Vercel, Netlify, Cloudflare Pages
|
+-- Simple web app
| +-- Managed -> Railway, Render, Fly.io
| +-- Control -> VPS + PM2/Docker
|
+-- Microservices
| +-- Container orchestration
|
+-- Serverless
+-- Edge functions, Lambda
不同平台有不同规程
| 平台 | 部署方式 |
|---|
| Vercel/Netlify | Git push(代码推送)自动部署 |
| Railway/Render | Git push 或 CLI |
| VPS + PM2 | SSH + 手动步骤 |
| Docker | 镜像推送 + 编排 |
| Kubernetes | kubectl apply |
2. 部署前原则
四大验证类别
| 类别 | 检查项 |
|---|
| 代码质量 | 测试通过、Lint 清理完成、已评审 |
| 构建(Build) | 生产构建成功、无告警 |
| 环境 | 环境变量已设置、凭据已更新 |
| 安全性 | 已备份、回滚方案就绪 |
部署前检查清单
3. 部署工作流原则
5 阶段流程
1. PREPARE
+-- Verify code, build, env vars
2. BACKUP
+-- Save current state before changing
3. DEPLOY
+-- Execute with monitoring open
4. VERIFY
+-- Health check, logs, key flows
5. CONFIRM or ROLLBACK
+-- All good? Confirm. Issues? Rollback.
阶段原则
| 阶段 | 原则 |
|---|
| 准备 | 绝不部署未经测试的代码 |
| 备份 | 没有备份就无法回滚 |
| 部署 | 观察过程,不要中途走开 |
| 验证 | 宁可怀疑,务必验证 |
| 确认 | 随时准备触发回滚 |
4. 部署后验证
验证内容
| 检查项 | 为什么要查 |
|---|
| 健康端点(Health) | 确认服务正常运行 |
| 错误日志 | 确认无新增错误 |
| 核心业务流 | 确保关键功能正常 |
| 性能 | 响应时间可接受 |
验证时间窗口
- 首个 5 分钟:主动监控
- 15 分钟:确认稳定
- 1 小时:最终验证
- 次日:复审指标
5. 回滚原则
何时回滚
| 现象 | 行动建议 |
|---|
| 服务宕机 | 立即回滚 |
| 严重错误 | 回滚 |
| 性能下降超过 50% | 考虑回滚 |
| 细微问题 | 可快速修复则向前修复 |
不同平台的回滚策略
| 平台 | 回滚方式 |
|---|
| Vercel/Netlify | 重新部署之前的提交 |
| Railway/Render | 控制面板回滚 |
| VPS + PM2 | 还原备份并重启 |
| Docker | 使用之前的镜像标签 |
| K8s | kubectl rollout undo |
回滚原则
- 速度优于完美:先回滚,再调试
- 不要复合错误:只做一次回滚,不叠加变更
- 沟通:告知团队发生了什么
- 复盘(Post-mortem):稳定后再追因
6. 零停机部署
核心策略
| 策略 | 工作原理 |
|---|
| 滚动更新(Rolling) | 逐个替换实例 |
| 蓝绿部署(Blue-Green) | 在不同环境间切换流量 |
| 金丝雀发布(Canary) | 逐步转移流量 |
选择原则
| 场景 | 对应策略 |
|---|
| 标准发布 | 滚动更新 |
| 高风险变更 | 蓝绿部署(易回滚) |
| 需要验证 | 金丝雀发布(真实流量验证) |
7. 应急响应程序
服务宕机优先级
- 评估(Assess):现象是什么?
- 快速修复:若原因不明,先重启
- 回滚:重启无效则立即回滚
- 调查:稳定后深入分析
调查顺序
| 检查项 | 常见问题 |
|---|
| 日志 | 错误、异常信息 |
| 系统资源 | 磁盘空间满、内存不足 |
| 网络 | DNS 问题、防火墙拦截 |
| 依赖项 | 数据库异常、API 故障 |
8. 反模式
| [FAIL] 禁止 | [OK] 推荐 |
|---|
| 周五部署 | 周初部署 |
| 仓促部署 | 遵循流程 |
| 跳过预发布环境(Staging) | 始终先测试 |
| 部署前不备份 | 部署前必备份 |
| 部署完立即走开 | 监控至少 15 分钟 |
| 同时进行多项变更 | 每次只做一项 |
9. 决策检查清单
在部署之前:
10. 最佳实践
- 小步快跑:高频小规模部署
- 功能开关(Feature flags):高风险变更用开关控制
- 自动化:重复步骤自动化
- 记录:记录每次部署过程
- 复审:问题发生后复盘
- 演练回滚:在需要前先验证回滚
谨记: 部署本身有风险,降低风险靠充分准备而非速度。