为什么 DevOps 会一直火下去?

大家好,我是小姜。

DevOps发展至今已有多年的时间,毫无疑问将在2021年持续发展。由于许多组织都在寻求围绕其数字化转型的最佳实践,因此了解组织领导者对DevOps行业的发展方向非常重要。

 

乐天株式会社高级DevOps工程师NiravChotai表示:

DataOps将在2021年蓬勃发展,发生的疫情可能会在其中发挥作用。数字内容的消费量猛增,这要求自动扩展和自我修复系统的自动化达到新水平,以满足增长和需求。”

 

杰蛙科技公司副总裁Stephen Chin说:

“2020年加速了远程工作,加快了向云端的迁移,并将DevOps从最佳实践转变为每个业务的重要组成部分。随着我们进入2021年,该行业将在多个方面接受混合。2021年的赢家将是积极接受业务、模型和产品混合的公司。”

 

还有很多行业大佬都认为DevOps将会在2021年继续发力,下一个5年会是DevOps的黄金时代。

 

本篇文章内容大纲:

  1. DevOps的常见误区
  2. 什么是DevOps
  3. DevOps、敏捷开发、精益开发的关系
  4. DevOps实践落地的效果

 


 

DevOps的常见误区

在我们开始介绍前,首先需要消除一些关于DevOps的常见误区。

误区1:DevOps是敏捷的分支

DevOps并不是敏捷的分支,而是吸收了敏捷的「快速交付」,并在敏捷的基础上延展到整体交付、整个组织、整个流程以及整个价值链。

 

误区2:DevOps只是工具和自动化

DevOps不只是简单的一组工具和自动化流程。很多团队在使用DevOps实践前,只采用一些方法或工具,但却忽视最基础的理论和原则,所以结果并不理想,就像给没经过训练的人提供了武器一样,会造成可怕的误伤。

 

误区3:DevOps会导致人员失业

有些人错误的认为DevOps意味着开发人员将所有业务自己做。而实际是在DevOps的流程下,运维人员会在项目开发期间就介入到开发过程中,了解开发人员使用的系统架构和技术路线,从而制定适当的运维方案。而开发人员也会在运维的初期参与到系统部署中,并提供系统部署的优化建议。

 

什么是DevOps?

 

刚刚介绍了DevOps的3种常见误区,其实造成这些误区的主要原因,在于DevOps有很太多五花八门的定义,久而久之造成了大家的误解。

那么DevOps到底有没有一个权威的定义呢?

 

荷兰EXIN DevOps Foundation 官方认证培训教材——《DevOps精要:业务视角》的作者Olrg Skrynnik给了DevOps一个定义:

“DevOps是对「敏捷软件开发」与「精益生产思想」的演变,应用于IT端到端的价值链中,使得业务基于现代信息技术,并通过文化、组织与技术变革来获得更大的成功。”

 

ps:《DevOps精要:业务视角》完整版pdf精华汇总,可以加我微信【ghgj329】免费领取。

 

我们把这句话拆成几个组成部分,以方便强调其中的关键点:

  • 敏捷软件开发+精益生产思想的一种演进
  • 应用到IT端到端的价值链中
  • 使得业务基于现代信息技术(虚拟化+云技术)
  • 通过文化(人)+组织(流程)+技术变革(自动化技术)= 价值

这实际上是一个很好的以结果为中心的定义,稍微有点抽象,但是并不难理解。反正它不是某一个特定软件、工具或平台的名字。

 

DevOps、敏捷开发、精益开发的关系

 

刚刚在关于DevOps的定义中,为什么说DevOps是敏捷开发和精益生产的演变,他们三者之间是什么关系呢?如果说「演变」这个词比较难理解,可以用「吸收」这个词来代替。

 

那么DevOps分别吸收了「敏捷开发」和「精益生产」的什么理论?

敏捷开发:

随着时间的推移,用户的需求不断增加,与此同时,用户的耐心却越来越少。在这个情况下,大家发现,笨重迟缓的瀑布式开发已经不适合了,于是敏捷的诞生了。

 

DevOps是吸收了敏捷的「快速发布」的思想,这里就会提到3个经常提的关键词:CI和CD,即持续集成(CI)、持续交付(CD)和持续部署(CD)

 

下面这个图可以让大家更方便的理解。对比前面所说的瀑布式开发和敏捷开发,我们可以明显看出,DevOps贯穿了软件全生命周期,而不仅限于局部开发阶段。

精益生产:

我们刚刚强调了DevOps的定义,第2条「应用到IT端到端的价值流中」

 

在敏捷开发中并没有体现这个概念,敏捷团队仅仅是提交代码-测试代码,然后无限重复这个循环,这里还是一个局部开发的过程,只是开发变快了,并没有考虑到整体的价值链。

 

所以DevOps的关键概念之一“价值链或叫价值流”,这个重要的概念借自于「精益生产」在精益生产中,「价值流」非常关注「浪费」这个概念。浪费是对于期望获得的成果非必需的且通过改变流程可以避免或最小化的动作。

价值流有什么价值呢?

 

价值1:价值流有助于识别和消除瓶颈,避免掉入局部优化的陷阱,避免在一个优化点浪费太多的时间和精力。在任何时间点上,有且只有1个真正的瓶颈,是这个瓶颈拖慢了工作,同时,花在除了消除这个瓶颈点之外的精力,都是浪费。

 

价值2:通过价值流“可视化”呈现,员工聚焦在创造的价值上,而不只是实施的动作上,员工和管理者都能更好的理解自己的日常任务。


如果用一句话总结精益生产,其主要研究时间和效率,消除所有浪费,注重提升系统的稳定性。

 

DevOps实践落地的效果

 

好了说了这么多,DevOps究竟能为企业带来什么效果?

 

Nicole Forsgren在《加速:精益软件和DevOps的科学》中断言:

“我们研究计划的发现清楚地表明,采用DevOps的价值甚至比我们最初认为的还要大,并且高效者与低效者之间的差距继续扩大。”

 

他们的研究发现,与低效的团队相比,高效的DevOps团队具有:

  • 日常代码部署频率提高46倍
  • 从提交到交付时间快440倍
  • 平均修复时间快170倍
  • 变更失败率降低5倍(系统变更失败的可能性为⅕)

这四个关键指标涵盖了整个DevOps流程,这表明快速的开发和操作的稳定性都是提高软件交付性能所不可或缺的指标,而且彼此之间并不矛盾。

 

自 2009 年提出 DevOps 的概念起,很多公司都开始实施 DevOps,国外比较著名的有Adobe、Apple、Airbnb、亚马逊、谷歌、易贝、Etsy、Facebook、领英、NASA、星巴克、Target(泛欧实时全额自动清算系统)、沃尔玛、索尼等,亚马逊是 DevOps 最佳实践的最有说服力的代表之一。

 

国内著名的有百度、华为、阿里、腾讯、中国银行、招商银行、华夏银行、中国工商银行、中国民生银行、中国农业银行、国家开发银行等。

 

好了,这期文章就到这里结束了,只是简单带大家了解一下DevOps的误区、定义、价值和实际效果。

 

想要更深一步的了解DevOps的同学可以加我微信【ghgj329】进群交流,群内会定期分享DevOps相关直播、资料分享以及话题讨论。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: DevOps 是一种新的软件开发方法论,它将软件开发、质量保证、运维和运营四个领域结合起来,提高软件产品的质量和效率。 DevOps 的核心思想是通过提高团队协作和自动化流程来缩短产品上线周期,提高软件的可用性和安全性。 ### 回答2: DevOps是一种结合了开发(Development)和运维(Operations)的文化、方法和实践。它旨在通过软件开发团队和运维团队之间的协作和沟通,打破传统的分工模式,实现软件开发、测试、交付和部署的流程自动化、持续集成和持续交付。 DevOps的核心理念是通过自动化工具和流程,将开发和运维环节紧密结合起来。它鼓励开发和运维人员共同参与从软件的开发阶段到部署和运行阶段的整个生命周期。开发人员与运维人员之间的协作和沟通可以减少问题和错误,提高软件的质量和稳定性。 DevOps重视持续集成(Continuous Integration)和持续交付(Continuous Delivery),通过频繁地集成代码和自动化的测试,能够快速发现和修复问题。持续交付则指的是能够在任何时候将可靠的软件版本交付给用户,实现更快速、更可靠的软件交付。 DevOps还注重监控、日志和问题解决。通过实时监控系统性能,快速捕获问题并及时解决,可以降低系统故障和停机时间,提供更好的用户体验。 总而言之,DevOps帮助开发和运维团队建立合作、高效的工作流程,加速软件开发和交付过程,提高软件质量和稳定性,满足当今快速迭代的软件开发需求。 ### 回答3: DevOps是一种软件开发和运维的方法论和文化。它通过将开发团队和运维团队紧密结合,促进沟通和协作,实现高效的软件开发和持续交付。 DevOps的核心理念是将软件开发和运维视为一个整体,强调开发人员和运维人员之间的协作和共同责任。传统上,开发和运维是两个独立的部门,存在着沟通障碍和合作困难。DevOps通过打破这种壁垒,使开发和运维团队能够更紧密地合作,共同解决问题,提供快速响应和高质量的软件交付。 在DevOps中,自动化是一个重要的概念。通过使用自动化工具和流程,可以减少手动劳动和错误。软件开发和部署过程中的许多重复、繁琐和容易出错的步骤可以通过自动化来处理,提高效率和质量。此外,DevOps还强调持续集成和持续交付的实践,通过频繁地进行代码集成和部署,快速反馈和修复漏洞和问题。 DevOps还注重监控和日志的重要性。通过实时监控软件的性能和运行状态,可以及时发现和解决问题,避免发生严重的故障。同时,收集和分析日志可以帮助开发人员改进代码和系统设计,提高软件的稳定性和可靠性。 总结来说,DevOps是一种团队合作的方式,通过结合开发和运维团队,借助自动化工具和流程,追求快速、高质量的软件开发和交付。它强调协作沟通、自动化和持续改进,旨在提高效率、减少错误和改善软件质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值