Production Deploy 是一个面向生产环境部署的预发布校验与发布管理技能,核心定位是“部署闸门”而非部署教程。它把上线前必须完成的纪律固化为可逐项核对的清单,强调如果无法勾选每一项,就不具备部署条件;部分部署往往导致部分故障。
用途 该技能用于在每次生产部署前进行结构化校验,覆盖数据层、应用层、基础设施、可观测性与回滚准备等维度,帮助团队在发布前发现风险,而不是发布后被动应对。
主要能力
- 预部署检查清单:包括迁移是否审查与分类、回滚迁移是否存在并已在预发环境测试、数据库备份或持续 WAL 归档是否确认、迁移是否在生产量级数据上测试、迁移是否持有超过 2 秒的锁、迁移顺序是否正确;环境变量是否记录并在生产设置、密钥是否轮换、功能开关是否配置、API 变更是否向后兼容、事件模式与共享契约是否无破坏性变更、应用能否以生产配置在预发启动;健康检查端点是否正常、优雅关闭是否测试、资源限制与自动扩缩容是否配置、DNS/负载均衡变更是否生效、TLS 证书是否有效且 30 天内不过期;日志是否到达聚合器、关键指标是否配置告警、分布式追踪是否启用、错误预算是否审查、仪表盘是否更新;回滚计划是否编写并评审、上一版本制品是否可用、团队是否清楚部署权限与值班人员、事件通道是否明确、回滚预计时间是否记录(应低于 5 分钟)。
- 迁移安全审查:将迁移分为三类。附加型(安全,绿灯):新表、新可空列、并发创建的新索引、新视图、新函数/过程。转换型(有风险,黄灯):列类型变更(扩展-收缩)、大表数据回填(分批而非单条 UPDATE)、添加 NOT NULL 约束(使用 NOT VALID + VALIDATE)、在现有数据上添加 CHECK 约束或外键。破坏型(危险,红灯):删除列、删除表、删除数据、重命名列、收窄数据的类型变更;此类迁移需用户明确确认,并优先建议零停机替代方案。技能还提供检测命令,如用 grep 扫描危险操作、检查缺失 lock_timeout,以及使用 squawk 进行迁移 lint 并接入 CI。
- 环境变量校验:提供 Python(Pydantic BaseSettings)与 Node.js(envalid)示例,要求在启动时校验所有必需变量并快速失败,给出可读错误;每个变量需在 .env.example 中记录;PR 新增变量必须在部署前于生产设置或具备安全默认值;禁止无回退或校验地使用 os.getenv。并给出检测未校验环境变量的命令。
- 部署策略:滚动更新(无状态服务默认,新旧代码同时运行,要求向后兼容)、蓝绿(零停机与即时回滚,成本为部署窗口内 2 倍基础设施)、金丝雀(小比例流量,监控错误率与延迟,给出晋级标准)、功能开关(部署与发布解耦,逐步放量,要求开关临时、有负责人与移除日期、具备 kill switch、记录评估日志)。
- 回滚手册:强调“重新部署上一版本”不是回滚计划,真正的回滚计划需考虑模式变更等因素。
使用方式 该技能以清单与代码示例形式提供,可在每次生产部署前逐项核对;相关检测命令可集成到 CI 或本地检查中。
适用场景 适用于需要生产部署的团队,尤其是涉及数据库迁移、环境变量变更、API 契约调整、高风险重构或需要严格可用性 SLA 的服务。
限制 资料未提供该技能的安装方式、收费模式、支持平台或具体效果数据;部分内容(如回滚手册)在资料中未完整展开。