用途:设计生产发布方案,包括灰度、蓝绿、金丝雀与滚动更新选型、回滚方案、Feature Flag 管理、数据库迁移与代码发布协调、多环境发布流程。核心原则为渐进式发布、可观测驱动、回滚小于 5 分钟、代码与配置分离、数据库先于代码、自动化优先。资料给出策略对比:滚动更新零停机、风险中、复杂度低,适合 K8s 默认;蓝绿零停机、风险低、复杂度中,适合快速切换;金丝雀零停机、风险极低、复杂度高,适合核心服务;灰度按百分比、风险低;Feature Flag 功能级控制、风险极低;大爆炸可能停机、风险高,适合内部工具。用法示例包括 K8s 滚动更新 maxSurge/maxUnavailable 配置、用 Service selector 切换蓝绿、Argo Rollouts 金丝雀 steps 与 analysis、Feature Flag 代码判断。回滚分三层:代码回滚(如 kubectl rollout undo、切回旧镜像 tag)、配置回滚(关闭 Flag、环境变量与 ConfigMap 回退)、数据回滚(PITR、备份恢复、补偿脚本)。自动回滚触发条件如错误率大于 5% 持续 2 分钟、P99 超基线 2 倍持续 5 分钟、健康检查失败超过 3 次。发布流程从合并 main、CI、构建镜像到 staging 验证、审批、生产金丝雀 5%、监控放量至 100%、观察 1 小时。数据库遵循先 Schema 兼容变更、再部署新代码、回填、最后清理的顺序。限制与常见坑:无回滚方案、全量发布、不监控放量、代码先于数据库、回滚超过 30 分钟、Flag 不清理、跳过 staging、镜像 tag 用 latest、不自动化、告警缺失。配套模板为 templates/release-plan-template.md。具体工具版本、价格与平台支持暂未提供。
release-strategy
部署与运维
更新于 10-16 09:56