持续集成与发布
持续集成不是“自动跑一条命令”,而是把团队已经认可的质量门槛放到每次变更上。任何人提交同一份代码,都应得到同样的检查和同样的构建产物。
一条最小交付流水线
text
检出固定版本
→ 安装锁定依赖
→ 静态检查与测试
→ 构建产物
→ 部署到目标环境
→ 健康检查与记录版本每一步都应有明确失败信号。不要把本地手工步骤隐藏在“发布前请记得做”的口头约定里。
环境差异通过配置表达
代码保持一致,开发、测试和生产的地址、密钥、开关等通过环境配置注入。构建日志不能打印令牌、数据库连接串或个人数据。
| 内容 | 应放在哪里 |
|---|---|
| 业务逻辑、默认非敏感值 | 代码仓库 |
| 环境地址、功能开关 | 受控环境配置 |
| 密钥、证书、令牌 | 专用密钥管理或平台机密 |
| 构建产物版本 | 发布记录与制品库 |
发布要能观察也能回退
发布完成不是流程终点。记录代码版本、配置版本和发布时间;健康检查失败时停止扩散;发现严重问题时,能快速回退到已验证的上一个版本。
- 先在接近真实的环境验证,再扩大范围。
- 数据库变更采用向前兼容策略,避免代码与表结构无法同时工作。
- 为高风险变更加功能开关或灰度路径。
- 发布后观察错误、延迟和关键业务指标,而不是只看任务“成功”。
可重复交付让速度来自确定性,而不是来自某位同事记得更多手工步骤。