Release Management (Deep Workflow)
Releases combine coordination and risk management: what ships, when, how we verify, and how we recover.
When to Offer This Workflow
Trigger conditions:
- - Scheduled or train-based releases; need predictable cadence
- Hotfix chaos or unclear ownership
- SemVer vs calendar versioning debates
Initial offer:
Use six stages: (1) versioning policy, (2) branching & tags, (3) release candidate & checklist, (4) communication, (5) deploy & verify, (6) post-release & hotfixes). Confirm deployment model (continuous delivery vs batch releases).
Stage 1: Versioning Policy
Goal: Define SemVer (or alternative) rules: what counts as breaking, how migrations are communicated, and how pre-releases work.
Exit condition: Written policy linking version numbers to customer-facing risk.
Stage 2: Branching & Tags
Goal: Choose a strategy (trunk-based with release branches, GitFlow-lite, etc.) and use annotated tags tied to changelog entries.
Stage 3: Release Candidate & Checklist
Goal: Freeze criteria: QA scope, DB migrations dry-run, feature flag defaults, config diffs, load/perf smoke for risky changes.
Stage 4: Communication
Goal: Internal notes for support/CS/SRE; external release notes with breaking changes highlighted and migration steps.
Stage 5: Deploy & Verify
Goal: Canary or progressive rollout where possible; SLO dashboards; rollback trigger agreed before deploy starts.
Stage 6: Post-Release & Hotfixes
Goal: Lightweight retro; hotfix branches from the release tag; forward-merge fixes back to main; track incidents linked to release.
Final Review Checklist
- - [ ] Versioning and changelog reflect risk
- [ ] Branch/tag strategy is team-wide consensus
- [ ] Checklist covers migrations, flags, QA, and comms
- [ ] Rollback plan rehearsed or documented
- [ ] Hotfix process defined
Tips for Effective Guidance
- - Smallest releasable increment reduces blast radius.
- Coordinate DB schema changes with expand/contract patterns when zero-downtime matters.
- Complement with ci-cd and changelog-authoring skills for tooling depth.
Handling Deviations
- - SaaS with heavy feature-flagging: “release” may be continuous—still document communication and flag cleanup discipline.
发布管理(深度工作流)
发布结合了协调与风险管理:发布什么、何时发布、如何验证以及如何恢复。
何时提供此工作流
触发条件:
- - 定时或基于列车的发布;需要可预测的节奏
- 热修复混乱或职责不明确
- 语义化版本与日历版本的争论
初始提供:
使用六个阶段:(1)版本策略,(2)分支与标签,(3)发布候选与检查清单,(4)沟通,(5)部署与验证,(6)发布后与热修复。确认部署模型(持续交付 vs 批量发布)。
阶段1:版本策略
目标: 定义语义化版本(或替代方案)规则:什么算作破坏性变更,如何传达迁移信息,以及预发布版本如何运作。
退出条件: 将版本号与面向客户的风险关联起来的书面策略。
阶段2:分支与标签
目标: 选择一种策略(基于主干加发布分支、轻量级GitFlow等),并使用与变更日志条目关联的注释标签。
阶段3:发布候选与检查清单
目标: 冻结标准:QA范围、数据库迁移预演、功能开关默认值、配置差异、针对高风险变更的负载/性能冒烟测试。
阶段4:沟通
目标: 面向支持/客户成功/SRE的内部说明;面向外部的发布说明,需突出破坏性变更并提供迁移步骤。
阶段5:部署与验证
目标: 尽可能采用金丝雀或渐进式发布;SLO仪表板;部署开始前商定回滚触发条件。
阶段6:发布后与热修复
目标: 轻量级回顾;从发布标签创建热修复分支;将修复向前合并回主干;跟踪与发布相关的事件。
最终审查清单
- - [ ] 版本与变更日志反映风险
- [ ] 分支/标签策略为团队共识
- [ ] 检查清单涵盖迁移、开关、QA和沟通
- [ ] 回滚计划已演练或记录
- [ ] 热修复流程已定义
有效指导技巧
- - 最小可发布增量可减少影响范围。
- 在需要零停机时,采用扩展/收缩模式协调数据库模式变更。
- 配合ci-cd和变更日志编写技能以增强工具深度。
处理偏差
- - 重度使用功能开关的SaaS: “发布”可能是持续性的——仍需记录沟通和开关清理规范。