小学生都能看懂的CICDCI/CD的缩写如下。其中CD由两个概念组成:
- CI = Continuous Integration 持续集成
- CD = Continuous Delivery/Deployment 持续交付/持续部署
- CI(Continuous Integration)
- CD(Continuous Delivery)
- CD(Continuous Deployment)
- CI/CD总览
假设我们的项目由前端(VueJS)和后端(Python FastAPI)组成。前端工程师和后端工程师都把代码推到Github的Repo里。途中能出错的真的太多了:merge conflict,前后端代码里有bug,前后端装的包(dependencies)有版本冲突等等。特别是当前后端都用JS编程的时候,比如VueJS和NodeJS。
CI(持续集成)是一个为(软件)开发者服务的自动化过程。
成功的 CI 会在将新代码推送到 master 分支之前,自动进行构建(build)、测试(test)和并合(merge)。比如示意图中的例子,前端的VueJS代码用Cypress进行自动测试,然后自动执行build;后端的python代码用pytest进行自动测试,然后build。最后进行Integration Test,以确保之后没有merge conflict等其他问题。这个过程发生在工程师在自己电脑的IDE中(比如你用的vscode和终端)。示意图如下:
CD(Continuous Delivery)在CI检查过代码的正确性和可运行性之后。持续交付(Continuous Delivery)将代码上传到Github存储库中,为之后将程序部署到实时生产环境(prod env)作准备。示意图如下:
持续部署指自动将新代码从Github存储库发布到生产环境,供客户使用,比如各种云平台。它解决了交付慢的问题。示意图如下:
CI和两个CD是自动化DevOps的过程。简直就是省时省力的神器。对前后端工程师也十分友好,使他们可以专注在软件开发和优化上。总览如下:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)