一文读懂 CI/CD 工具

2020 年 8 月 8 日 CSDN
作者 | Mallaidh Mleziva
译者 | 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 翻译,转载请注明来源出处。


更多精彩推荐

     
     
       
美国禁止与字节跳动及微信交易,45 天后生效,字节跳动回应来了!
110+优秀作品、20+热门领域曝光, 高通如何玩转“AI 的夏天”!
大写“惨”?三次改变世界、却被无情出局的程序员大牛!
我还没考试,算法就说我的物理一定挂科
中台架构详解(上) | 大咖说中台
Eth2 验证者快速启动器发布,还有什么惊喜是我们不知道的?
点分享
点点赞
点在看
登录查看更多
1

相关内容

最新《知识图谱:构建到应用》2020大综述论文,261页pdf
专知会员服务
289+阅读 · 2020年10月6日
【2020新书】高级Python编程,620页pdf
专知会员服务
235+阅读 · 2020年7月31日
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
194+阅读 · 2020年6月29日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
Legion 一款网络渗透工具
黑白之道
6+阅读 · 2019年6月21日
使用 C# 和 Blazor 进行全栈开发
DotNet
6+阅读 · 2019年4月15日
Kong 1.1 带来声明式配置与无数据库部署模式
开源中国
8+阅读 · 2019年3月28日
自动机器学习工具全景图:精选22种框架
深度学习世界
8+阅读 · 2018年8月23日
刚开始学编程?这几款小工具能让你事半功倍
【智能制造】智能制造的核心——智能决策
产业智能官
12+阅读 · 2018年4月11日
Arxiv
3+阅读 · 2019年8月26日
Arxiv
8+阅读 · 2018年5月15日
Arxiv
6+阅读 · 2018年3月12日
VIP会员
相关VIP内容
最新《知识图谱:构建到应用》2020大综述论文,261页pdf
专知会员服务
289+阅读 · 2020年10月6日
【2020新书】高级Python编程,620页pdf
专知会员服务
235+阅读 · 2020年7月31日
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
194+阅读 · 2020年6月29日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
相关资讯
Legion 一款网络渗透工具
黑白之道
6+阅读 · 2019年6月21日
使用 C# 和 Blazor 进行全栈开发
DotNet
6+阅读 · 2019年4月15日
Kong 1.1 带来声明式配置与无数据库部署模式
开源中国
8+阅读 · 2019年3月28日
自动机器学习工具全景图:精选22种框架
深度学习世界
8+阅读 · 2018年8月23日
刚开始学编程?这几款小工具能让你事半功倍
【智能制造】智能制造的核心——智能决策
产业智能官
12+阅读 · 2018年4月11日
Top
微信扫码咨询专知VIP会员