从集装箱历史看DevOps的发展进程
网友 网络收集

  带着问题,我们先看一个例子:在工业革命时期,瓦特用于“改良”蒸汽机的技术,就是极大提升效率的技术。

  这里有一个误解,有人认为瓦特发明了蒸汽机。其实不然,瓦特只是改良了纽卡门蒸汽机,通过橡胶增加密闭性同时优化机械结构,使得原本只能用于提水的笨重机器,变得能被广泛应用,为第一次工业革命的兴起奠定了重要基础。

  从上面的例子可以看出技术含量的高低与带来生产力的大小并没有直接关系。

  传奇的集装箱

  我们来看另外一个有趣的故事,希望你能从中得到启发。那就是改变运输业、对制造业有着深远影响的一项革命性技术——集装箱(英文 container,你没看错,它的名字和现在火的一塌糊涂的“容器技术”同名 )。

  说到集装箱不能不提马尔科姆·麦克莱恩(1915—2001),20 世纪四十年代美国一家运输公司的老板,由于改造(改造不是发明)了集装箱、提高了集装箱的便利性,推动了整个运输行业的巨大变革,而被尊称为“集装箱运输之父”。

  那么问题来了:改造蒸汽机也许有些技术含量,但是技术含量连罐头都不如(抽真空和密封技术)的集装箱怎么可能有这么大的影响呢?

(集装箱之父麦克莱恩:改造不仅限于集装箱本身,还包括港口和货轮等运输环节)

  我们知道工业社会最重要的竞争来自于节约成本,如果一个技术可以节省 95% 的成本就相当于带来 20 倍的效率提升。这种技术可以说是颠覆性的,而集装箱就是这样的技术。

  麦克莱恩在纽约港第一次做的集装箱运输实验就实现了 20 倍的效率提升:使用集装箱运输啤酒,将每吨啤酒的运输成本从 4 美金变成 20 美分。

  过程是这样的:从啤酒工厂把啤酒装入集装箱开始,通过陆路转海路运输到目的地,省去了工厂到陆路运输、再到海洋运输的中间人力搬运过程,因此从工厂到码头的装卸时间大大缩短,由数天压缩到数小时,从而使得美国到欧洲的货运时间足足减少了 4 周。并且由于集装箱的堆叠使得每一艘船只的储运量比以前提高了 6 倍。

  在传统运输过程,货物没有统一的包装标准,这既限制了运输工具的运载量,又增加了货物在从陆路运输到海路运输低效的手工搬运过程。集装箱这个标准化的运输单元,就为在整个运输系统优化中间流转效率提供了一种可能。

  (运输体系中间环节)

  看到这里,我不由得联想到传统软件研发测试与发布的过程。虽然每个过程内部自动化程度很高,但是部门之间的流转却依靠低效的手工操作,这些过程大大降低了整体效率。

  系统性创新的窘境

  但是非常意外的是,麦克莱恩在接下来 10 多年的航运生意中不仅没赚到钱,反而是亏损了。这就太奇怪了,一个能让效率提升 20 倍的技术,为什么会不赚钱呢?

  原因在于,在当时的运输行业,大部分货物并没有使用集装箱,大量的手工搬运使得船只装卸货物并没有节省多少时间,还有集装箱运到目的地后,箱内的货物需要分别运到不同的地方等等。

  因此集装箱技术并不在于“箱子”本身,而在于需要整个运输系统的创新——在道路、桥梁、卡车、码头和吊装设备等基础设施没有针对“箱子”进行优化的情况下,集装箱技术无法发挥出原有的效能。

  让我们回到最开始的问题:“什么样的技术会带来生产力的极大提升呢?”

  那些创新了人与事物连接方式,且极大降低这种连接成本的技术,才能真正促进生产力的提升。

  DevOps 正是这样的技术,它是针对研发系统的一次系统性创新。其创新性在于针对整个研发系统中的各个子系统进行交付与反馈的优化,从而有效提升整体效率。

  相对于传统软件 6 个月发布一次,2009 年 John Allspaw 和 Paul Hammond 在 Flickr 可以实现每天发布 10 次,将软件发布频率提升了将近两千倍,极大地降低了软件发布的成本。

  但是大部分公司在实施 DevOps 的过程中,并没有有效提升发布频率,这一点与集装箱在最开始的 10 年内并不赚钱的道理是相似的。

(应用研发平台:描述构建软件包,在不同的环境进行测试、最终发布生产环境的过程)

  问题在于系统性创新初期,各个环节没有对新技术进行优化,部分环节甚至会阻碍新技术发展,导致新技术无法提升效能。

  转机带来的启示

  一切直到 1967 年才出现转机。美国发动了越南战争,美军需要将大量物资运输到亚洲。在长期的优化实践中,美军得出高效运用集装箱的 3C 原则:一种货物、一个地址、一个客户。

  从此,集装箱的时代到来了。只在 1967 年一年的时间里,麦克莱恩就从美国国防部赚了 4.5 亿美金。低廉的海运成本、大大缩短的运输时间以及到货时间的可预期,让全球制造业的分工协作效率得到极大的提高。行驶在大洋上的货轮,就像在生产车间里运输原材料的叉车一样,使得制造业不必大量囤积原材料,后来丰田的“零库存”计划更是将原料的管控能力发挥到了极致。

  为什么 3C 原则可以极大提升效率?它正是通过解决运输“中间环节”过程的低效问题,使得总体效率得到极大提升。下面分别加以说明:

  • 一种货物:在货物“装箱”过程,统一货物的来源与种类,标准化货物装箱过程。

  • 一个地址:在货物“分拣”过程中,不会打开集装箱,只做一次装箱。

  • 一个客户:在货物“送货”过程,只有一个客户,简化送货的过程。

  DevOps 流程的 3D 原则

  与如何高效利用集装箱类似,在 DevOps 实施过程中,通过优化流水线中间流转过程,提升总体效率。

  下面举出与 3C 原则对应的 3D 原则:

  • 一键式部署(Automatic Deploy):部署过程中,标准化部署过程,实现一键式部署

  • 一次构建打包(Automatic Delivery):在测试环境、UAT 环境和生产环境的流转过程中,只打包一次,软件包按顺序自动交付到各个环境,最终发布到生产环境

  • 一次配置分发(Automatic Distribution):在生产环境发布过程,建立统一的配置分发管理,将繁琐的分布式环境配置一次分发到各个数据中心,简化发布过程。

  “科技是第一生产力!”如果我们以技术含量来衡量一个创新会很容易走入误区。集装箱发展历史告诉我们,从状态的流转环节入手,降低流转成本是提高总体效能的另外一个途径。

  集装箱发展历史的前十年完成了道路、桥梁、隧道、卡车、码头设施、吊装设备的优化,以适应集装箱的发展。这个进程的难点在于,以一家运输企业推进整个运输体系针对集装箱的优化。

  随着技术的发展,DevOps 的周边环节正在逐步完善,DevOps 实施的 3D 原则,也让我们走入故事的后半段,就像集装箱的故事那样。


CIO之家 www.ciozj.com 公众号:imciow
关联的文档
也许您喜欢