借助Emoji表情,轻松理解CI的工作流程

持续集成(CI)和持续交付(CD)工具可通过质量保证实现快速高效的开发。使开发人员能够自动测试代码,自动打包,甚至还可以自动部署到生产环境中。

持续集成(CI)通过立即构建和测试代码来确保代码能够产生可部署的应用程序,从而自动执行代码更改。持续交付(CD)向前迈出了一步,并推动了应用程序进入部署阶段。

成熟的CI/CD系统,会监视源代码中的更改,自动构建和测试代码,然后将其部署到生产环境,在此过程中,它会通过各种测试来确定流水线是否继续或失败。

本文,我们通过Emoji表情描述比萨饼送货业务,帮助你理解持续集成(CI)的工作流程

DevOps要想有效,必须要有专门的工具来配合。这就是为什么持续集成/持续交付(CI/CD)已成为软件行业中一种变革驱动力的原因。但是对于CI/CD的含义、CI和CD之间的区别以及它们是如何实现的,仍然存在很多的混淆。

CI/CD涵盖了从开发人员提交代码🧀🍅🥓🍍到该代码发布到生产环境的整个软件生命周期。如果CI/CD是比萨饼送货业务,它将涵盖将制作新比萨饼的食谱📃、烹饪、检查其质量🥄,到为客户送货的整个过程。

诚然,在这个比萨饼类比中,我们的“CI/CD”将是比萨饼配送的”亚马逊”,该公司将进行大规模和高度自动化的工作。它将拥有一个中央厨房,由一组厨师将不同的食材组合在一起,每天快速制作新的食谱和烹饪比萨饼。

根据配方制作的每个比萨饼都将经过严格的QA测试和集成测试,通过自动传送带传送、装箱并迅速送到顾客手中。通过此,我们也明白了CI/CD的本质–经过测试后可以更快地将产品交付给用户使用。

为了熟悉CI/CD的工作原理,我们首先需要知道CI组件专注于开发阶段。开发人员就是在中央厨房工作的厨师,每天不断尝试新的食材。

CI的工作前提是,位于存储库中的软件的最新稳定版本始终可用。CI还希望我们的开发人员围绕同一个主分支工作,允许他们经常更改代码,并提交到主分支。这里,我们可以将稳定的构建,比喻为经过测试,没有很大问题且不断变化发展的比萨食谱。

提交代码类似于制作新的比萨配料。厨师们每天都在尝试生产新鲜且味道更好的比萨,就像代码提交一样,成分可以是添加到产品中的任何东西,也可以用花椰菜代替面团的面粉混合物,甚至创建不同类型的比萨饼。

正如你所料,CI也允许支持频繁的代码提交,并且每次提交都通过测试🥄新构建来验证应用是否有潜在问题。

当开发人员准备提交新代码时,通常的方法是在本地测试🥄以确保其正常工作。就像厨师个人对他们的最新作品进行口味测试一样,越早进行测试能够提前发现问题,通过及时纠偏来确保质量。

CI工具可以通过自动化,促进敏捷开发,帮助开发人员在同一个项目上协同工作。例如,CI使开发人员的测试自动化,一旦测试结果达到预期效果,构建就会提交到集成服务器,这就最大限度地减少了代码冲突。测试人员,会在集成服务器上再次审查和测试代码,并将任何问题反馈给团队。

由于稳定可靠的构建始终存在于中央存储库中,因此如果测试出错,任何代码提交都可以回滚到最后一个稳定可靠的构建。

Jenkins是CI集成服务器的一个很好的例子,因为它集成了CI和CD生态系统中的许多工具和插件。

这意味着它可以从CI扩展到CD,但CD是超出其原始设计的扩展——它不是为云部署而设计的,这意味着需要外部脚本!✍️。

在下篇文章中,我们将介绍持续交付和持续部署的作用、两者之间的区别,以及如何制作多条CI/CD流水线。

译文链接:https://thenewstack.io/ci-vs-cd-explained-by-emoji-part-1-continuous-integration/

K8S中文社区微信公众号

评论 抢沙发

登录后评论

立即登录