开源如何驱动云计算的未来

还没有读者喜欢这个。
A person holding on to clouds that look like balloons

Opensource.com

1998 年,阿马蒂亚·森因其经济学成就而被授予诺贝尔奖。他发表的演讲,题为“社会选择的可能性”,简洁地概括了他的工作主题(将经济理论推广到涵盖由不同行为者组成的社会群体,而不仅仅是个人或公司)和他抑制不住的幽默感(因为这种推广适用于阿罗不可能定理)。森的关键见解(对我而言)是这样的(重点是我的):

因此,应该清楚的是,对社会选择的特定方法进行完整的公理化确定,必然与不可能性相邻——实际上只是略逊一筹。如果它远离不可能(具有各种积极的可能性),那么它就不能为我们提供任何特定社会选择方法的公理化推导。因此,可以预期,从公理推理得出的社会选择理论的建设性路径,将倾向于在不可能性结果(与多种可能性的一侧相反)的一侧铺平道路。关于社会选择理论(或其主题)的脆弱性的结论并没有从这种邻近性中显现出来。

我非常熟悉与不可能性的邻近。当我们创立 Cygnus Support 公司时,这是世界上第一家基于销售免费软件商业支持的公司,几乎每个人都认为这是不可能的。那些少数不这样认为的人认为,如此接近不可能将使这项业务过于脆弱而无法引起人们的兴趣,尤其是在硅谷的标准下。Cygnus 的成功[1]以及随后的红帽公司的成功[2] [3]有力地验证了森的大胆预测,即站在边缘并非软弱的标志。事实上,我们在哪里能找到领导者,而不是站在最前沿

以上所有内容都是本文主题的序言,本文的主题是提出一种新的经济范式,用于理解云计算的未来和潜力。如果运气好的话,比我聪明的经济学家将开发出正式的方法和分析,这将为他们赢得瑞典的认可。但无论运气如何,真正的受益者将是那些拥抱这种范式并从其显而易见的见解中获利的人。根据今天的反对者的说法,这些见解是不可能的,或者充其量是微不足道的,但实际上,它们是收回当前范式下每年浪费的数万亿美元商业价值的关键。

全球 IT 支出每年超过 1.5 万亿美元,企业正在(或应该)指望从这项投资中获得巨大的 IT 驱动回报。然而,18% 的项目在投入生产之前就被放弃了,另有 55% 的项目“受到挑战”,这意味着它们上市时间晚(有时非常晚)、存在缺陷(有时非常严重)或缺少功能(有时是关键功能)。这些缺陷的估计成本为每年 5000 亿美元,但这只是故事的一部分。预期 ROI 方面的不足是这个数字的 6 到 8 倍,这意味着每年有 3.5 万亿美元的预期商业回报从未实现[4]。每年都是如此。我想不出有其他任何行业可以容忍如此糟糕的绩效结果,但这正是我们对 IT 的期望。 这是不可持续的

这个问题一直如此顽固地根深蒂固,部分原因是这些数字不利于任何解决方案。失败的可能性非常高(肯定有 18% 的可能性完全失败,55% 的可能性错过截止日期、里程碑或应用程序的健康状况良好),这使得大约有 50/50 的可能性,即任何努力改善自己的应用程序环境实际上都会使情况变得更糟,即使在最好的情况下,也只能实现最初预期目标的 50%-80% [5]

但是,在另一个宇宙中,我们找到了一个可行的解决方案:开源世界,在那里,测量的软件缺陷率比典型的专有软件低 50 倍到 150 倍,并且创新步伐几乎每天都可以看到。对这种非凡现象进行解释的第一个(也是仍然最好的)经济分析是 Baldwin 和 Clark 的博弈论分析 [6],表明当系统是模块化的并且存在一个志同道合的(即,同样自私、懒惰和有能力的)开发者社区时,自私的开发者会从强制共享(非自愿利他主义)中受益。他们的结果还表明,结果具有高度可扩展性,并且系统越模块化,社区就越大,参与的回报就越大。这个正式的结果证明了蒂姆·奥莱利和许多其他人在谈到“参与架构”时观察到的现象 [7]。它也验证了我创立 Cygnus Support 时以及我从一开始就看到我们公司和社区之间发生的事情的直觉。

第二个发现是 Oliver Williamson 在其 2009 年诺贝尔奖演讲中解释的,是对治理经济学和组织经济学的形式化,特别是为了帮助回答以下问题:“哪些效率因素决定了公司何时生产满足自身需求的商品或服务,而不是外包?” [8]。长期以来,经济学家,以及专有软件行业,都将公司视为黑匣子,忽略了内部的所有细节,而只关注价格和产出作为唯一有趣的研究结果。威廉姆森建立了一个新的交易成本经济学理论,该理论基于约翰·R·康芒斯在 1932 年首次提出的工作,并在 1982 年 W. Edwards Deming 强烈呼应的工作 [9],即合同关系的连续性比简单的价格和产出更能有意义地预测长期价值。事实上,当在专有系统上花费如此之多,浪费如此之多时,这些系统的价格和产出几乎变得毫无意义。在极限情况下,将 IT 仅仅视为成本,而不是业务价值驱动因素的公司,已经陷入了一个很难摆脱的陷阱。 相比之下,参与架构,加上不断增长的效用函数(由于用户驱动的创新),表明戴明循环完全适用于软件,并且公司之间的长期关系比交易价格以求退出更能为所有相关方创造更大的价值。

那么,这对云计算意味着什么呢?一种假设是,云计算的宏观经济学使开源的微观经济学变得微不足道,因此无关紧要。如果这是真的,那么游戏就真的被固定了:云操作系统只是另一个操作系统,云应用程序就像传统的应用程序,云协议和管理工具仅仅是软件 API 和控制台等等。如果这是真的,那么我们都应该为“蓝色死亡之云”做好准备。

另一种假设是,开源是云计算的纳米技术,其纳米级特性(参与架构、增强的创新周期、质量和交易效率)对于未来的所有创新至关重要。我认为情况确实如此,不仅因为到目前为止提出的论点,而且因为云计算创造了一种新的归纳力,专门加强了刚才提出的论点。在这一点上,我不得不引入一个相当冗长的类比;请耐心听我说。亚马逊雨林中的一棵树每天可以蒸腾 300 升水,对于我们这些仍然使用英制计量系统的人来说,略低于半立方码的水。这似乎微不足道。但是,当考虑到整个亚马逊雨林时,这些树木不仅蒸腾的水量与亚马逊河本身的水量一样多,而且它们还推动空中的水传播得同样远、同样快,有效地在空中创造了第二条亚马逊河 [10]。将一棵树视为阴凉处、木柴资源、碳汇或任何其他离散用途是一回事,但是当镜头从小型规模变为大型规模时,其在更大背景下的功能是无法通过观察小型案例来想象的。亚当·斯密对市场看不见的手也说了同样的话,并不是说它总是做正确的事情,而是说它总是在做一些事情 [11]。 或者,正如甘地曾经说过的

你所做的一切都将是微不足道的,但是你去做这件事非常重要。

当我在 1987 年开始编写开源软件时,理查德·斯托曼是 GNU 项目的维护者,主存储库是他的本地磁盘,我的版本控制系统是 Emacs 备份文件,以及在较小程度上,以手动调整的发布号区分的频繁的 tarball 软件。合并更改是一个耗时的(有时是耗费精力的)过程,但斯托曼的代码以及当时与他一起工作的少数其他人的代码质量很高,以至于我可以在几周内完成公司几乎几年都做不到的事情。GNU C++ 编译器在六个月内开发并首次发布,与此同时,我将 GNU 编译器移植到六个新的架构。在那些日子里,我们管理软件变更的方式中存在的所有错误都代表着我们有机会开发一种新的软件管理范式,以在商业上支持客户。我们采用了新开发的 CVS(并发版本控制系统),有一段时间,世界是我们的。

在五年内,我们在我们想象的许多方面都取得了成功:入选 Inc 500 强榜单、Software 500 强榜单、《财富》杂志特刊的封面,甚至在《纽约时报》和《华尔街日报》上被提及。但我们在我们没有想象到,也没有为此设计的方式上取得了成功。我们把 CVS 延伸到了它的临界点。签署一个新客户意味着可能在主存储库中创建一个新的客户分支。这个过程曾经可以在几分钟内完成,现在可能需要一天时间。这意味着,如果一年有 200 个工作日,如果我们那一年签署了 200 个客户,那么开发人员将正好有零天的时间来针对存储库进行任何工作。这经常导致关于分叉的争论——开发人员希望在不受操作瓶颈约束的存储库中工作,但必须有人合并可以交付给客户的更改。分叉的成本变得难以忍受,我们不得不设计的社会选择是降低客户和员工的期望。尽管存在这些缺点,但相对而言,我们表现出色,定制编译器和调试器的开发和交付按时且在预算内完成的比例为 98.5%。

但现在情况不同了,在一个破碎的范式中做到最好是不够的。在过去的五年中,一个名为“git”的程序彻底改变了开发人员和维护人员管理代码的方式,以及代码如何在瞬间被调用到生产中,有时只是一瞬间。git 重组了开源世界,使得分叉既不昂贵也没有问题,并且项目可以如此轻松地合并和组合,以至于几乎可以将其视为一种量子叠加。这种改变不仅解决了旧方法(在 Cygnus 和 FSF)中瓶颈的问题,而且开启了关于应用程序本身可能是什么的全新概念。它不再是难以创建、测试成本高昂且无法更改的庞大代码纠缠,而变成了代码和数据的瞬间实例,在消失回以太之前产生精确请求的结果。在任何时刻,新代码、新数据、新 API 和新使用环境都会指导每一代应用程序的演变。每分钟都在演变的应用程序与每隔一两年才演变的应用程序(无论承诺甚至交付了多少新功能)从根本上是不同的。

这种快速的新的进化维度——在应用程序/操作层面——需要一种新的经济分析。幸运的是,基础已经奠定:进化博弈论研究了反复进行战略互动的代理人群体的行为 [12]。群体中行为的改变是由自然选择通过出生率和死亡率的差异驱动的,或者是由个体代理应用近视决策规则驱动的。在 David Upton 博士的文章《彻底简化的 IT》[13]中,描述了一种部署模型,其中系统的所有现有功能都以至少两种状态存在——原始状态和修改后的状态。受容错系统设计的启发,该系统始终通过并行运行独立系统来避免单点故障,新功能可以作为可选模块与现有系统并行添加。当新功能被判断为在操作上完整且正确时,系统可以将旧模块“故障转移”到新模块,如果在之后检测到问题,系统可以“故障恢复”到原始模块。通过始终并行运行所有版本,始终可以获得某种版本的正确答案,同时也可以获得某种版本的新且更好的答案。当日本东京的新生银行实施此方法时,该银行的运营里程碑实现速度比使用传统部署方法快 4 倍,并且成本仅为 1/9。通过设计他们的系统以实现最大的适应性(而不是最大的初始功能),他们能够如此成功地适应客户的需求和期望,以至于他们连续两年被公认为忠诚度和满意度排名第一的银行。当阿联酋航空集团(在新生银行的经验指导下)实施相同的方法时,结果甚至更加令人印象深刻 [14]

低成本分叉(使新软件世代非常丰富和多样化)和可以轻松选择给定世代中最适合代码的操作模型的结合,创造了一个超强的戴明循环,实现了可持续的创新、质量和价值。 但是,为了使这个循环有效,代码本身必须易于创新。专有软件的黑匣子定义了人口驱动的创新停止的点。为了充分实现开源创新的人口动态的好处,源代码必须在系统的每个级别都可用。

我们无法通过使用创造问题时使用的相同思维来解决问题。——阿尔伯特·爱因斯坦

为了总结这个相当深远的论点,企业 IT 界一直受困于一种错觉,认为只要我们在足够多的黑盒子上投入足够的资金,其中一个肯定会解决我们最初的任务所要解决的问题。 即使这是真的,世界变化的速度如此之快,以至于解决过去相关的问题很可能在未来不再相关,尤其是在该问题仅仅是更深层次问题的症状的情况下。 近期经济理论的研究结果表明,价格和产出分析往往会揭示症状,但很少能发现真正可持续的解决方案。 但是,对治理、交易和互惠互利的经济理解不仅可以为可持续的解决方案提供信息,还可以促进持续的、可持续的创新,从而创造不断增长的商业或社会价值。 演化博弈论为从专有应用程序向云计算转变的国家级和企业级分析提供了一个框架。 诸如金融资本、知识资本、商业价值潜力以及信任资本等因素既影响跨群体自然选择的过程,也影响群体内代理人的短视决策。 开源软件实现了专有软件禁止的重要机制,从根本上改变了连续几代(云)应用程序的进化速度和质量。 或许没有比拥抱开源云计算并超越专有应用程序和平台的问题,从而为企业、国家或全球账户增加更多价值更简单或更快的方法了。 这只需要你做一些事情——作为开源社区的一员——无论它看起来多么微不足道。

标签
User profile image.
Michael Tiemann 是一位真正的开源软件先驱。 三十多年前,他编写了 GNU C++ 编译器,即第一个本机代码 C++ 编译器和调试器,从而为开源事业做出了他的第一个重大贡献。 他的早期工作促成了领先的开源技术和第一个开源商业模式的创建。

评论已关闭。

Creative Commons License本作品采用知识共享署名-相同方式共享 3.0 未本地化版本许可协议进行许可。
© . All rights reserved.