-
持续集成(Continuous Integration, CI):
- CI 是 CICD 的第一部分,通俗解释,CI就是使用一系列可选工具测试更新后代码的可用性,比如我要测试代码的安全性,我用安全工具和代码仓库关联起来自动测试。CI 的主要目标是快速发现集成问题,确保每次代码更改不会破坏已有的功能。
-
持续交付(Continuous Delivery, CD):
- CD 是 CICD 的第二部分,建立在 CI 的基础上。它确保软件始终处于可部署状态,并将代码更改经过自动化构建、测试和发布管道推进到生产准备状态。持续交付需要人为干预进行批准,以部署到生产环境中。 然后,部署本身由自动化功能执行。
-
持续部署(Continuous Deployment):
- 是 CD 的进一步发展,意味着每次通过测试的代码更改都会自动部署到生产环境中,完全不需要人工干预。
-
开源持续交付工具包括 Jenkins、Concourse CI、Spinnaker、Travis CI、GoCD 和 GitLab CI。
流行的开源持续集成工具包括:
- Jenkins:Jenkins 是一种广泛使用的开源持续集成工具,支持开发人员在将代码落实到源存储库后立即自动构建、集成和测试代码,从而能够更轻松地捕获漏洞,更快地部署软件。 Jenkins 中包含 Docker 插件。
- Buildbot:Buildbot 可以自动执行软件开发周期的所有方面。 作为作业调度系统,它对作业进行排队,然后执行作业,并报告结果。
- Go:Go 之所以能够脱颖而出,是因为管道概念,这使得复杂的构建工作流程的建模变得容易。
- Travis CI:最"古老"和最值得信任的托管解决方案之一,也提供企业本地版本。
- GitLab CI:GitLab CI 是开源 Rails 项目的组成部分,它是免费的托管服务,提供详细的 git 存储库管理,具有访问控制、问题跟踪、代码评审等功能。
- Jenkins:Jenkins 是一种广泛使用的开源持续集成工具,支持开发人员在将代码落实到源存储库后立即自动构建、集成和测试代码,从而能够更轻松地捕获漏洞,更快地部署软件。 Jenkins 中包含 Docker 插件。