---
name: deploy-release
type: procedure
when: '发布, 上线, 部署, release, 发版, 版本发布, 灰度, 发布上线, 生产部署'
scope:
  - backend
  - frontend
products:
  - '*'
id: ka-procedure-部署发布流程
asset_kind: procedure
lifecycle_status: active
authority: supporting
owner_mechanism_id: mc-delivery-gate
routes:
  - code_change
primary_triggers:
  - 部署发布流程
secondary_triggers: []
negative_triggers: []
priority: P1
specificity: 5
consumes:
  - mc-delivery-gate
emits:
  - release_record
  - deployment_verification
required_evidence:
  - execution_evidence
version: 1.1.0
last_reviewed: '2026-06-01'
stages: ["联调验证"]
---

## 适用场景
新功能上线、Bug 修复发版、生产环境部署。适用于经过测试验证后的正式发布流程。

## 步骤
1. 确认所有测试通过（单元测试 + 集成测试），检查 CI 绿灯
2. 更新版本号（package.json / pom.xml），生成 CHANGELOG
3. 合并代码到 release/main 分支，打 Git tag（v{version}）
4. 触发 CI/CD 构建，确认构建产物生成成功
5. 在预发环境（staging）验证核心功能流程
6. 执行数据库迁移（如有 DDL 变更，先备份再执行）
7. 部署到生产环境（滚动更新或蓝绿部署）
8. 验证生产环境：健康检查、核心接口冒烟测试
9. 监控告警观察 30 分钟，确认无异常
10. 通知团队发布完成，更新发布记录
11. 部署前确认回滚方案（回滚命令、数据库回滚脚本、配置回滚点）
12. 灰度/金丝雀发布：先部署到 10% 实例，观察 5 分钟监控指标
13. 确认监控指标正常后，逐步扩大到 50% → 100%
14. 部署完成后验证关键业务流程（冒烟测试），确认功能正常
15. 部署后观察 30 分钟监控（错误率、响应时间、资源使用），异常则触发回滚

## 检查点
- [ ] CI 全部通过，无跳过的测试
- [ ] 预发环境验证通过
- [ ] 数据库变更已执行且可回滚
- [ ] 生产健康检查通过
- [ ] 回滚方案已确认
- [ ] 灰度发布监控指标正常
- [ ] 冒烟测试通过
- [ ] 部署后 30 分钟监控正常

## 注意事项
- DDL 变更必须向前兼容（新列可为空或有默认值）
- 发布后保留回滚方案至少 24 小时
- 避免周五下午发布（无人在岗处理问题）
- 发布窗口应选择业务低峰期（通常 22:00-06:00）
- 数据库迁移脚本必须向前兼容，回滚时不执行 DDL 回退
- 发布后必须通知相关团队（运营、客服），提前告知已识别的影响范围和观察窗口
