介绍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文化变得如此流行的原因是它已经被证明可以帮助团队变得更有效率,更快地发布产品,提高质量,提高客户和员工的满意度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”项目启动并运行在任何时间。
了解更多:
