DevOps、CI/CD是什么?

发布日期:2022-04-14

DevOps&&CI/CD到底是什么?

一、什么是DevOps?

DevOps是Development和Operations的组合,是一种方法论,是一组过程、方法与系统的统称,用于促进应用开发、应用运维和质量保障(QA)部门之间的沟通、协作与整合。以期打破传统开发和运营之间的壁垒和鸿沟。

DevOps是一种思想或方法论,它涵盖开发、测试.运维的整个过程! DevOps强调软件开发人员与软件测试、软件运维、质量保障(QA)部门之间有效的沟通与协作。 强调通过自动化的方法管理软件变更,软件集成。 使软件从构建到测试、发布更加快捷、可靠,最终按时交付软件。

二、什么是CI/CD?

CI的英文名称是Continuous Integration,中文翻译为:持续集成。

CI中,开发人员将会频繁地向主干提交代码,这些新提交的代码在最终合并到主干前,需要经过编译和自动化测试流进行验证。

持续集成(CI)是在源代码变更后自动检测、拉取、构建和(在大多数情况下)进行单元测试的过程。持续集成的目标是快速确保开发人员新提交的变更是好的,并且适合在代码库中进一步使用。CI的流程执行和理论实践让我们可以确定新代码和原有代码能否正确地集成在一起。

CD可对应多个英文名称,持续交付Continuous Delivery和持续部署Continuous Deployment ,以下分别介绍。

查了一些资料,关于持续交互和持续部署的概念比较混乱,以下的概念总结按大部分的资料总结而来。

1、持续交付

​ 完成 CI 中构建及单元测试和集成测试的自动化流程后,持续交付可自动将已验证的代码发布到存储库。为了实现高效的持续交付流程,务必要确保 CI 已内置于开发管道。持续交付的目标是拥有一个可随时部署到生产环境的代码库。

​ 在持续交付中,每个阶段(从代码更改的合并,到生产就绪型构建版本的交付)都涉及测试自动化和代码发布自动化。在流程结束时,运维团队可以快速、轻松地将应用部署到生产环境中或发布给最终使用的用户。

2、持续部署

对于一个成熟的CI/CD管道(Pipeline)来说,最后的阶段是持续部署。作为持续交付——自动将生产就绪型构建版本发布到代码存储库——的延伸,持续部署可以自动将应用发布到生产环境。

持续部署意味着所有的变更都会被自动部署到生产环境中。持续交付意味着所有的变更都可以被部署到生产环境中,但是出于业务考虑,可以选择不部署。如果要实施持续部署,必须先实施持续交付。

持续交付并不是指软件每一个改动都要尽快部署到产品环境中,它指的是任何的代码修改都可以在任何时候实施部署。

持续交付表示的是一种能力,而持续部署表示的则一种方式。持续部署是持续交付的最高阶段

CI/CD到底是什么?十分钟理解企业级DevOps

三、公司开发流程

CI/CD到底是什么?十分钟理解企业级DevOps Product Backlog源自于Scrum方法,是指产品待办事项的集合,其中事务有优先级判断,先处理优先级高的事项。

四、为什么要用DevOps

CI/CD到底是什么?

传统上在软件开发中(无论是瀑布模型还是敏捷方式,敏捷也比较传统),都由”开发团队”来构建 软件。

开发团队需要与运维团队进行了大规模的交接”。运维团队负责执行一系列部署 “活动,将软件代码移至生产环境,负责维护后续的系统稳定运行。生产环境的基础设施与开发或测试不同。需要有额外检查和平衡,以确保它- -切功能正常。部署是由不同的人完成的,运维团队之前从未见过或听说过任何此类软件。

DevOps这种软件开发方法,涉汲到软件整个开发生命周期,这些活动只能在DevOps中实现,而不是敏捷或瀑布流。

DevOps是在较短的开发周期内开发高质量软件的首选方法,同时可以提高客户满意度。

这就是为什么顶级互联网公司选择DevOps作为其业务目标的前进方向。

五、如何落地实现DevOps理念?

DevOps兴起于2009年,近年来由于云计算、互联网的发展,促进了DevOps的基础设施及工具链的发展,涌现了-大批优秀的工具,这些工具包括开发,测试,运维的各个领域,例如: GitHub, Git/sn, Docker. Jenkins, HudSon, Ant/Maven/Gradle,QUnit、JMeter等, 看下图:

CI/CD到底是什么?十分钟理解企业级DevOps CI/CD到底是什么?十分钟理解企业级DevOps

六、实践测试

CI/CD到底是什么?十分钟理解企业级DevOps