用途
本技能用于将实现输出转化为可发布输出,聚焦于安全部署、快速回滚和基于证据的发布决策。当设计或审查生产系统的部署流水线、发布策略、发布门禁、回滚计划、迁移安全发布以及部署后验证时使用。它覆盖构建产物晋级、环境策略、发布证据和运维安全。
当任务需要可复用的判断、领域约束或成熟的工作流,而非临时建议时适用。当任务与部署发布工程无关,或由更具体的配套技能处理更合适时,不应使用。当请求只需简单回答、本技能的约束或参考无实质帮助时,也不应使用。
必需输入
收集相关项目上下文、约束和要解决的具体问题;仅在需要时加载参考文件。确认期望的交付物:设计、代码、审查、迁移计划、审计或文档。
工作流
先阅读 SKILL.md,然后仅加载任务所需的深层参考文件。应用本技能中的有序指导、检查清单和决策规则,而不是挑选孤立的片段。产出交付物时,在重要之处明确假设、风险和后续工作。
加载顺序
- 加载 world-class-engineering。
- 当变更影响部署、迁移、运维风险或生产发布时加载本技能。
- 与 observability-monitoring 和 advanced-testing-strategy 搭配使用。
- 在发布、打标签、扫描或晋级容器镜像时,与 docker-development 搭配使用。
发布工作流
DevOps 源视角:当发布涉及生产、运维、CI/CD、PHP 运行时、基础设施、Kubernetes、GitOps、可观测性或事件响应时,应用 references/devops-book-patterns.md 中的 DevOps 运营模型。在选择工具前,用源视角检验流动、反馈和学习。
1. 对发布分类:识别发布是否包含 schema 变更、认证或权限变更、财务或工作流关键逻辑、基础设施或依赖变更、高流量路径变更、AI 行为或提示变更、功能开关或配置控制的暴露、对回滚不友好的数据变更。风险更高的发布需要更窄的发布范围和更强的验证。
2. 一次构建,安全晋级:构建产物一次;将同一产物晋级通过各环境;环境差异保留在配置和密钥中,而非源码或二进制中;不要为预发和生产分别重新构建;将流水线定义保留在版本控制中,使发布机制可审查。对于 Docker 交付,通过不可变摘要晋级已测试镜像;人类可读标签是标签,不是发布的事实来源。
3. 使用部署流水线,而非临时阶段:对于有意义的变更,明确定义这些阶段:提交阶段(快速构建、单元检查、静态分析、打包)、自动化验收或工作流阶段、按风险需要的更深集成/契约/非功能阶段、生产就绪门禁(发布说明、迁移审查、回滚审查)、发布和观察窗口。
4. 选择发布策略:使用最简单的安全选项——滚动用于低风险或容量受限的变更;蓝绿用于快速回滚和干净切换;金丝雀用于部分暴露能提供有用反馈的风险变更;暗发布或功能开关暴露用于部署应在用户发布前完成的情况。
5. 保护实时数据:在实时兼容性重要时使用扩展-收缩迁移;有意安排迁移、代码发布、回填和清理的顺序;除非明确计划,绝不将回滚绑定到破坏性 schema 假设;当副作用已经逃逸时,将部署回滚与业务数据修正分开。
拉取时迁移包装器:对于有实时数据库的 Web 应用,包含一个仓库根脚本,可在 git pull 后在演示、预发和类似共享环境运行。该脚本必须:从项目正常环境配置读取数据库连接详情;检查已跟踪的迁移文件和实时数据库迁移历史;通过项目具备校验和感知的迁移运行器仅应用缺失的迁移;默认排除所有种子文件、种子目录、演示数据、夹具和生产种子包;在应用变更前支持 dry-run 或状态模式。将此包装器视为部署管道,而非应用种子设置。种子需要显式、单独的操作员操作。
6. 验证发布:部署后验证应确认:健康端点、关键用户旅程、遥测和告警行为、迁移成功、无意外错误激增、无意外饱和/队列增长/成本激增、仪表盘和追踪中可见发布标记。参见 references/release-checklist.md。
7. 从发布中学习:记录什么拖慢了发布准备、部署、回滚信心或验证;将重复的手动步骤转化为流水线或运行手册改进;将失败的回滚、不明确的所有权和薄弱的遥测视为发布系统缺陷。
发布标准
环境策略:开发用于快速迭代;预发用于类生产验证;生产用于受控发布。环境一致性最重要的方面:依赖、密钥和配置形态、数据迁移行为、认证集成、性能敏感基础设施。
回滚:每个有意义的发布都需要:回滚触发条件、回滚负责人、回滚方法、数据兼容性评估、适用时的功能开关禁用路径。回滚必须在发布前设计,而不是在事件响应中临时拼凑。
部署后窗口:对于风险发布,定义:观察期、要查看的仪表盘、视为回滚触发条件的告警、在确认稳定前冻结后续变更。
交付物
对于重要发布,产出:发布分类、部署流水线阶段图、发布策略、迁移顺序、回滚计划、部署后验证检查清单、监控观察列表。
审查检查清单
- 产物晋级避免重建漂移。
- 流水线阶段匹配变更风险,并在发布日前定义。
- 发布策略匹配发布风险。
- 迁移顺序对重叠版本安全。
- 回滚路径明确且现实。
- 部署后验证已定义。
- 监控和告警观察列表附加到发布。
产出证据
| 类别 | 产物 | 格式 | 示例 |
|---|---|---|---|
| 发布证据 | 发布计划 | 按 skill-composition-standards/references/release-plan-template.md 的 Markdown 文档 | docs/releases/2026-04-16-release-plan.md |
| 发布证据 | 回滚计划 | 按 skill-composition-standards/references/rollback-plan-template.md 的 Markdown 文档 | docs/releases/2026-04-16-rollback-plan.md |
| 发布证据 | 变更记录 | PR 范围或带标签的提交列表 | docs/releases/2026-04-16-change-record.md |
质量标准和反模式
质量标准:保持输出面向执行、简洁,并与仓库基线工程标准一致;除非技能明确要求更强标准,否则保持与现有项目约定兼容;优先选择确定性、可审查的步骤,而非模糊建议或工具特定魔法。
反模式:将示例视为复制粘贴的真理而不检查适配性、约束或失败模式;默认加载每个参考文件,而不是使用渐进式披露。
参考文件
- references/deployment-pipeline.md:阶段模型、发布包和发布启发式。
- references/release-checklist.md:部署前和部署后检查。
- references/rollout-selection.md:选择滚动、蓝绿或金丝雀。
- references/devops-book-patterns.md:来自所提供 DevOps 书籍的价值流、流水线、可观测性、DevSecOps、PHP、云原生和 GitOps 模式。
- ../docker-development/references/php-python-js-container-delivery.md:PHP、Python 和 JavaScript 服务的 Docker 镜像、Compose、CI、注册表和运行时晋级标准。
限制
本技能的具体实现细节、配套技能的实际内容、模板文件的具体格式以及所引用 DevOps 书籍的具体内容,资料中暂未提供。