SuperAPI AI 工具集

release-manager

部署与运维

查看项目

更新于 10-15 06:30

技能介绍

用途

Release Manager 是一个软件发布管理与 DevOps 技能,用于端到端管理软件发布流程。它帮助团队从解析约定式提交到生成变更日志、确定版本升级、编排发布过程,确保发布可靠、可预测且文档完善。

主要能力

  • 基于 git 历史和约定式提交自动生成变更日志
  • 根据提交分析和破坏性变更进行语义化版本升级
  • 通过检查清单和验证进行发布就绪评估
  • 发布规划与协调,含利益相关者沟通模板
  • 回滚规划与自动恢复流程
  • 紧急发布的热修复管理
  • 功能开关集成,支持渐进式发布

关键组件

脚本:

  • changelog_generator.py:解析 git 日志并生成结构化变更日志
  • version_bumper.py:根据约定式提交确定正确的版本升级
  • release_planner.py:评估发布就绪度并生成协调计划

文档:

  • 全面的发布管理方法论
  • 约定式提交规范与示例
  • 发布工作流对比(Git Flow、Trunk-based、GitHub Flow)
  • 热修复流程与紧急响应协议

发布管理方法论

语义化版本(SemVer)

格式为 MAJOR.MINOR.PATCH:

  • MAJOR:不兼容的 API 变更
  • MINOR:向后兼容的功能新增
  • PATCH:向后兼容的缺陷修复

预发布版本通过连字符和标识符表示:1.0.0-alpha.1、1.0.0-beta.2、1.0.0-rc.1。版本优先级示例:1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0。

约定式提交

格式:<type>[optional scope]: <description>,可带可选正文和脚注。

类型:feat(新功能,对应 MINOR)、fix(缺陷修复,对应 PATCH)、docs、style、refactor、perf、test、chore、ci、build、breaking(破坏性变更,对应 MAJOR)。

示例:

  • feat(user-auth): add OAuth2 integration
  • fix(api): resolve race condition in user creation
  • feat!: remove deprecated payment API 配合 BREAKING CHANGE: The legacy payment API has been removed

自动变更日志生成

变更日志按以下结构组织:Added、Changed、Deprecated、Removed、Fixed、Security。分组规则:feat 归入 Added,fix 归入 Fixed,破坏性变更突出显示。元数据提取包括关联 PR/issue(#123)、scope 分组、Co-authored-by 贡献者识别。

版本升级策略

自动检测规则:

  • MAJOR:任何含 BREAKING CHANGE 或类型后带 ! 的提交
  • MINOR:任何无破坏性变更的 feat 提交
  • PATCH:fix、perf、security 类型提交
  • 不升级:仅 docs、style、test、chore、ci、build

预发布处理示例:1.0.0-alpha.1 → 1.0.0-alpha.2;1.0.0-alpha.5 → 1.0.0-beta.1;1.0.0-beta.3 → 1.0.0-rc.1;1.0.0-rc.2 → 1.0.0。

多包(monorepo)场景:独立分析影响各包的提交,支持作用域版本升级(@scope/package@1.2.3),生成跨包协调发布计划。

发布分支工作流

  • Git Flow:main ← release/1.2.0 ← develop ← feature/login,另有 hotfix 分支。流程:从 develop 创建 release 分支、定稿发布、合并到 main 和 develop、打标签、从 main 部署。
  • Trunk-based:短生命周期特性分支(1-3 天),频繁提交到 main,用功能开关处理未完成功能,自动化测试门禁,从 main 部署。
  • GitHub Flow:从 main 创建特性分支,定期提交推送,就绪后开 PR,从特性分支部署测试,合并到 main 并部署。

功能开关集成

类型:发布开关、实验开关、运维开关、权限开关。实现策略:代码带开关部署(禁用)、逐步对部分用户启用、监控指标和错误率、根据数据全量发布或快速回滚、后续发布中移除开关。

发布就绪检查清单

  • 发布前验证:功能实现并测试、破坏性变更文档与迁移指南、API 文档更新、数据库迁移测试、安全审查、性能测试、国际化字符串更新、第三方集成验证。
  • 质量门禁:单元测试覆盖率 ≥ 85%、集成测试通过、端到端测试通过、静态分析干净、安全扫描通过、依赖审计干净、负载测试完成。
  • 文档要求:CHANGELOG.md 更新、README.md 反映新功能、API 文档生成、破坏性变更迁移指南、部署说明、回滚流程文档。
  • 利益相关者批准:产品经理、工程负责人、QA、安全团队、法律(如适用)、合规(如受监管)。

部署协调

沟通计划涵盖内部(工程、产品、支持、销售团队)和外部(用户发布说明、开发者 API 变更日志、迁移指南、停机通知)。部署序列:T-24h 最终验证与代码冻结、T-2h 数据库迁移、T-0 蓝绿部署切换流量、T+1h 监控指标与日志、T+4h 回滚决策点。监控与验证包括应用健康检查、错误率、性能指标、用户体验、业务指标、第三方服务集成健康。

热修复流程

严重性分类:

  • P0 严重:系统完全中断、数据丢失、安全漏洞。SLA 2 小时内修复,紧急部署,需工程负责人 + 值班经理批准。
  • P1 高:主要功能损坏、显著用户影响。SLA 24 小时内修复,加急审查部署,需工程负责人 + 产品经理批准。
  • P2 中:次要功能问题、有限用户影响。下个发布周期修复,正常审查流程。

紧急响应流程:事件声明、评估、从最后稳定版本创建热修复分支、最小修复、加急测试、紧急部署、事后根因分析。

回滚规划

回滚触发条件:错误率 30 分钟内超过基线 2 倍、延迟增加超过 50%、核心功能损坏、安全事件、数据损坏。

回滚类型:

  • 代码回滚:回退到之前的 Docker 镜像,仅数据库兼容的代码变更,优先功能开关禁用。
  • 数据库回滚:仅用于非破坏性迁移,迁移前需数据备份,优先前向迁移(加列而非删列)。
  • 基础设施回滚:蓝绿部署切换、负载均衡配置回退、DNS 变更(传播时间较长)。

发布指标与分析

关键绩效指标:前置时间(提交到生产)、部署频率、平均恢复时间、变更失败率。质量指标:回滚率、热修复率、缺陷逃逸率、检测时间。流程指标:审查时间、测试时间、批准周期、发布准备时间。

工具集成

版本控制:Git、GitHub/GitLab、Bitbucket。CI/CD:Jenkins、GitHub Actions、GitLab CI、CircleCI。监控告警:DataDog、New Relic、Sentry、PagerDuty。沟通平台:Slack、Microsoft Teams、Email、状态页。

最佳实践

发布规划:固定节奏、发布前 48 小时功能冻结、风险评估、利益相关者对齐。质量保证:自动化测试、类生产预发环境、金丝雀发布、主动监控。沟通:提前传达时间线、定期状态更新、问题透明、事后复盘。自动化:减少手动步骤、流程一致、审计追踪、自助部署。

常见反模式

流程:手动部署、最后一刻变更、跳过测试、沟通不畅。技术:单体大发布、耦合部署、无回滚计划、环境漂移。文化:指责文化、英雄文化、完美主义、风险规避。

入门步骤

评估当前发布流程与痛点、为仓库配置脚本、选择合适工作流、实现 CI/CD 管道与质量门禁、培训团队、设置指标与告警、基于反馈持续迭代。

适用场景与限制

适用于需要规划发布、管理变更日志、协调部署、创建发布分支或自动化版本管理的团队。该技能依赖约定式提交格式和 git 历史;具体脚本的运行环境、依赖和安装方式暂未提供。