前言
先解释几个概念:
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 能做什么?
CI/CD 可以协助团队自动进行开发、部署和测试。有些工具专门处理集成(CI)方面的问题,有些工具负责管理开发和部署(CD)工作,而另外一些工具则专注于持续测试或相关功能。
CI/CD 的构建结果以及报告(测试、安全等)直接反馈到 MR(Merge Request)中,打通了各个环节的数据流,避免了数据孤岛的形成,同时为研发、代码审核人员提供代码是否能够合入的决策能力,从源头保证代码质量以及应用程序安全。
最后: 下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取 【保证100%免费】
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
文章来源:https://www.toymoban.com/news/detail-766058.html
文章来源地址https://www.toymoban.com/news/detail-766058.html
到了这里,关于CI&CD 体系介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!