部署流水线就是把一次代码变更部署到产品环境经历的所有步骤,比如我们现在Java项目的流水线是这样的:
- 编译
- 代码审查,比如PMD
- QA环境针对变更代码的测试
- QA环境手工回归测试
- QA环境基于UI的自动化测试
- PP测试
- 产品部署
目前我们的流水线可以有三大可以改进的空间:
- 缺步骤:自动化的单元测试
- 缺步骤:自动化的非功能测试,比如性能测试、压力测试和安全测试等
- 自动化程度不够,比如回归测试和产品部署还没有完全自动化。
有了全自动的部署流水线以后,我们才可能做到持续部署,持续部署的意思是一次部署的批量可以很小,比如就是一个独立的代码提交或一天的代码改动就可以触发一次部署,而不用等到其它代码都好了以后或者两周以后才部署产品环境。
前几周看到一个部署流水线的示意,感觉挺简单易懂的,可以供大家参考(可能要放大图片才能看清楚。)