部署程序Skill deployment-procedures

该技能专注于生产环境部署的核心原则和决策流程,包括安全部署工作流、回滚策略、验证方法等,旨在培养开发者和运维人员的思维能力和风险控制意识,而不是简单的脚本执行。关键词:部署、生产环境、安全、回滚、CI/CD、DevOps、风险管理。

DevOps 0 次安装 0 次浏览 更新于 3/21/2026

名称: 部署程序 描述: 生产部署原则和决策制定。安全部署工作流、回滚策略和验证。教授思考,而非脚本。 允许工具: Read, Glob, Grep, Bash

部署程序

安全生产发布的部署原则和决策制定。 学会思考,而非记忆脚本。


⚠️ 如何使用此技能

此技能教授部署原则,而非复制bash脚本。

  • 每个部署都是独特的
  • 理解每个步骤背后的原因
  • 根据平台调整程序

1. 平台选择

决策树

你在部署什么?
│
├── 静态网站 / JAMstack
│   └── Vercel, Netlify, Cloudflare Pages
│
├── 简单Web应用
│   ├── 托管 → Railway, Render, Fly.io
│   └── 控制 → VPS + PM2/Docker
│
├── 微服务
│   └── 容器编排
│
└── 无服务器
    └── 边缘函数, Lambda

每个平台有不同的程序

平台 部署方法
Vercel/Netlify Git推送,自动部署
Railway/Render Git推送或CLI
VPS + PM2 SSH + 手动步骤
Docker 镜像推送 + 编排
Kubernetes kubectl apply

2. 部署前原则

4个验证类别

类别 需要检查的内容
代码质量 测试通过,代码规范整洁,已审查
构建 生产构建工作,无警告
环境 环境变量设置,密钥最新
安全 备份完成,回滚计划就绪

部署前清单

  • [ ] 所有测试通过
  • [ ] 代码审查并批准
  • [ ] 生产构建成功
  • [ ] 环境变量已验证
  • [ ] 数据库迁移就绪(如有)
  • [ ] 回滚计划文档化
  • [ ] 团队已通知
  • [ ] 监控就绪

3. 部署工作流原则

5阶段流程

1. 准备
   └── 验证代码、构建、环境变量

2. 备份
   └── 在更改前保存当前状态

3. 部署
   └── 执行时保持监控开启

4. 验证
   └── 健康检查、日志、关键流程

5. 确认或回滚
   └── 一切正常?确认。有问题?回滚。

阶段原则

阶段 原则
准备 从不部署未测试的代码
备份 没有备份无法回滚
部署 观看执行过程,不要走开
验证 信任但要验证
确认 准备好回滚触发

4. 部署后验证

需要验证的内容

检查 原因
健康端点 服务正在运行
错误日志 无新错误
关键用户流程 关键功能工作
性能 响应时间可接受

验证窗口

  • 前5分钟:主动监控
  • 15分钟:确认稳定
  • 1小时:最终验证
  • 次日:审查指标

5. 回滚原则

何时回滚

症状 操作
服务宕机 立即回滚
关键错误 回滚
性能下降>50% 考虑回滚
次要问题 如果快速,修复前进

按平台的回滚策略

平台 回滚方法
Vercel/Netlify 重新部署先前提交
Railway/Render 在控制台回滚
VPS + PM2 恢复备份,重启
Docker 先前镜像标签
K8s kubectl rollout undo

回滚原则

  1. 速度优于完美:先回滚,后调试
  2. 不要复合错误:一次回滚,非多次更改
  3. 沟通:告知团队发生了什么
  4. 事后分析:稳定后理解原因

6. 零停机部署

策略

策略 工作原理
滚动 逐个替换实例
蓝绿 在环境之间切换流量
金丝雀 逐步流量转移

选择原则

场景 策略
标准发布 滚动
高风险更改 蓝绿(易于回滚)
需要验证 金丝雀(用真实流量测试)

7. 紧急程序

服务宕机优先级

  1. 评估:症状是什么?
  2. 快速修复:如果不清楚,重启
  3. 回滚:如果重启无效
  4. 调查:稳定后

调查顺序

检查 常见问题
日志 错误、异常
资源 磁盘满、内存
网络 DNS、防火墙
依赖 数据库、API

8. 反模式

❌ 不要 ✅ 做
周五部署 周初部署
匆忙部署 遵循流程
跳过暂存 总是先测试
部署无备份 部署前备份
部署后走开 监控15分钟以上
一次多个更改 一次一个更改

9. 决策清单

部署前:

  • [ ] 平台适当程序?
  • [ ] 备份策略就绪?
  • [ ] 回滚计划文档化?
  • [ ] 监控配置?
  • [ ] 团队通知?
  • [ ] 有时间监控后?

10. 最佳实践

  1. 小而频繁的部署 优于大发布
  2. 功能标志 用于高风险更改
  3. 自动化 重复步骤
  4. 文档化 每次部署
  5. 审查 问题后原因
  6. 测试回滚 在需要前

记住: 每次部署都是风险。通过准备而非速度来最小化风险。