作者 | 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 验证者快速启动器发布,还有什么惊喜是我们不知道的?
点分享点点赞点在看

一文读懂 CI/CD 工具相关推荐

  1. stata 求输出相关系数矩阵命令_一文读懂结果输出命令大全(上)

    目录 描述统计量 help tabstat   //Stata 官方命令 描述统计量组间均值差异检验 help ttest help ttable2 help estout 相关分析命令 help p ...

  2. 从实验室走向大众,一文读懂Nanopore测序技术的发展及应用

    关键词/Nanopore测序技术    文/基因慧 随着基因测序技术不断突破,二代测序的发展也将基因检测成本大幅降低.理想的测序方法,是对原始DNA模板进行直接.准确的测序,消除PCR扩增带来的偏差, ...

  3. AI洞观 | 一文读懂英特尔的AI之路

    AI洞观 | 一文读懂英特尔的AI之路 https://mp.weixin.qq.com/s/E9NqeywzQ4H2XCFFOFcKXw 11月13日-14日,英特尔人工智能大会(AIDC)在北京召 ...

  4. 一文读懂大数据平台——写给大数据开发初学者的话!

     一文读懂大数据平台--写给大数据开发初学者的话! 文|miao君 导读: 第一章:初识Hadoop 第二章:更高效的WordCount 第三章:把别处的数据搞到Hadoop上 第四章:把Hado ...

  5. 一文读懂密码学中的证书

    一文读懂密码学中的证书 之前的文章中,我们讲到了数字签名,数字签名的作用就是防止篡改和伪装,并且能够防止否认.但是要正确运用数字签名技术还有一个非常大的前提,那就是用来验证签名的公钥必须真正的属于发送 ...

  6. | 一文读懂迁移学习(附学习工具包)

    当一个CNN用于另一个领域,就使用到了迁移学习.迁移学习是一种用于模型领域泛化和扩展的工具. 文章链接:独家 | 一文读懂迁移学习(附学习工具包) 参考:当深度学习成为过去,迁移学习才是真正的未来? ...

  7. 一文读懂Docker及其对系统管理员的重要性

    作者 | Damian Perera 编译 | 火火酱,责编 | Carol 出品 | CSDN云计算(ID:CSDNcloud) 自从Docker在2013年初上线以来,就与程序员及系统管理员之间产 ...

  8. 你真的懂数据分析吗?一文读懂数据分析的流程、基本方法和实践

    导读:无论你的工作内容是什么,掌握一定的数据分析能力,都可以帮你更好的认识世界,更好的提升工作效率.数据分析除了包含传统意义上的统计分析之外,也包含寻找有效特征.进行机器学习建模的过程,以及探索数据价 ...

  9. mysql 默认事务隔离级别_一文读懂MySQL的事务隔离级别及MVCC机制

    回顾前文: <一文学会MySQL的explain工具> <一文读懂MySQL的索引结构及查询优化> (同时再次强调,这几篇关于MySQL的探究都是基于5.7版本,相关总结与结论 ...

最新文章

  1. SHAREPOINT2010数据库升级2013
  2. 【GCN】万字长文带你入门 GCN
  3. 英特尔反驳质疑:芯片供应充足、10nm量产没问题
  4. Java代码使用Spark on Yarn 方式提交任务到带Kerberos认证的Hadoop集群
  5. mysql 日期减法_日期格式处理的几种方法
  6. 为什么总线要用一根来表示一bit
  7. python使用del保留字定义一个函数-Python使用什么保留字定义一个函数。
  8. 【python数据挖掘课程】十五.Matplotlib调用imshow()函数绘制热图
  9. git+github入门
  10. matlab 自适应噪声对消,基于Matlab的RLS自适应语音噪声对消系统的设计与实现
  11. Ubuntu 16.04 安装 Apache, MySQL, PHP7
  12. Kali linux 渗透测试(五)——渗透WPS攻击
  13. mtk驱动sensor移植
  14. java前端vml_在Web中使用JavaScript和VML实现WebGIS中的测距
  15. keil编译后MCU需要的flash和RAM容量
  16. CTF unserialize3
  17. python中国大学慕课网_高级语言程序设计(Python)中国大学慕课搜题网站
  18. 华盛顿大学计算机专业硕士申请,华盛顿大学计算机科学与工程理学硕士研究生申请要求及申请材料要求清单...
  19. 微信小程序超出内容换行
  20. 十年育林,百度NLP已枝繁叶茂

热门文章

  1. JS正则表达式的分组匹配
  2. stderr和stdout详细解说
  3. 社招2017-阿里、网易、滴滴共十次前端面试碰到的问题
  4. 20145305 《信息安全系统设计基础》第13周学习总结
  5. sublime text 2 学习(一):快捷键
  6. ModuleNotFoundError: No module named ‘distutils.util‘
  7. kmp算法next计算方法_KMP 算法详解
  8. 项目管理excel_项目管理甘特图是什么?怎么做才能更高效?(EXCEL制作甘特图详细步骤)...
  9. python查找字符串所在行_使用Python CSV和glob查找匹配的字符串和打印行
  10. 《推荐系统笔记(十一)》Learning to rank(LTR排序问题)的介绍和RankNet算法(内含详细推导)