译者 | Arvin,责编 | 王晓曼
头图 | CSDN ***自东方 IC
出品 | CSDN(ID:CSDNnews)

【导读】关于持续集成(CI)和持续交付(CD)的资源和信息有很多,但是你理解为什么我们须要CI和CD吗?
以下为译文:
关于持续集成(CI)和持续交付(CD)的资源和信息有很多,包括定义、最佳实践和操作指南。此外,每天都有大量的 CI /CD 工具上市。但是为什么我们须要 CI 和 CD?
让我们从一些基本信息开始先容。
什么是持续集成和持续交付?
有很多定义在流传,但这里的两个定义捉住了这两个过程的实质:
“持续集成是一种开拓实践,哀求开拓职员每天多次将代码集成到共享存储库中。”(来源:ThoughtWorks)
“持续交付是一种软件工程方法,团队可以在短韶光内生产软件,确保可以在任何时候可靠地发布软件,并且在可以手动发布软件。”(来源:维基百科)
这听起来不错。但是你可能会问,“这有什么大不了的?” 要回答这个问题,我们须要想象一个没有CI / CD的天下,看看为什么这么多人跳上CI / CD的列车。
如果没有CI / CD
1、交付缓慢
手动任务对付完成任务的人来说是乏味且令人沮丧的。这些任务减慢了交付过程,并终极阻碍了创新。如果竞争对手利用自动化而你没有利用自动化,那么竞争对手就赢了。等待支配的代码是不赢利的。
2、缺少可见性
“缺点发生在哪里?是什么缘故原由造成的?每个环境中支配了什么?我们可以把程序回退吗?”
如果没有CI / CD这些便是你每天都会问并且试图回答的问题。
3、缺点和用户不满
没有自动化就意味着用户会出错。每个手动任务都为缺点打开了大门。这些缺点常常发生并且难以办理。
其余,由于不常常合并大量代码,因此在漫长的开拓周期结束时会创造缺点,修复这些缺点可能更具寻衅性,或者对难于打消故障的代码库中的其他部分产生影响。
缺点会导致软件交付过程中涉及的个人和部门之间关系紧张。运维部门将糟糕的代码归咎于开拓职员。开拓职员对所有手动任务感到沮丧,并责怪QA没能捕获缺点。当客服职员必须办理终极用户的不满时,他们会责怪参与过程的每个人。终极,这个组织会缺少协作和事情友情。
CI/CD 优点
1、交付更快
当今的商业天下须要以往任何时候都须要更快的创新。借助自动化,你可以更快地交付产品,并得到终极用户的反馈,由于须要完成的手动任务更少,你可以更频繁地发布较小的变动来促进生产。CI / CD可以使你更好地参与市场竞争。
2、增加可见性
利用CI / CD,测试和支配过程是透明的。任何问题都险些可以立即看到,并且可以迅速找到缘故原由,从而减少了常规办法在确定缘故原由时所涉及的预测。
由于漏洞易于跟踪,因此人们要负起各自的任务。这并不虞味着是时候进行相互责怪了,而是说卖力这部分代码的人是办理问题的最佳人选。终极,正常运行的韶光增加了。
3、肃清缺点
发生缺点是很难避免的。当代软件功能,项目和运用程序很繁芜。一个版本有很多地方可能出错。毕竟,每个开拓职员都是人,都可能犯错。持续集成肃清了个中的一些繁芜性,减少了问题所在的领域,并增加了成功的可能性。自动化对付减少人为缺点是必不可少的。如果打算机可以实行任务,请让打算机实行该任务。
持续集成的两个紧张原则是频繁运行代码以及自动实行软件交付生命周期的构建和测试部分。每天多次运行代码集成意味着可以更快地创造缺点,由于须要做的挖掘事情更少就可以更快地纠正缺点。
开拓职员的手工任务更少,这意味着涌现人为缺点的机会更少。运维会收到高质量的代码。QA须要办理的问题较少。客户做事不会收到那么多恼人的电子邮件和电话。每个人的事情都得到改进。
4、开释资源
如果将可重复和可预测的任务移交给自动化,则可以为开拓职员腾出韶光,这样他们可以做自己喜好的事情:开拓。将平凡的重复性任务留给打算机(它们不介意)),让你的开拓职员做更有造诣感和回报的高等事情!
利用CI / CD,同样数量的资源可以进一步分配。因此,在保持原始业务约束的同时,还可以完成更多事情。
5、终极用户更满意
更快,更频繁的发布和更少的缺点会匆匆使开拓职员与其他业务部门之间建立起信赖,按时完成任务,得到可靠的结果,可以使终极用户更加满意。CI / CD是双赢的。
如果没有CI / CD,交付缓慢,缺少可见性,缺点频繁发生,终极用户会感到不满意。但是,有了CI / CD和自动化,更频繁的集成,更好的可见性,更友好的协作和更随意马虎定位缺点的办理方案,所有这些问题就肃清了。难怪越来越多的企业正在朝着敏捷方法论和自动化流程迈进!
原文:
https://dzone.com/articles/why-the-world-needs-cicd
本文为 CSDN 翻译,转载请注明来源出处。