在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 AIFairness 360工具包(AIF360)和AI Robustness Toolbox(ART)
开放了多个分析项目源代码并成为Apache Toree和Apache SystemML
以及过去3年里还有超过100个其它贡献
大胆压注开源二十年
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开发者的生产力,并让开发者可以开发面向企业环境的商业应用。
建立开放治理的生态
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参与的开源项目和社区都有一个显著的特点,那就是多方参与、开放治理。这是因为单一参与者的开源项目,风险极高。不久前,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“开源:企业的未来和创新的基石”分论坛上嘉宾所一致认同的:开源软件正在吞噬世界!
暂无评论哦,快来评论一下吧!