前言

先解释几个概念:

1、DevOps(Development & Operations)

DevOps 是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、过程和工具。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

2018年 DevOps 的现状调查报告已经出来,下图是精英级执行团队使用DevOps 后的效率。精英级执行团队在以下几个方面有着突出的表现。

1)代码发布频率高46 倍。

2)代码从提交至发布的速度快2555 倍。

3)故障变更率降低1/7。

4)事故恢复时间快2604 倍。

CI / CD 是什么” />

A、持续:

“持续”用于描述遵循不同流程实践。这并不意味着“一直在运行”,而是“随时可运行”。它还包括几个核心概念/最佳实践。这些是:

1)频繁发布:能够频繁地交付高质量的软件。

2)自动化流程:包括构建、测试、版本控制、集成等等。

3)快速迭代:“快速”在这里是个相对术语,但无论软件更新/发布的频率如何,预期的持续过程都会以高效的方式将源代码转换为交付物。

B、持续集成:

持续集成(CI)是一种高效率的软件开发实践。在持续集成中,团队成员频繁的集成他们的工作成果,每人一天可以集成多次,每次集成都会经过自动化构建(包括静态扫描,自动化测试等)的检验,以尽快发现错误。许多团队发现这种方法可以显著减少集成引发的问题,并可以加快团队合作软件开发的效率(以上引用自 Martin Fowler 对持续集成的定义)

C、持续交付和部署:

持续交付(CD)指频繁的将软件的新版本交付给质量团队或者用户,以供评审,评审通过即可进入生产阶段。

持续部署(CD)是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境中。

从下图中可以更清晰看到三者的关系:

目前持续集成、持续交付、持续部署在开源社区都是热点,用户可以方便地利用这些开源组件来构建自己企业的持续集成、持续交付及持续部署平台。

常用的 CI/CD 工具有哪些?

CI/CD 工具可以协助团队自动进行开发、部署和测试。有些工具专门处理集成(CI)方面的问题,有些工具负责管理开发和部署(CD)工作,而另外一些工具则专注于持续测试或相关功能。

1、jenkins :持续集成工具中以Jenkins 使用最为广泛,由Jenkins 来作业化持续集成过程;

2、GitLab:利用GitLab来管理程序版本;

3、Gerrit:利用Gerrit 来做代码审核;

4、Sonar:利用Sonar 进行代码质量扫描;

5、Docker:最火的容器化方案,可使用 Docker 来进行本地代码调试,可利用Docker compose 来构建镜像;可利用Docker 来部署容器。

6、Kubernetes :容器技术的另一种比较火的方案。

此外,任何工具只要是 DevOps 的基本工具,就有可能属于 CI/CD 流程的一部分。用于配置自动化(如 Ansible、Chef 和 Puppet)、容器运行时(如 Docker、rkt 和 cri-o)以及容器编排(如 Kubernetes)的工具严格来说不算是 CI/CD 工具,但它们也现身于许多 CI/CD 工作流中。

下图显示了有 Docker 参与的 CI&CD 过程:

CI/CD 能做什么” />【保证100%免费】

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!