DevOps和CI/CD的介绍
DevOps和CI/CD的介绍
梅丽莎·麦凯最近重要的DevOps:揭开CI/CD和构建管道的神秘面纱这次演讲在JDCon上大受欢迎。在那里,Melissa探讨了CI/CD(持续集成/持续部署)和DevOps管道从开发人员的角度来看。在这里,我们将后退一步,为初学者提供DevOps、管道和CI/CD的介绍。我们将介绍关键的CI/CD概念、术语,并为您指出可以帮助您构建第一个CI/CD管道的资源。2022世界杯阿根廷预选赛赛程
什么是DevOps?
我们已经DevOps定义在进入CI/CD之前,让我们快速回顾一下。正如您所期望的,DevOps完全是关于开发(dev)和IT运维(ops)之间的协作。具体来说,DevOps专注于三个关键支柱:
文化.DevOps文化注重开发人员和运维人员之间的沟通、协作和责任共享。人以及他们如何协作是DevOps的核心。
最佳实践.虽然实践因团队而不同,但有许多流行的DevOps最佳实践,例如:实现版本控制、采用自动化和CI/CD(我们将深入探讨)
工具.没有具体的DevOps工具或工具等同于“做DevOps”,但是有很多工具可以帮助实现DevOps文化所提倡的最佳实践。通常,这些工具有助于简化DevOps管道。
作为证明通过谷歌的DevOps状态报告DevOps文化之所以如此受欢迎,是因为它已被证明可以帮助团队变得更有效率,更快地交付产品,提高质量,并提高客户和员工的满意度hth华体会最新官方网站
什么是CI/CD?
CI/CD是持续集成/持续部署的缩写。CI和CD是相关的,但有不同的定义,所以让我们分别看一下。
持续集成
持续集成是一种开发实践,它涉及团队中的开发人员频繁地签入(集成)他们的工作(通常是一天多次)。一旦工作签入,自动化的构建和测试过程就会启动,以查看它是否与现有代码冲突(这些冲突称为集成错误)。
CI过程允许团队快速检测和纠正集成问题,并在工作时保持每个人的开发代码相对最新。如果没有CI和频繁的签入、构建和测试,不同开发人员所使用的代码可能会如此不同步,从而对生产力和代码质量产生负面影响。为什么?因为签入和测试更少,开发人员在尝试将代码与主分支合并之前可能会在代码上工作几天。如果他们这样做并且存在冲突,他们现在必须工作几天(而不是几个小时)来处理他们自己和队友的代码来解决集成问题。
为了理解CI在实践中是如何工作的,让我们看一个例子。
开发人员从团队存储库中提取现有代码
开发人员处理代码,并确认他们的更改在本地有效(当然要确保进行构建和单元测试)
开发人员将代码提交回主存储库
CI服务器自动构建并测试新代码
如果测试通过了,开发人员就完成了,并继续他们的下一个任务。例如,如果测试失败,因为其他人在步骤1之后做出了冲突的更改,开发人员必须重复步骤1-4来解决集成错误。
虽然现在解决集成错误对我们的开发人员来说可能是一件痛苦的事情,但团队中的每个人都定期这样做,这是有好处的。CI的具体好处是团队可以快速解决问题,测试是自动的,而且测试的数量更少主要整体集成问题。
持续交付
连续交付(CD)是CI之后的下一个逻辑步骤。在CI中通过构建测试后,代码将被部署到某种类型的登台环境中。此时,将运行额外的自动化测试和集成测试。如果所有测试都通过,则代码已“生产就绪”,但代码不会自动部署到生产环境。通常,在部署到生产环境之前,需要进行手动测试或批准。
由于自动化测试,这个CD过程有助于加快部署时间并更快地捕获错误。
持续部署呢?
除了持续交付,还有一个与CI/CD相关的“CD”:持续部署。这张CD甚至比连续交付更进一步。使用持续部署,如果所有测试都通过,代码将自动部署到生产环境。
持续部署的好处很简单:生产用户可以获得能够通过所有必需测试的最新代码。
了解CI/CD管道:
端到端CI/CD流程的简化版本如下:
代码更改→代码构建→测试运行→代码发布
当然,在现实世界中,还会有计划、循环回第1步的失败测试、部署到生产以及其他细节,但简单地说,这就是CI/CD工作流。实现CI/CD工作流的工具、基础设施和实践被称为CI/CD管道。
有很多实现DevOps CI/CD工作流的方法,没有两个CI/CD管道是完全相同的。然而,持续测试和自动化是CI/CD最基本的两个方面,对于所有管道都是通用的。
CI/CD管道:JFrog Artifactory的一个实际示例
到目前为止,我们已经介绍了CI/CD概念的基础知识。然而,在现实世界中,事情要复杂一些。例如,通常会涉及多个工具,例如用于版本控制的GitHub,像Jenkins这样的CI服务器,像JFrog Xray这样的安全和合规扫描器,以及像JFrog Xray这样的工件存储库JFrog Artifactory.下面是一个真实的CI/CD管道的例子:
让我们来看看这个管道中发生了什么:
开发人员对代码进行更改。
更改被提交到版本控制系统(例如GitHub)的分支。
CI工具(例如Jenkins或TeamCity)自动构建新代码。
该代码用于自动测试。工件也被部署到JFrog Artifactory(例如在开发存储库中),并使用JFrog Xray进行扫描。
自动测试运行。
JFrog Xray分析构建的安全漏洞、许可证问题和依赖关系问题。
如果测试/分析失败,代码将被退回给开发人员进行返工。
如果测试/分析通过,则接受构建。
构建被提升,工件被存储在JFrog Artifactory中(例如,在一个生产存储库中)。
下一个步骤:开始使用您的第一个CI/CD管道
准备好开始创建自己的CI/CD管道了吗?请前往我们的JFrog管道快速入门指南并把你所学到的运用到实践中去!按照我们的指南,你将有你的第一个“Hello World”项目,并在任何时间运行。
