发布与部署
测试通过后,进入正式发布阶段。
核心流程
发布准备 → 灰度发布 → 正式发布 → 监控与回滚
1. 发布准备
发布checklist
| 检查项 | 说明 | 状态 |
|---|---|---|
| 测试报告已归档 | 功能测试全部通过 | ☐ |
| 代码已冻结 | 无未合并的紧急改动 | ☐ |
| 部署文档已更新 | 更新步骤清晰 | ☐ |
| 值班人员已安排 | 确保有人能处理问题 | ☐ |
| 回滚方案已准备 | 出现问题能快速回退 | ☐ |
| 通知已发送 | 相关部门已知悉 | ☐ |
发布公告模板
## 发布通知
### 发布时间
YYYY-MM-DD HH:00
### 发布内容
- [ ] 新功能1
- [ ] 优化点2
- [ ] Bug修复3
### 影响范围
[哪些用户/功能受影响]
### 注意事项
[如有特殊操作说明]
2. 灰度发布
灰度策略
| 策略 | 适用场景 |
|---|---|
| 地域灰度 | 按地域逐步放量 |
| 用户ID灰度 | 按用户ID段放量 |
| 特性开关 | 通过配置切换功能 |
灰度监控指标
- 错误率是否上升
- 响应时间是否增加
- 业务指标是否异常
3. 正式发布
发布执行模板
# 1. 备份当前版本
./backup.sh
# 2. 拉取新版本代码
git pull origin main
# 3. 执行数据库迁移(如有)
npm run migrate
# 4. 重启服务
pm2 restart all
# 5. 验证服务健康
curl http://localhost:3000/health
健康检查清单
- 服务进程正常运行
- 端口监听正常
- 数据库连接正常
- 缓存服务正常
- 关键接口可访问
4. 监控与回滚
监控指标
| 类型 | 指标 | 阈值 |
|---|---|---|
| 可用性 | 在线率 | ≥99.9% |
| 性能 | 响应时间P99 | <500ms |
| 错误 | 错误率 | <0.1% |
| 资源 | CPU使用率 | <80% |
回滚触发条件
- 错误率突然上升超过5%
- 核心功能完全不可用
- 响应时间超过阈值持续5分钟
回滚操作流程
# 1. 停止当前版本
pm2 stop all
# 2. 恢复上一版本
./rollback.sh
# 3. 验证回滚成功
curl http://localhost:3000/health
# 4. 通知相关人员
./notify.sh "回滚完成"
使用场景
- 测试通过,准备正式发布
- 生产环境出现故障,需要回滚
- 灰度发布过程中的监控
关键产出
- 发布计划与checklist
- 灰度发布策略
- 回滚方案
- 监控报告