IBM Think 2019 leaders

在 2019 年 2 月 12 日-15 日的 IBM Think 2019 大会上,IBM 董事长、总裁及首席执行官 Ginni Rometty 亲自参与了除主旨演讲之外的唯一一个分论坛并担任对话环节主持人,这就是“开源:企业的未来和创新的基石”分论坛。参与分论坛的除了 Rometty 外,还有 Cloud Foundry 执行总监 Abby Kearns、Linux 基金会执行总监 Jim Zemlin、Redmonk 联合创始人 Steve O’Grady、Morgan Stanley 执行总监 Marcelo Labre 和 AT&T 实验室总裁及 CTO Andre Fuetsch。

究竟开源这件事对 IBM 有多么重要,以至于 Rometty 要亲自站台并担任对话环节主持人?在 2018 年,IBM 还耗资 340 多亿美元收购了 Red Hat 红帽公司,这是一家专注开源领域长达 25 年之久的软件公司。然而,可能令外界意外的是,收购红帽公司并不 IBM 唯一在开源软件方面的投入。实际上,IBM 对开源领域投资可以一直追溯到 Linux 时代,而著名的 WebSphere Application Server 的 70%以上都是开源的,包括了 700 多个开源组件。

在广泛的范围内,IBM 参与上千个开源项目和社区。除了大量采用开源代码外,IBM 还是向 GitHub 组织和代码库提供开源代码贡献最多的公司之一。

IBM 对开源项目的重大贡献包括

  • 将 Java 运行时 J9 作为 Eclipse OpenJ9 孵化器贡献给了 Eclipse 基金会
  • 将用于 Java EE 和 MicroProfile 应用程序的 OpenLiberty runtime 贡献给了 openliberty.io
  • 向开放区块链项目 Hyperledger Fabric 贡献了源码
  • 向 Apache OpenWhisk 贡献了无服务器平台源码
  • 开放了 IBM 量子计算 API Qiskit
  • 开放了 IBM AI Fairness 360 工具包(AIF360)和 AI Robustness Toolbox (ART)
  • 开放了多个分析项目源代码并成为 Apache Toree 和 Apache SystemML
  • 以及过去 3 年里还有超过 100 个其它贡献

大胆押注开源二十年

IBM Think 2019 Ginni

IBM 对于开源开放的承诺以及实践,远远超过了很多人的想像。IBM 是很多开源社区的创始成员和最高级别会员,是很多开源项目和社区的肇始者以及战略支持者,包括 Linux、Apache、Eclipse 等,IBM 一直在推动开源协议、开放治理和开放标准。1990 年代,IBM 为支持 Linux 而缴纳了 10 亿美元的专利费,并提供技术资源以及资助了 2000 年 Linux 基金会的成立。

1999 年,IBM 帮助创建了 Apache 软件基金会,提供了上万行代码和资源以支持 Apache Web Server Project。IBM 是 Apache 软件基金会的创始赞助商之一,帮助塑造了开源许可和治理规范,并为众多项目做出了贡献。自推出 Apache 软件基金会以来,IBM 员工一直在组织内部和 Apache 软件基金会董事会担任领导职务。二十年来,Apache 软件基金会上有近 200 个项目,包括 Web 技术、XML、Web 服务、文档处理、移动、云、大数据和分析、无服务器和消息传递等,显然 IBM 一直在创建和领导开放环境下的合作与创新。

一个典型的但可能不被很多人注意到的例子是 Eclipse 开源项目和基金会。2001 年,IBM 开发了 Eclipse 项目并引导了 2004 年 Eclipse 基金会的成立。IBM 向 Eclipse 开源项目贡献了大量的源码、开发者以及开源协议的法律咨询援助,今天的 Eclipse 作为一个 Java 开源开发平台,还能以插件方式集成使用多种开发语言,支持包括 C/C++、COBOL、PHP、Android、Python、R 等等。著名的 IBM Rational Software Architect 就是基于 Eclipse,它是 IBM Java 开发工具系列的基础。

2019 年 2 月是 Eclipse 基金会成立 15 周年,Eclipse 基金会执行总监 Mike Milinkovich 撰文称:在 2004 年 Eclipse 基金会成立时所形成的开源社区运作模式,今天已经非常为人所熟知,而 2004 年的时候其实还是非常新鲜的事物。

Eclipse 基金会成立的时候有 50 个创始成员公司,包括 IBM、SAP、HP、Intel 等,而今天已经发展到 275 个,其中 IBM 和 SAP 一直是战略参与者;Eclipse 基金会成立初期只有 12 个开源项目,今天已经发展到 360 个,开源 Committer(对开源项目核心模块和系统架构有较大代码贡献者)从最初的 150 名(基本上全是 IBM 工程师)到今天的 1600 多名广泛的代码贡献者;Eclipse IDE 集成开发环境已经从最初的桌面软件开发工具,发展到今天支持物联网、自动驾驶、地理空间和云原生 Java 运行时等丰富的开发应用场景;2018 年,随着 Java EE 从 Oracle 迁移到了 Eclipse 基金会的 Jarkarta EE,Eclipse 的项目达到了历史新高。

不要忘了,在 2001 年的时候,IBM 向 Eclipse 开源社区贡献了当时价值 4000 万美元的软件代码(IBM VisualAge)给当时刚成立的 Eclipse Consortium 协会,该协会当时已经聚集了 150 家领先的软件开发工具供应商,超过 63 个国家的 1200 多名独立开发者已经参与到 Eclipse 协会的运作。Eclipse 的初心是为所有开发者提供一个单一、统一体验的软件开发流程和集成包括测试、性能调优、排除 Bug 等所有软件开发任务的开发工具及环境,当时几乎所有的软件开发工具供应商都参与到了 Eclipse 项目中。

2001 年的时候,来自 IT 咨询公司 Illuminata 的分析师 James Governor 就此评价道:这是 IBM 最大胆的开源“赌注”。Eclipse 免费面向开发者,它对软件开发的意义,不亚于 Linux 对于操作系统的意义。而 IBM 则在开源 Eclipse 的基础上,提供商用开发工具和服务,以支持业界广泛开发基于 Web Services、XML 和 J2EE 的 e-business 商业应用。而基于 Eclipse 的开发工具可以同时运行在 Windows 和 Linux 系统之上,开发者再也不需要在 Windows 上开发 e-business 应用再移植到 Linux 环境中,而是可以直接面向 Linux 环境进行开发。Eclipse 显著增强了 Linux 开发者的生产力,并让开发者可以开发面向企业环境的商业应用。

建立开放治理的生态

Open Source is eating the world

IBM 开放技术 VP Todd Moore、IBM 开放技术杰出工程师及 CTO Chris Ferris 联合撰写及定期更新 IBM 开放技术方法论文档,该文档的 2018 年 10 月更新版指出:IBM 通过所有的开源努力学到了一件事情,就是这些开源努力可以实现包容性和开放式治理的社区,往往能吸引最大的生态系统和最广阔的市场。

IBM 认为,开源软件项目和社区固然重要,但开放治理更加重要。许多开源项目由一个人(或供应商)运营,并且在治理方面非常封闭,严重限制了其他人的贡献;其它项目更热衷于外部贡献,但在制定技术战略和方向时仍然是封闭的。一旦开源项目达到一定程度的成功,通常将达到一个临界点,此时如果没有开放式治理,用户就会意识到被供应商锁定甚至放弃项目的更大风险。用户和贡献者都希望在决策中有发言权,如果他们觉得自己的声音没有被听到,那么项目会失败或分叉。这通常会对生态系统造成不利影响,甚至社区崩溃。

现实情况是,在开放式治理下管理的开放式技术项目,例如通过 Apache、Eclipse、Mozilla 和 Linux 等组织运作中发现的开放式治理,显然会更加成功、寿命更长,并且风险低于由单一供应商控制的项目,或者在治理方面更严格。IBM 经常参与由单一个人或供应商所控制的开源项目,帮助他们看到开放治理的价值以及更大成功的可能。如果 IBM 能够有效地将项目带入开放治理,就会大幅增加投资以帮助确保项目的成功,并努力发展社区和生态系统。

IBM 知道水涨船高,光 IBM 自己的成功是不够的,IBM 需要确保许多企业能够成功,从而以保障一个充满活力的生态系统。这降低了为 IBM 自己,更重要的是降低用户拥抱开源所带来的风险。实际上,由于大多数企业用户都倾向于优先选择开源而不是专有产品,因此第一步是尝试集成自己的开源堆栈,然而当企业一旦通过实践了解到其中的挑战,通常会转移到与具有深厚技能和经验以及对相关社区有透彻了解的开源技术供应商合作。

IBM 还相信,一旦企业用户踏上了开源之旅,就需要一个能够帮助他们不断集成开源技术的合作伙伴,同时合作伙伴还要有能持续影响开源社区的能力。企业用户希望其开源合作伙伴能够理解企业级环境以及企业的长远利益,再通过影响和引导开源社区的技术方向和进程,与企业的自身利益相匹配。

IBM 对开源的承诺和贡献在业界是长期、持续而超越想像的。IBM 服务于许多开源基金会董事会,包括 Linux、Eclipse、Apache、CNCF、Node.js、Hyperledger 等,成千上万的 IBM 员工在使用和贡献开源软件。IBM 重视并致力于开放治理,因为 IBM 认为这是确保开源项目长期成功和可行性的最佳方式。IBM 开发人员每天都在重要的开源项目中工作,每个月都为数百个开源项目做出数以千计的贡献。

让所有人都受益

IBM Think 2019 talks

与很多的印象相反,所有 IBM 参与的开源项目和社区都有一个显著的特点,那就是多方参与、开放治理。这是因为单一参与者的开源项目,风险极高。不久前,Facebook 宣布将停止 Parse(一个流行的移动开发平台)项目,这导致成千上万的开发商陷入困境。还有很多情况下,开发人员发布了一些很酷的功能作为开源发布,然后无论出于何种原因最终放弃或忽略该开源发布。

IBM 通过密切关注项目的五个方面来评估开源项目:

  1. 负责任的许可。显然,IBM 希望了解与该技术相关的开源许可。
  2. 可参与的提交流程。IBM 力求确保有一个明确定义的流程来欢迎外部贡献者的贡献。
  3. 多样化的生态系统。IBM 确认有多家供应商和 ISV 正在提供基于该技术的产品。
  4. 参与社区。IBM 要求有一个流程来增加其他贡献者在社区中的技术影响力。
  5. 开放治理。IBM 评估治理模型以确定是否真正开放。

当然,IBM 也会研究技术并评估是否存在架构适合性,但技术通常可以随着时间的推移而得到修复和改进。关键是 IBM 要确认是否有足够的积极因素来保证投资,以帮助项目实现真正的开放式治理,从而让所有人受益。IBM 已经展示了在开源领域推动创新的持续承诺,提供基于开源的广泛产品组合,并围绕最关心的开源项目帮助建立可持续,蓬勃发展的社区和生态系统。

IBM 相信在开源领域的领导地位对客户来说具有差异化的价值,以至于 IBM 甚至用了一个词来形容自己:“IBM is Open by Design”(IBM 为开源而设计)。

专注于企业

IBM 对那些具有战略意义的开源项目进行了安全性、可扩展性、稳健性、在线升级、全球化、文档、持续集成等方面的大量投资并交付到项目中。IBM 还投资那些能够将 IBM 创新集成到项目功能的开源开放项目。IBM 在其它重要方面做出了广泛的贡献,包括营销、布道和各种董事会级别的委员会活动。IBM 还经常引领定义互操作性和可移植性的工作,这对于任何开放技术的成功都至关重要。

除收购红帽公司外,IBM 在过去五年中投入了近 10 亿美元,并投入了数百个开源开发、营销和布道资源。IBM 发起了许多开源开放项目,不知疲倦地帮助开源组织及其托管项目来定义并取得成功。IBM 这样做是因为 IBM 从这些项目和组织中获得的价值超出了开源软件本身,其中大部分收益来自充满活力的社区和蓬勃发展的生态系统,这些生态系统围绕开放技术的重心来进行开发,而 IBM 产品的成功与所投资开源项目的成功成正比。

IBM 专注于推动互操作性、可移植性以及对企业最重要的许多能力。IBM 还专注于为上游贡献 IBM 创新,并且当它与 OpenStack 等战略项目价值相当时,就将其封装起来并对外通过 API 和 SPI 提供交互以方便企业用户使用,IBM 将确保这些技术定义的接口(API 和 SPI)是完全公开的。

IBM 努力不创建 “IBM Hyperledger Fabric” 或 “IBM Kubernetes” 这样的分叉代码:IBM 区块链平台中的 Hyperledger Fabric 与 Hyperledger 组织发布的 Hyperledger 结构相同,IBM 集成到 IBM Cloud 中的 Kubernetes 与 CNCF 发布的代码相同,IBM Container Service 中包含的 Docker 与该社区发布的 Docker 相同,Cloud Foundry 与 Cloud Foundry Foundation 发布的代码相同。IBM 的增值之处在于,集成了所有这些开源功能,以实现 IBM Cloud

IBM 对战略技术的社区代码进行投资,并确保在上游进行补丁和增加新特性,而不是增加额外的复杂性或需要依赖 IBM 独立维护不同版本的工作。当 IBM 希望添加能够利用 IBM(或其它公司)不同功能的可扩展性时,会在社区中创建必要的 API 或 SPI。IBM 还投资确保这些扩展点不会被滥用以形成被锁定的可能性。

那些著名的 IBM 开源项目

以下是一些非常著名的由 IBM 贡献或参与贡献的开源项目:

Eclipse
2001 年,IBM 与其它公司合作,通过 Eclipse Java IDE 框架的初始授权创建了 Eclipse Foundation 的前身 Eclipse Consortium。IBM 对 Eclipse 基金会的目标与 Apache 的目标类似:在开放式治理下创建一个安全的合作和创新场所。现在,Eclipse 上有超过 360 个项目。同样,开放式治理提供了一个吸引开源开发人员的场所,可以进行开放协作和创新。

Java
追溯到最早的时期,IBM 是 Java 的早期采用者和贡献者之一。IBM 在帮助塑造 Java 语言和运行时以及 J2EE 规范以及 Sun Microsystems 方面发挥了重要作用。多年来,IBM 帮助推动 Java 开源,使 OpenJDK 成为首屈一指的开源 Java。最近,IBM 开源了 J9 运行时,这是一个针对云优化的高性能、低内存占用 Java 虚拟机(JVM),以及为 Java EE 和 MicroProfile 应用程序提供的 Liberty 运行时,它为 WebSphere 提供了开放的基础。IBM 将继续领导并为建立 Eclipse 基础规范流程做出贡献,该流程将取代以前用于 Jakarta EE 的 Java Community Process(JCP)。

Linux
2000 年,IBM 与其它主要行业领袖合作,建立了 Linux 基金会,并成为其创始白金赞助商。当然,IBM 的投资远远超出了赞助范围。多年来,IBM 一直并且将继续成为 Linux 社区的领导者,在 Linux 内核和许多现在超过 80 个 Linux 基金会的协作项目中投入了数百个工程资源,其中一些项目 IBM 在启动过程中发挥了重要作用。

云原生
2015 年 7 月,紧跟着 OCI 的发布,IBM、Google、Docker、Weaveworks、Red Hat 等推出了云原生计算基金会(CNCF),旨在为 Google 的 Kubernetes 项目提供开放的治理模型,这是 IBM 针对云原生应用程序相关的云和其它技术战略的关键组成部分。从那时起,该组织在 CNCF 主席、IBM 的 Todd Moore 的领导下蓬勃发展,项目包括 Kubernetes、etcd、rkt、fluentd、containerd 和 gRPC 等。因为与 IBM 云战略相关,IBM 正在增加对 CNCF 技术的投资和贡献,尤其是 Kubernetes。

Istio
IBM 与 Google 在 Docker、Kubernetes 和 CNCF 上的合作也带来了额外的成果。IBM 和谷歌与 Lyft 联手合作,合并了 IBM 的 Amalgam8、Lyft 的 Envoy 和 Google 的服务控制,其结果是 Istio 项目,它是云原生微服务的路由和策略管理的顶级抽象。目标是最终将 Istio 迁移到 CNCF,以确保对这一重要且日益受欢迎的项目进行开放式治理。

Libcontainer
在过去几年中,IBM 一直是 Docker 的主要贡献者之一。IBM 的三位开发人员在 Docker 公司赢得了同行的尊重,并被任命为维护人员。Docker 公司在 2015 年 6 月成立了 Open Container Initiative(开放容器计划),IBM 成为创始赞助商之一,Docker 为该计算贡献了 Libcontainer 和 Docker 镜像和传输格式规范。自成立以来,IBM 一直是 OCI 的主要贡献者之一。

Containerd
在 2016 年 12 月,Docker 贡献 Containerd 到 CNCF。Containerd 是一个核心容器运行时组件,可以管理托管主机系统上容器的完整容器生命周期,两名 IBM 员工已获得容器项目的维护者资格,这再次证明了 IBM 在开源领域的领导地位。

Knative
谷歌宣布了与 IBM 以及无服务器和平台即服务领域的许多其它主要供应商密切合作开发的 Knative 项目,Knative 提供了构建模块以便为 Kubernetes 提供无服务器功能。IBM 相信这将是一项关键技术,并且正在社区中密切合作,以便将 Cloud Foundry 和 OpenWhisk 等平台发展为基于 Knative 的平台。

OpenWhisk
当亚马逊在 2014 年推出 AWS Lambda 时,它标志着函数即服务(FaaS)或无服务器计算的潜在变革方向。许多公司开始探索这个领域,包括谷歌、微软和其它许多公司,IBM 也不例外。2015 年初,IBM Research 开始致力于为 IBM Cloud 开发强大的无服务器功能。IBM 认识到,为了使 IBM 无服务器工作被视为专有 AWS Lambda 产品的可行替代方案,需要在开放式治理下开源以便可以围绕该开源项目发展一个充满活力的社区和生态系统。2016 年 2 月,IBM 开源了无服务器平台,并将其命名为 OpenWhisk。随着对 OpenWhisk 的兴趣不断增长,IBM 于 2016 年 11 月与 Adobe 和 Red Hat 等合作伙伴共同建立了 Apache OpenWhisk 作为孵化项目。

人工智能和机器学习
IBM 最近开放了一些 AI 关键技术,包括:AI 公平 360 工具箱(AIF360),一个开放源代码的软件工具包,可以帮助检测和机器学习模型中的偏见;对抗性鲁棒性(Adversarial Robustness)工具箱,用于快速制作和分析机器学习模型的攻击和防御方法;深度学习框架(FfDL)是一个在 Kubernetes 上提供 TensorFlow、Caffe、PyTorch 等深度学习即服务平台。

Hyperledger(超级账本
2015 年,IBM 认识到区块链技术的巨大潜力,因为这是比特币的基础技术。IBM 在这个领域的研究得出结论,当时的区块链技术平台不适合企业。因此,IBM 着手构建一个新的区块链平台,其中考虑了企业需求——一个可以在高度规范的环境中使用的平台。IBM 认为这一重要技术不应由任何单一供应商控制,因此与 Linux 基金会合作建立了 Hyperledger,这是 Linux 基金会中增长最快的项目。IBM 贡献了 4.4 万行代码,并在开放式治理下建立了第一个 Hyperledger 项目 Hyperledger Fabric。从那以后,Hyperledger 又孵化了另外 9 个项目。Hyperledger Fabric 是第一个孵化、第一个成为“活跃”状态、第一个达到 1.0.0 版本的项目(2017 年 6 月)。来自 40 家公司的近 300 名工程师参与了 4 个 Fabic 版本的发布,这证明了在开放治理下开发开源的价值。

Node.js
Node.js 社区向 IBM 寻求帮助,以解决社区内部的分歧。这种分歧导致了 Node.js 出现了一个分叉和两个项目的分歧路径。Node.js 是最流行的 Javascript 开发框架,但分歧可能会导致生态系统的碎片化和崩溃。IBM 与两个派系合作,并说服他们解决问题的方法是将 Node.js 开发纳入开放治理。IBM 帮助其他主要利益相关者在 Linux 基金会下建立了 Node.js 基金会,并努力治愈分裂,分叉最终被合并回 Node.js。由于 IBM 的领导,该项目现在获得了巨大的成功,并且越来越成熟。

了解了以上内容,你就知道为什么 IBM 董事长、总裁及首席执行官 Ginni Rometty 会亲自主持 IBM Think 2019 “开源:企业的未来和创新的基石”分论坛的对话环节。开源不仅对 IBM 至关重要,而且 IBM 就是为了开放而存在、为了开放而设计!因为只有开放开源才有最广泛的兼容性,而这正是企业级 IT 成功的秘密——很多被认为是专有技术与产品的成功的本质都是最广泛的兼容,无论是 Oracle 数据库、VMware 虚拟化软件、IBM 中间件、微软操作系统都是一样的成功之道,只不过在过去是由一家厂商主导的兼容性努力正在被现在的开源社区所主导的社区开放标准所替代,而今后商业软件公司的成功之道就是参与开源开放社区的多方治理并基于开源开放技术提供商用解决方案和服务。

正如 IBM Think 2019 “开源:企业的未来和创新的基石” 分论坛上嘉宾所一致认同的:开源软件正在吞噬世界!

参考文献

  1. IBM’s approach to open technology,Oct. 2018,https://developer.ibm.com/articles/cl-open-architecture-update/
  2. Eclipse Foundation: 15 Years Young,Feb. 2019,https://blogs.eclipse.org/post/mike-milinkovich/eclipse-foundation-15-years-young
  3. IBM Donates $40 Million of Software to Open Source Community,Nov. 2001,https://www-03.ibm.com/press/us/en/pressrelease/1025.wss

本文转载自云科技时代,作者:宁川

相关资源

  • Think 2019 recap: Open source leaders answer top questions
  • How open source software is eating the world
  • Interview: Chris Ferris on how IBM has led the way in open technologies and Hyperledger
  • 加入讨论