小学生都能看懂的CICD
CI(Continuous Integration)
CI(持续集成)是一个为(软件)开发者服务的自动化过程。
假设我们的项目由前端(VueJS)和后端(Python FastAPI)组成。前端工程师和后端工程师都把代码推到Github的Repo里。途中能出错的真的太多了:merge conflict,前后端代码里有bug等等。如下:
成功的 CI 会将推送到 master 分支的新代码自动进行构建(build)、测试(test)和并合(merge)。比如示意图中的例子,前端的VueJS代码用Cypress进行自动测试,然后自动执行build;后端的python代码用pytest进行自动测试,然后build。最后进行Integration Test,以确保之后没有merge conflict等其他问题。
CD(Continuous Delivery)
持续交付过程中,代码上传到Github存储库中,为之后将程序部署到实时生产环境(prod env)作准备。
CD(Continuous Deployment)
持续部署指自动将新代码从Github存储库发布到生产环境,供客户使用。它解决了交付慢点问题。

CI/CD总览
CI和两个CD是自动化DevOps的过程。简直就是省时省力的神器。对前后端工程师也十分友好,使他们可以专注在软件开发和优化上。