CI|CD解决方案
CI、CD方法设计
一、概述
CI/CD是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI/CD 的核心概念是持续集成、持续交付和持续部署。作为一个面向开发和运营团队的解决方案,CI/CD 主要针对在集成新代码时所引发的问题。
具体而言,CI/CD可让持续自动化和持续监控贯穿于应用的整个生命周期(从集成和测试阶段,到交付和部署)。这些关联的事务通常被统称为”CI/CD 管道”,由开发和运维团队以敏捷方式协同支持。
CI 持续集成(Continuous Integration)
CD 持续交付(Continuous Delivery)
CD 持续部署(Continuous Deployment)
二、如何实现CI/CD
如下图所示,当创建一个分支之后,你可以根据自己的需要在.gitlab-ci.yml文件中设定各种需要的构建和测试的场景,一旦你将本地的代码推送到代码仓库,Gitlab上相关的gtilab-runner就会按照预先设定的场景.gitlab-ci.yml执行你的构建和单元测试,直到所有的任务都通过之后,就会自动或者通过手动触发部署你的服务到对应的服务器上,在服务部署完成后,测试没有问题了,此时就可以发起一个新的merge请求,将这个构建、部署、测试没有问题的功能分支合并到主分支上,然后继续服务的持续交付环节。
![](https://www.baidaodata.com/wp-content/uploads/2023/05/1-1024x567.png)
如果我们深入研究基本工作流程,则可以在DevOps生命周期的每个阶段看到GitLab中可用的功能,如下图所示
![](https://www.baidaodata.com/wp-content/uploads/2023/05/2-1024x540.png)
![](https://www.baidaodata.com/wp-content/uploads/2023/05/3-1024x647.png)
三、总结
CI/CD通过在应用程序的构建、测试和部署中实施自动化,在开发和运营团队之间架起了桥梁。
DevOps强调软件开发人员与软件测试、软件运维、质量保障(QA)部门之间有效的沟通与协作。强调通过自动化的方式管理软件变更,软件集成。使得软件从构建到测试、发布更加便捷、可靠,最终按时交付软件。现代DevOps实践涉及软件应用程序在整个开发生命周期内的持续开发、持续测试、持续集成、持续部署和持续监控。CI/CD实践或CI/CD管道(CI/CD pipeline)构成了现代DevOps业务的主干。