当前位置: 首页 > 科技观察

零基础学习如何构建CI-CD流水线

时间:2023-03-19 00:47:53 科技观察

【.com快译】CI/CD(持续集成/持续部署)流水线的实现是当今构建DevOps模型的基础。它通过自动化应用程序的构建、测试和部署来弥合开发和运营团队之间的差距。在本文中,您将了解什么是CI/CD管道及其工作原理。在讨论CI/CD流水线之前,我们先了解一下DevOps。DevOps是一种软件开发方法论,涉及在整个开发生命周期中对软件进行持续开发、持续测试、持续集成、持续部署和持续监控。所有顶级公司都通过采用此流程实现了高质量的软件开发,缩短了开发周期,提高了客户满意度,因此非常适合大多数公司采用和跟进。想要学习DevOps,首先需要了解它的生命周期。让我们来看看DevOps生命周期,并探讨它与软件开发各个阶段的关系。CI代表持续集成,而CD代表持续交付或持续部署。如上图所示,您可以将其视为类似于软件开发生命周期的过程。让我们详细看看它是如何工作的。上面描述的流水线逻辑地展示了软件如何在其生命周期的每个阶段移动,直到它最终交付给客户或部署到生产中。让我们假设一个CI/CD管道场景。示例:您想要构建一个Web应用程序并将其部署到在线Web服务器。那么你手头应该有一个开发团队负责编写代码,他们将进一步构建Web应用程序。最初,开发团队将软件代码提交给版本控制系统(例如git或svn)。接下来,代码进入构建阶段,这是管道的第一个阶段,开发人员导入他们的代码,然后在用适当的版本标记后返回到版本控制系统。假设我们手边有一些Java程序代码,需要在执行前构建它。那么代码在经过了刚才的版本控制阶段之后,又来到了构建阶段,在这里进行编译。所谓构建阶段,其实就是你从不同的版本库分支中获取代码的所有特性,合并它们,最后使用编译器进行编译的整个过程。构建完成后,我们将进入测试阶段。在这个阶段,我们将进行各种测试,包括:功能块测试、单元测试和可用性测试。测试完成后,我们进入部署阶段,将代码部署到暂存或测试服务器。在此阶段,您可以使用模拟器查看确切代码及其整个应用程序的运行情况。成功部署代码后,您可以继续进行另一轮可用性测试。如果一切正常,代码就可以部署到生产环境中了。此外,如果任何一步出现问题,您可以通过电子邮件将其反馈给开发团队,以便他们及时修复。然后他们将新代码推送到版本控制系统中,以使其重新进入管道。这个过程一直进行下去,直到我们完成所有的测试和验证,最后将代码部署导入到生产环境的服务器上。至此,我们已经了解了CI/CD管道及其工作原理。下面,我们将继续讨论Jenkins是什么,如何通过Jenkins部署demo代码,并实现整个流程的自动化。CI工具和其他工具在CI/CD管道中的重要性我们的使命是自动化从开发团队提交代码到我们将其投入生产的整个过程。因此,为了在整个软件开发生命周期中实现DevOps流水线的自动化模式,我们需要使用一些相应的自动化工具。Jenkins为我们提供了各种接口和工具来自动化整个软件交付过程。首先,我们需要有一个Git存储库供开发团队提交他们的代码。然后詹金斯从那里“接管”。它是一个前端工具,您可以在其中自定义整个工作流程或任务。在这里,我们的工作是确保特定工具或特定应用程序的持续集成和交付过程。从Git的角度来看,Jenkins采用的是“pullcode”模式,然后Jenkins转入交付阶段,从各个分支提交代码。构建阶段主要是代码编译。如果是Java代码,我们可以使用Jenkins中的maven等工具编译代码,运行一系列的测试来实现部署。同样,这些测试用例也由詹金斯“监督”。之后,代码被移动到缓存服务器以使用Docker进行部署。最后,经过一系列单元和可用性测试后,代码“流入”生产环境。Docker是一个虚拟环境,我们可以在其中创建服务器。事实上,创建整个服务器并部署需要测试的工件只需要几秒钟。那么我们如何使用Docker呢?前面提到过,通过repository,我们不仅可以永久存储各种镜像,还可以在几秒内构建自己的镜像系统,运行整个集群。此外,您可以随时随地在任何环境中按需复制它们。动手实践:使用Docker和Jenkins构建CI/CD管道第一步:在VM中打开一个终端,使用以下命令启动Jenkins和Docker:systemctlstartjenkinssystemctlenablejenkinssystemctlstartdocker注意:如果系统显示“权限错误”,请启动上述命令在先使用sudo之前。第二步:在指定端口打开Jenkins。单击新建项目以创建新作业。第三步:选择一个freestyle项目,输入项目名称(这里我使用的是Job1),点击OK。第4步:选择源代码管理并单击Git存储库。单击应用和保存按钮。第五步:然后点击Build->SelectExecuteShell。第六步:一条一条输入shell命令。在这里,它将通过构建归档文件来生成一个war文件。之后,它“拉取”相关代码并使用maven安装包。请注意,它只需要安装依赖项并编译应用程序。第7步:单击新建项目以创建新作业。第八步:选择freestyle项目,输入项目名称(这里我用的是Job2),点击OK。第9步:选择源代码管理并单击Git存储库。单击应用并保存按钮。第十步:然后点击Build->SelectExecuteShell。第十一步:一条一条输入shell命令。从这里开始,它进入集成阶段并生成相应的Docker容器。第12步:单击新建项目以创建新作业。第13步:选择freestyle项目并为项目输入一个名称(这里我使用的是Job3)然后点击OK。第14步:选择源代码管理并单击Git存储库。单击应用并保存按钮。第15步:然后点击Build->SelectExecuteShell。第16步:一条一条输入shell命令。在这里,它检查Docker容器文件,然后将其部署在端口8180上。请单击“保存”按钮。第17步:现在点击Job1->Configure。第18步:单击Post-buildActions->Buildotherprojects。Step19:输入Job1(此处为Job2)之后构建的工程名称,点击Save。第20步:现在点击Job2->Configure。第21步:点击Post-buildActions->Buildotherprojects。Step22:输入Job2(此处为Job3)之后构建的工程名称,点击Save。第23步:现在,我们将创建管道视图。请点击“+”号。第24步:选择“BuildPipelineView”并为视图输入一个名称(这里我命名为CICDPipeline)。Step25:选择初始化作业(initialJob,这里我输入的是Job1),点击OK。Step26:点击“Run”按钮开始CI/CD流程。第27步:构建成功后,输入localhost:8180/sample.text。它将能够运行该应用程序。到目前为止,我们已经了解了如何使用Docker和Jenkins创建CI/CD管道。请记住:DevOps的目的是更快、更可靠地创建更高质量的软件,同时促进团队之间更紧密的沟通和协作。原标题:LearnHowtoSetUpaCI/CDPipelineFromScratch,作者:SamarpitTuli