用途:帮助团队安全地把变更发布到生产,覆盖部署策略、健康检查、回滚、环境与密钥、生产就绪清单及 CI/CD 原则,不依赖具体技术栈或平台,可按运行时、托管方式和团队规模调整。
主要能力:
- 部署策略(概念层面):滚动发布(逐步替换实例,新旧版本并存,适合多数应用和向后兼容变更,无额外基础设施,代价是需保持 API 与数据兼容);蓝绿(两套相同环境,一次性切换流量,适合需即时回滚的关键服务,代价是约 2 倍容量或备用环境);金丝雀(先放少量流量再逐步放量,适合高流量或高风险变更,需要流量切分能力)。不确定时建议先用平台默认方式并记录。
- 健康检查:暴露最小端点(如 /health 或 /ready),仅在可服务时返回成功,不含密钥和重逻辑;存活检查(进程是否在)和就绪检查(是否可接流量,可依赖数据库、缓存或配置)。失败时平台可重启或停止路由。
- 回滚:部署前明确“上一个好版本”(镜像标签、提交或发布产物)并记录;明确回滚方式(重新部署旧产物、切回流量、回退迁移),并把步骤写入文档。涉及数据库迁移或配置变更时,需向后兼容或规划配置回退。无法安全回滚应视作高风险部署并增加阶段、金丝雀或人工审批。
- 环境与密钥:配置和密钥放在代码与镜像之外,用环境变量或密钥管理器在运行时注入,切勿写入镜像或提交到仓库;不同环境用同一机制、不同取值;启动时校验,尽早暴露错误配置。
- 生产就绪清单:测试通过;无硬编码密钥;错误被处理和记录且日志不含敏感数据;健康端点真实反映状态;回滚路径已定义并在可能时于预发验证;已知并可获取“上一个好版本”;迁移向后兼容或有回滚文档;有人或文档知道如何及何时回滚;日志与指标可查可用;依赖做过安全扫描或审查;证书与鉴权符合产品预期,无默认管理员凭据。
- CI/CD 原则:每次变更或 PR 运行 lint、测试和构建,失败即中断(使用项目自身的命令,如 npm test、pytest、go test ./...);合并到主分支后构建产物、必要时复测,再部署到预发或生产,是否自动触发生产取决于风险与合规;从不在 CI 中记录或暴露密钥,使用平台密钥存储并以名称引用。工具不限。
适用场景:设计或记录部署流程(CI/CD、手动或混合)、新增或修改健康检查与回滚、首次部署或新服务上线准备、编写部署/回滚运行手册、用户提及部署、回滚、生产就绪或 CI/CD。
限制与说明:资料仅提供原则与模式,未绑定具体平台,也未给出可直接复制的完整命令或配置,需按自身技术栈和平台实现;文中提到的相关技能(如 database-migrations、env-and-config、logging-standards、dependency-updates、security-audit、runbook-incident、verification-before-completion)仅作为关联指引,具体内容本文档暂未提供;小型或独立项目可手动部署并跳过预发,但仍应定义“上一个好版本”和回滚方式;受监管或大型团队可增加审批、审计日志和变更窗口;确有例外应记录原因。