点击上方“朱小厮的博客”,选择“设为星标”

后台回复"书",获取

有关持续集成(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

想知道更多?描下面的二维码关注我

后台回复"技术",加入技术群

【精彩推荐】

  • 原创|OpenAPI标准规范

  • 如此简单| ES最全详细使用教程

  • ClickHouse到底是什么?为什么如此牛逼!

  • 原来ElasticSearch还可以这么理解

  • 面试官:InnoDB中一棵B+树可以存放多少行数据?

  • 微服务下如何解耦?对于已经紧耦合下如何重构?

  • 如何构建一套高性能、高可用、低成本的视频处理系统?

  • 架构之道:分离业务逻辑和技术细节

  • 星巴克不使用两阶段提交

点个赞+在看,少个 bug ????

CI/CD大幅减少甩锅!相关推荐

  1. CI/CD(持续集成构建/持续交付):如何测试/集成/交付项目代码?(Jenkins,TravisCI)

    Table of Contents CI(Continuous integration,持续集成) CD(Continuous Delivery, 持续交付) Different types of t ...

  2. 让天下没有难做的研发:解读阿里CI/CD、DevOps、分层自动化技术

    在互联网时代,产品快速迭代的重要性不言而喻.不管是传统企业还是初创企业,在提升研发效能方面都有很强的需求,如果能使用一套对项目流程管理和专项自动化提效工具,来支持项目的快速迭代发布,实现24小时持续集 ...

  3. 测试开发工程师成长日记010 - Jenkins中的CI/CD/CT(持续集成构建/持续交付/持续测试)

    CI(Continuous integration,持续集成) CI(Continuous integration,中文意思是持续集成)是一种软件开发时间.持续集成强调开发人员提交了新代码之后,立刻进 ...

  4. CI/CD的流程与概念

    一.流程 自动化部署 CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法.CI/CD 的核心概念是持续集成.持续交付和持续部署.作为一个面向开发和运营团队的解决方案,CI/CD ...

  5. 猪八戒网CI/CD最佳实践之路

    序言 本文旨在介绍ZBJ DevOps团队倾力打造的DevOps平台中关于CI/CD流水线部分的实践.历经三次大版本迭代更新的流水线,完美切合ZBJ各种业务发展需求,在满足高频率交付的同时,提高了研发 ...

  6. 推荐一些顶级的开源CI/CD工具

    持续集成.持续交付和持续部署(CI/CD)在开发社区中已经存在多年.有些组织已经有相应的运营工具,但许多没有.对于大多数组织来说,运营团队必须像开发团队一样熟悉CI/CD工具和实践. CI/CD实践对 ...

  7. DevOps笔记-06:什么是CI/CD?它们与敏捷开发和devops的关系?

    什么是CI/CD?它们与敏捷开发和devops的关系? 现在某些大型公司中软件的开发和发布已经形成了一套标准流程,其中敏捷开发和DevOps是更好更快发布产品的常用的两种理念,而CI和CD是实现这两种 ...

  8. CI/CD with drone

    drone是前google员工2013年开源的一个CI/CD工具,现在已经拉了投资商业化了.企业版是付费的,我们用的是免费版本. drone引入pipline的概念,整个build过程由多个stage ...

  9. 运维基础(6)CI / CD

    欢迎关注微信公众号[厦门微思网络].www.xmws.cn专业IT认证培训19周年 主要课程:思科.华为.红帽.ORACLE.VMware.CISP.PMP等认证培训及考证 在 CI /CD 和 De ...

最新文章

  1. 【Spring实战】—— 5 设值注入
  2. oracle删除unique key,【PK】Oracle 10g删除主键约束后无法删除唯一约束索引问题的模拟与分析...
  3. [译]SSAS下玩转PowerShell(三)
  4. python实现滑块验证功能_python3.8.1+selenium实现登录滑块验证功能
  5. 视觉SLAM总结——视觉SLAM十四讲笔记整理
  6. 15.17 对缺乏潜在类型机制的补偿
  7. P8实战(二):分布式锁前置技能 etcd 集群搭建
  8. C# 类的派生 输出个人信息
  9. ubuntu之apache正向代理及反向代理(ProxyPass\ProxyPassReverse)
  10. 手动实现bind函数(附MDN提供的Polyfill方案解析)
  11. google浏览器html不提示,谷歌浏览器不显示标签页怎么回事 谷歌浏览器不显示标签页的解决方法...
  12. 油猴子 Tampermonkey
  13. 感恩陪伴,链接未来 | Conflux杭州应用开发运营中心成立
  14. 太极计划——华夏民族软件腾飞的计划
  15. csapp-bomblab
  16. 2020 Deep Learning for Sensor-based Human ActivityRecognition Overview, Challenges and Opportunities
  17. Unifying Offline and Online Multi-graph Matching via Finding Shortest Paths on Supergraph
  18. 【限时干货】数据圈火爆的数据产品文章全集
  19. Core Bluetooth框架之一:Central与Peripheral
  20. 2011年3月份优秀PPT资源分享

热门文章

  1. php开启mysqlnd,如何启用mysqlnd的PHP?
  2. spring boot添加 LocalDateTime 等 java8 时间类序列化和反序列化的支持
  3. matlab plot subplot,Matlab使用subplot合并子图
  4. MySQL执行原理,逻辑分层、更改数据库处理引擎
  5. GraphQL入门2
  6. mysql数据库的快捷键
  7. Windows下的搜索神器 —— everything
  8. Radware发布2015-2016年全球应用及网络安全报告
  9. Linux命令:MySQL系列之十一--MySQL日志管理
  10. android WebView 显示网页