02 DevOps的价值:数字化转型时代,DevOps是必选项? 你好,我是石雪峰。今天我们来聊聊DevOps的价值。

前段时间,因为工作的缘故,我参访了一家在国内数一数二的金融企业。在跟他们科技处的同事交流的过程中,有一件事情让我非常吃惊,想跟大家分享一下。

虽然在一般人眼中,这家企业是典型的传统企业,但他们的绩效目标采用的却是OKR模式

我简单介绍一下OKR。OKR也就是目标与关键成果法,是在硅谷互联网公司很流行的绩效制定方法。简单来说,O代表目标,也就是我们要做什么,KR代表关键结果,用于验证我们是否已经达到了目标。

这家金融企业的大老板,也就是科技处的老大,给全体员工制定的众多OKR中,有且只有一条属于愿景指标。说出来你可能不相信,这个愿景指标就是,到今年年底,让DevOps在全行的三个试点项目中成功落地。

而且,这并不是简单的说说而已,如果最终达成了这个愿景指标,所有员工的年终奖将在原有的基础上上浮10%~20%。由此可见,关于实施DevOps,他们是在玩真的了。

全行的核心系统改造都没能成为愿景指标,那为啥DevOps会有如此大的魔力,让大老板都为之着迷,并且成为愿望清单列表中的第一名呢?这就是我今天要跟大家讨论的话题:DevOps的价值以及它对现代企业的意义。

如果要选一个近年来在各大企业战略中曝光率最高的关键词,数字化转型绝对是排名最高的,没有之一。

比如,传统汽车巨头大众公司今年宣布启动全面数字化转型,计划到2023年年底投资约40亿美元,实现管理和生产的数字化。而且,预计到2025年,大众集团的软件研发的比例将从目前的不到10%增长到60%。

为什么软件如此重要?

对于软件从业人员来说,这绝对是令人欢欣鼓舞的事情。同时,这也再一次印证了那句流传已久的名言,每一家公司都将成为软件公司。那么问题来了,在数字化转型时代,为什么软件会如此重要呢?

互联网的普及和移动通讯技术的发展所带来的移动互动网的兴起,深刻地影响了我们每个人的生活方式。

举个最简单的例子,几年前如果我们要办理银行业务,我们首先要找到附近的营业厅,抽空跑过去排号,经过很长时间的等待,才能坐到柜台前,同银行的柜员面对面地完成业务办理。当然这还是在顺利的情况下,如果忘记带证件或者排队人太多,可能还要再跑一次,办事成本相当高。

现在呢,大多数情况下,我们只要掏出手机,打开银行的APP,点击几下屏幕,业务就办好了,完全不用受时间和空间的限制。用户对银行服务的体验直接来源于手机应用本身。如果哪家银行的应用界面很丑,操作还总是出现各种问题,就会直接影响用户对这家银行的印象,甚至会在潜意识里觉得这家银行不靠谱。显然,没有任何一家银行愿意给人留下这样的印象。

所以,软件慢慢从企业内部的支撑系统和成本中心,变成了企业服务的直接载体和利润中心。企业通过软件降低运营成本,提升服务水平,而用户在获得便利的同时,也加强了同企业之间的联系。

这本是一件双赢的事情,可问题是,我们所身处的是一个VUCA的时代,VUCA是指易变性(Volatility)、不确定性(Uncertainty)、复杂性(Complexity)和模糊性(Ambiguity),它代表了这个时代的典型特征。比如共享单车这个行业从冉冉兴起炙手可热,到逐渐归于平静,前后不过短短几年的时间。

企业能快速满足用户的需求,在行业大势之下灵活转身,在跨界打击越发普遍的情况下脱颖而出,已经不仅仅是good to have的能力,而是must have的能力。

可以说,软件交付的效率和质量成了当今企业的核心价值和核心竞争力,所以,任何一家企业,无论是行业巨头还是初创公司,无论是互联网行业还是传统行业,无论是领先者还是颠覆者,都有强烈的意愿去改善自身的软件交付能力,而这恰恰和DevOps的理念和诞生背景不谋而合。这么看来,DevOps能够成为企业愿望清单中的第一名也就不足为奇了吧。

可是,即便软件如此重要,却依然有很多公司在用一种手工作坊的方式开发软件,引用国家智库的某位领导的话来说,“工业革命消灭了绝大多数的手工业群体,却催生了程序员这个现存最大的手工业群体”。这句话看似危言耸听,但这种开发软件的方式的确存在,其中伴随着大量的效率浪费。企业内部的软件开发交付效率已经成了一座值得探索挖掘的金矿,效率经济可能成为新的业绩增长点。

DevOps的价值

那么,实施DevOps带给企业的价值究竟是什么呢?要回答这个问题,我们就不得不提到DevOps业内非常著名的现状调查报告了。

高效的软件交付方式

从2014年至今,这个报告每年都会发布一份,由业内大咖和行业领袖基于科学的分析方法,通过大量的数据分析得出,可以说是业内最具权威性的报告,其中的很多数据和理念都被广为传播。我发现,在这洋洋洒洒大几十页的报告中,被引用频率或者说出镜率最高的,就是DevOps的4个结果指标。

  • 部署频率:指应用和服务向生产环境部署代码的频率。
  • 变更前置时间:指代码从提交到成功运行在生产环境的时长。
  • 服务恢复时间:指线上应用和服务出现故障到恢复运行的时长。
  • 变更失败率:指应用和服务在生产环境部署失败或者部署后导致服务降级的比例。

每年,这个报告都会基于这4个核心指标统计行业内高效能团队和低效能团队之间的差距。从去年的数据来看,与低效能团队相比,高效能团队的部署频率高了46倍,变更前置时间快了2500多倍,服务恢复时间也快了2600多倍,失败率低了7倍。

我们先不管这份数据是怎么计算出来的,当你第一次看到这个数据的时候,它带给你的冲击是不是很强大呢?用具体的数字形式来呈现企业之间效率的差距,是很有震撼力的。

而世界上最令人“绝望”的事情,就是那些比你优秀的人,实际上比你还要更加努力。当你仔细查看这份报告的时候,你会发现,那些常年被人提及的明星公司,很多都在践行DevOps,甚至很多来源于这些公司的实践案例,都成为了DevOps行业的经典案例。

另一方面,DevOps状态报告中提到的四项结果指标,分别代表了软件交付的两个最重要的方面,也就是交付效率交付质量。而且,从数据结果中,我们还能得到一个惊人的发现,那就是高效能的组织不仅做到了高效率,还实现了高质量,由此可见,鱼与熊掌可以兼得。

可是,这就颠覆了很多人心目中的“慢工出细活”的传统软件开发理念。因为按照传统软件开发的V模式来说,软件开发完成后,需要经过单元测试、集成测试、系统测试和验收测试等层层关卡,以此来保证软件的质量符合预期。但是,对于现代软件开发而言,如此重的流程和管控显然有点跟不上时代的节奏。

我们在不断提高软件交付效率时,往往是以牺牲质量为代价的,结果做得越多,错得越多,从而陷入进退两难的境地。

DevOps却反其道而行之,它试图通过体系化的研发实践导入、软件架构的整体革新、组织管理理念的不断升级和企业文化的影响塑造,来帮助企业改善整个软件交付过程,在实现高吞吐量的同时保证服务的总体稳定性,从而真正实现又快又好的软件交付目标。

激发团队的创造力

我们刚刚谈到的这些内容,当然是DevOps带给企业的重要价值,但并非全部。在专栏中,我不仅希望能跟你分享知识,还希望能跟你分享一些不同的观点,我们一起思考和讨论,获取灵感和新知。

之前,我在跟Jenkins创始人KK聊天的时候,他提出过这样一个问题:熟悉云计算的同学可能或多或少地了解过容器编排领域的事实标准Kubernetes以及它背后的CNCF基金会,那么,企业为什么热衷于加入这样的基金会呢?即使要付出一笔不菲的费用也在所不惜,企业这么做的收益究竟是什么?

不可否认,CNCF是一个非常成功的运营案例,成为会员还能享受白纸黑字上的福利,但是,对于很多中小企业而言,他们的诉求可能不止如此。

很多时候,企业加入这样的组织,也是为了向内部员工表态,我们正和世界上最著名的公司站在同一条起跑线上,关注着同样的问题。这对他们的员工来说,既能起到激励作用,也能增强对企业自身的信心。

对于DevOps而言,道理也是同样的,因为说到底,企业的问题都是人的问题,最核心的价值最终都会归结到人身上,所以,单纯关注软件交付的能力而忽视人的感受,结果往往都是片面的。

在企业内部建设DevOps工具平台的时候,我也经常在思考这个问题,我们费尽心思通过平台能力建设提升了5%的交付效率,即便节省下来的时间只是让员工多休息了一会儿,也是非常有意义的事情。因为DevOps本身也包含了改善软件从业人员的生存状态,提升他们的幸福水平的理念

这么看来,实施DevOps,一方面可以通过种种流程优化和自动化能力,改善软件开发团队的工作节奏,另一方面,也可以让大家关注同一个目标,彼此信任,高效协作,调动员工的积极性和创新能力,从而让整个团队进入一种积极创造价值的状态,而这所带来的影响远非建设一两个工具平台可比拟的。

总结

DevOps作为软件工程的第三次革命,在数字化转型的大潮之下,几乎成了所有通过交付软件来提供服务的企业的必选项。因为,DevOps不仅可以改善企业的软件交付过程,实现高质量和高效率兼得,同时也可以持续改善企业内部的工程师文化,提升员工信心,激发员工的活力和价值创造,从而帮助企业在VUCA时代占得先机,获得更大的成功。如果一家企业真的可以通过DevOps落地达到以上目标,而只需要多付出10%~20%的年终奖,岂不是大大赚到了吗?

思考题

最后,给你留一个思考题:如果你觉得DevOps可以解决公司现有的问题,想要跟领导申请立项的话,你会如何说明DevOps的价值呢?

欢迎在留言区写下你的思考和答案,我们一起讨论,共同进步。如果你觉得这篇文章对你有所帮助,欢迎你把文章分享给你的朋友。

参考资料

https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/DevOps%e5%ae%9e%e6%88%98%e7%ac%94%e8%ae%b0/02%20DevOps%e7%9a%84%e4%bb%b7%e5%80%bc%ef%bc%9a%e6%95%b0%e5%ad%97%e5%8c%96%e8%bd%ac%e5%9e%8b%e6%97%b6%e4%bb%a3%ef%bc%8cDevOps%e6%98%af%e5%bf%85%e9%80%89%e9%a1%b9%ef%bc%9f.md