持续交付流水线是什么
持续交付流水线把构建、测试、安全扫描与部署串成一条自动化通路,使每次提交都可能产出可发布版本。它解决的是发布靠人肉操作、回退靠临时救火的问题:制品版本化、环境一致、过程留痕、回退可执行。部署流水线指生产部署的必经路径,人工操作只保留在确实需要判断的环节。适用对象是任何持续迭代的软件产品,单体应用与微服务都适用。
基本信息
| 阶段 | 构建 → 测试 → 安全 → 制品 → 部署 → 验证 |
|---|---|
| 原则 | 每次提交可发布、可回退、全程留痕 |
| 产出 | 版本化制品与部署记录 |
| 关键约束 | 制品只构建一次,各环境复用同一份 |
| 反馈时长 | 主干流水线建议控制在 10 分钟内 |
| 关联实践 | 部署管理、变更使能、监控与可观测 |
典型使用场景
- 日常迭代:提交后自动跑单测与静态检查,问题在合并前暴露
- 发布前验证:制品晋级到预发环境跑自动化验收
- 生产部署:按灰度策略逐步放量,失败自动回滚
- 安全合规:依赖扫描与镜像扫描纳入门禁,留痕满足审计
- 环境一致性:同一制品部署到不同环境,避免配置漂移
- 故障排查:用部署记录与制品版本快速定位引入问题的提交
流水线骨架
流水线骨架
commit → build → unit test → scan → 制品入库
→ 部署测试环境 → 自动化验收
→ 生产灰度部署 → 自动验证 → 全量/回滚
反馈要求:主干流水线控制在 10 分钟内
制品要求:只构建一次,各环境复用同一版本阶段失败处理
| 阶段 | 检查内容 | 失败时的处理 |
|---|---|---|
| 构建 | 编译与依赖解析 | 阻断合并并通知提交者 |
| 单测与静态检查 | 逻辑正确性与代码规范 | 阻断合并 |
| 安全扫描 | 依赖与镜像漏洞 | 按严重级别阻断或开缺陷单 |
| 制品入库 | 版本号与签名校验 | 阻断发布,禁止手工绕过 |
| 部署与验证 | 健康检查与业务校验 | 自动回滚并触发告警 |
流水线耗时过长会迫使团队绕过流程:速度本身就是质量的一部分,优先并行化测试并缓存依赖。