持续交付是一种软件开发实践,通过持续交付,系统可以自动为将代码更改发布到生产环境做好准备。
持续集成和持续交付的区别
持续集成的目的是让产品可以快速迭代,交付高质量的代码,简化工作流程。核心在于代码集成到主干之前,必须要通过所有的自动化测试。
持续交付的目的是交付高质量、有价值的产品。核心在于频繁地将软件的新版本,交付给测试团队进行测试。如果测试通过,该版本就可作为生产使用。
持续交付的重点
持续集成的重点是代码,但持续交付的重点是可交付的产品。
可交付的产品一定要有达标的质量,确保产品在生产环境没问题,所以在成功持续集成以后,还需要进行完整测试。
本章节将会介绍如何在 kdo 上实现持续交付流程。
持续集成与持续交付流程
持续集成以代码为边界,持续交付以可交付制品为边界;镜像与版本号是两者之间的交接物。
flowchart TD
A[开发人员提交代码] --> B[持续集成开始]
B --> C[拉取代码并运行单元测试]
C --> D[执行静态扫描与质量门禁]
D --> E{集成是否通过}
E -->|否| F[反馈问题并修复代码]
F --> A
E -->|是| G[构建镜像并推送镜像仓库]
G --> H[生成可交付制品与版本号]
H --> I[持续交付开始]
I --> J[部署到测试环境]
J --> K[完整功能与验收测试]
K --> L{测试是否通过}
L -->|否| F
L -->|是| M[人工审批并晋级生产]
M --> N[部署生产并可回滚]