为什么需要CI/CD

有关持续集成(CI)和持续交付(CD)的资源和信息很多,包括定义,最佳实践和操作指南。此外,每天都有大量的CI/CD工具被研发出来。但是为什么我们需要CI和CD?

让我们从一些基本信息开始……

什么是持续集成和持续交付?

有很多定义,但是这里有两个定义可以描述持续集成和持续交付的本质:

持续集成:是一种开发实践,要求开发人员每天多次将代码集成到共享存储库中。” (来源:ThoughtWorks

持续交付:是一种软件工程方法,团队可以在短时间内将软件部署到生产环境,确保在任何时候可靠地发布软件,并且在发布软件时可以手动进行。” (来源:维基百科

这听起来不错。但是你可能会问,“有什么大不了的?”

要回答这个问题,我们需要想象一个没有CI/CD的世界,以了解为什么这么多组织选择CI/CD。

没有CI/CD的世界是一个缓慢而恐怖的地方

软件交付缓慢

手动构建和部署软件,对于开发和运维人员来说是乏味且令人沮丧的。

这些手动任务会减缓交付过程,并最终阻碍创新。如果其他组织都使用自动化而你没有,那么在工作效率上就输掉了。

缺乏可见性

“错误发生在哪里?是什么原因造成的?每个环境中部署了什么?我们可以回滚吗?”

如果没有CI/CD,这些是你每天都会问并试图回答的问题。

出错增多和客户不满

没有自动化就意味着手动操作出错概率增加。每个手动任务都为错误打开了大门。手动操作,使得错误经常发生并且难以解决。

此外,由于不经常合并大量代码,因此在漫长的开发周期结束时才会发现错误,并且错误修复起来可能极具挑战性,或者对难以解决的代码库其他部分有影响。

手动操作造成的错误,会导致软件交付过程中涉及的个人和部门之间的紧张关系。操作人员将错误代码归咎于开发人员。开发人员对所有手动任务感到沮丧,并责怪 QA 未捕获错误。客户服务部门,指责参与该过程的每个人都必须解决心客户的不满情绪。最终,该组织缺乏协作和友善。

拥有CI/CD的世界就是更美好的世界

软件交付更快

当今的商业世界,需要比以往更快的创新。

借助自动化,你可以更快地交付产品,并且可以获得最终用户的反馈,因为需要完成的手动任务较少,并且你可以更频繁地发布较小的变更到生产环境。

CI/CD可以使你更好地、更高效地参与市场竞争。

可见度提高

使用CI/CD,测试和部署过程是透明的。

任何问题都几乎可以立即看到,并且可以快速找到原因,从而减少了之前在查明问题原因时迫不得已的猜测。

由于漏洞易于跟踪,因此人们要承担责任。这并不意味着是时候进行追责了,这意味着能够快速找到解决该问题的最佳人选。

最终,增加了系统正常运行时间。

错误减少

现代软件功能,项目和应用程序很复杂,错误也越来越复杂。

持续集成消除了其中的一些复杂性,减少了问题所在的领域,并增加了成功的可能性。自动化对于减少人为错误是必不可少的。如果计算机可以执行任务,请让计算机执行任务。

持续集成的两个主要原则是,频繁运行代码以及自动执行软件交付生命周期的构建和测试部分。每天多次运行代码集成意味着可以更快地发现错误,然后可以更快地纠正错误,因为每次要做的事很少。

开发人员的手动任务更少,这意味着更少的人为错误机会。从而,运维部门会收到高质量的代码,QA需要解决的问题较少。客户服务也不会收到那么多恼人的客户投诉邮件或投诉电话。每个人的工作都得到改善。

资源释放

如果将可重复和可预测的任务移交给自动化,则可以为开发人员腾出时间来做他们喜欢的事情:开发。将繁琐,重复的任务留给计算机,让你的开发人员完成更有意义,更有创意的高级工作!

使用CI/CD,可以进一步分配相同数量的资源。因此,在保持原始业务约束的同时,还可以完成更多工作。

客户更满意

更快,更频繁的发布和更少的错误导致开发人员与其他业务部门之间的信任,按时完成任务,获得可靠的结果以及使最终用户更加满意。

CI/CD是双赢的。

CI/CD使世界运转

如果没有CI/CD,软件交付速度会很慢,可见性不足,错误经常发生,最终用户会感到不满意。

但是,有了CI/CD和自动化,频繁的集成,可见性,手动操作造成的错误等问题就消除了。难怪越来越多的企业正在向敏捷方法论和自动化流程迈进!

你想用CI/CD进入一个世界吗?

译文链接:https://dzone.com/articles/why-the-world-needs-cicd

K8S中文社区微信公众号

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址