7月28日,阿里巴巴集团首席技术官程立在开放原子全球开源峰会上发表了题为“共建共享数字世界的根”的主题演讲,以下为演讲全文。
回看过去四十多年的软件历史,开源已经从一个小众的爱好者行为变成了基础软件的源头,并在云的时代,开创了新的软件开发模式和商业模式。云和开源,已然共同成为数字世界的根。这个根需要政府和企业、需要我们大家一起来共建和共享。
一、开源是基础软件的源
开源是基础软件的源
开源应该是基础软件的源头活水。数字世界的基础软件,应该建立在开源之上,需要全行业共建、共享。
首先,以开源的方式,可以汇聚全球最先进的技术,协同全球最优秀的人才,通过最大规模群体智慧共同参与和协作,能让基础软件面向最广泛的需求不断创新;其次,开源与专有组件不是非此即彼的关系,它们共同构成的生态系统,为最广泛的开发者提供了敏捷软件研发的大中台;再次,开源从根本上实现了在基础软件层的共享与共通,避免数字世界的孤岛化;最后,开源赋予用户选择权和审查权,确保开源代码安全可控,供全人类共同拥有。
阿里巴巴开源历程
正是认识到开源是基础软件的源头活水,阿里积极参与到开源中。阿里的开源经历了使用、贡献、开拓三个阶段。
阿里在创业早期,就大量使用开源软件,阿里技术的发展,根植于开源的沃土中,我们非常感谢开源社区的帮助。当我们具备一定的能力,尤其是大规模互联网系统和云的研发中开始积累越来越多的技术经验、解决越来越多新的问题之后,我们也积极地将自己的实践以开源软件的形态,回馈到社区。
这里面也包含一些目前大家可能经常使用的软件,比如Apache Dubbo、Apache RocketMQ、Flink、Midway等等一系列的开源软件。很多软件我们坚持做了10多年,到现在还在维护,未来也会努力地持续维护下去。
随着阿里巴巴越来越深入地参与到各行各业的数字化,共同建设数字新世界,开源也成为阿里技术战略的重要部分。在基础软件领域的开拓与开源,成为近两年来阿里巴巴开源的重点。
连续十年蝉联中国厂商开源活跃度、影响力双第一
阿里的开源在国内一直是比较领先的。截止到目前为止,阿里累计有3000多个开源项目,全球贡献者累计了30000多位,也收获了全球开发者100多万的star。无论从开源的数量还是活跃度一直都处于前列。根据《中国开源十年洞察报告》显示,阿里已经连续十年蝉联中国厂商开源活跃度、影响力双第一。
来源:《中国开源十年洞察报告》
《中国开源发展蓝皮书》
近期,阿里对开源委员会和开源办公室经历了一轮升级,开源委员会作为负责制定阿里开源战略的组织,新设置了9位领域副主席,把基础软件领域的开源共建作为阿里开源的重心,明确了四大重点开源方向:操作系统、数据库、大数据与云原生,并且进一步加大了在社区建设与研发上的投入。
另外,我们升级了开源办公室来负责战略落地执行,通过横向的平台、工具来负责阿里众多开源项目的治理和运营,为开源项目提供组织保障。阿里希望与企业同行、社区伙伴们一起,通过开源,让基础软件根深叶茂。
二、云+开源是数字世界的根
我们认为云是数字世界的基座,云也为开源软件提供了最佳运行环境,云+开源,共同构成了数字世界的根。
开源软件脱胎于自由软件,从一开始,开源基因中就包含商业,对商业友好、与商业共存。随着云的出现,开源软件得到了更蓬勃的发展。一方面,云的按需使用、随需弹性的关键特征,为开源软件提供了最佳的运行时环境。另一方面,Open Core和云原生,为开源的商业化提供了最优的模式。站在用户的视角,云平台与开源社区的有效合作,赋予了用户灵活的选择权,不用担心被厂商锁定,云+开源共同构成了数字世界的可信基础。
阿里巴巴“三位一体”的开源理念
正是出于“云+开源是数字世界的根”这个认识,在阿里内部,我们有一个“三位一体”的核心技术理念。三位一体是指阿里自用的技术、社区开源的技术和阿里云对客户提供的技术是一个版本 —— 这种“三位一体”的方式使得自研、开源与云计算商业形成血脉相通的整体。
阿里的系统架构,可以简化地分为四层,底层是基座“飞天操作系统”,之上是云原生共享技术,再往上是共享的能力中台,顶层是丰富的数字化的业务应用。
从图上可以看出,龙蜥服务器操作系统(AnolisOS)、数据库、大数据智能、中间件、容器,阿里都是以三位一体的方式在研发、使用与商业化,这样做,一方面阿里可以吸收业界最佳实践,一方面也可以将自己的技术积累通过开源回馈给社区,同时,也可以通过云实现开源的商业化。
接下来,我分别在大数据、容器与操作系统领域,举三个“三位一体”的开源软件实例。
Apache Flink:从使用者到贡献者到社区持续繁荣
首先是Apache Flink,这是一个实时计算引擎,我们在最开始是Flink的使用者,的时候收购了Apache Flink 的原作者所建立的公司。阿里也随后成为了Flink社区最大推动者之一,为社区贡献了1/4的committer。我们可以看到Flink有几个关键的时间点:在,阿里正式地在自己的业务中引入了Flink,在就Flink就逐步支撑了公司内的几乎所有的实时数据业务;在,我们又完成了Flink 在阿里云上的产品商业化。这样就比较好地实现了内部应用、开源、与云上服务的三位一体的技术布局。
在四年以后的今天,我们回顾这个布局,我们也会非常欣喜地发现,目前Flink已经被全球主流的IT公司所采用,已经成为了实时计算领域的事实标准,而它的社区也在持续地繁荣着。
容器技术:从内部实践到云上商业化和生态贡献
我们来看另一个产品,阿里云容器服务(ACK), 这个产品是Kubernetes的云上服务,它是阿里从社区借力并参与社区贡献的项目代表。
在阿里内部,在就已经大规模的应用容器技术了。随着Kubernetes的逐步成为了该领域的事实标准,我们在内部也做了系统化的升级,与业界同频,在正式完成了集团应用系统全面的容器化和统一调度,目前已经是全球最大规模的云原生集群。ACK同时也服务了各行各业的客户。与此同时,在云上,我们在就上线了阿里云容器服务(ACK),并成为了业界首批通过kubernetes一致性认证的产品。在参与开源社区建设上,我们依托于自己的实践,给到社区贡献了如kubevela、openyurt、OpenKruise、Fluid等多个开源项目,帮助kubernetes向边缘云、AI、混合云等多个场景做了有效的延伸。
通过坚持“三位一体”,确保三个方向上都使用没有代差的相同主干的代码,实现了帮助阿里、帮助阿里云上的客户,同时也帮助社区持续发展。
龙蜥操作系统:从自主创新走向开源共建
最后我们再来关注下操作系统,龙蜥操作系统作为下一代面向云的开源操作系统,借助众多阿里自己与云上客户的不断打磨与优化,和在统信软件及三大运营商等为代表的多家企业的技术沉淀,目前龙蜥社区已经是一个非常成熟的开源社区了。我们认为,借助基于以云+开源支撑的数字化进程这一确定性的趋势,以三位一体的共享开源模式去继续发展龙蜥操作系统,能够在我们让云时代不但补上基础软件领域的短板,而且有机会实现跨越式发展。
阿里做操作系统也是来源于真实的业务需要。阿里早期为了支撑内部海量的计算需求,我们基于开源的linux,在性能、稳定性等层面做了不少修改并做了开源,也比较好地支撑了我们内部业务的实际增长。我们开始做云计算,会发现云计算本身对于操作系统各个方面提出了一系列的全新挑战,alibaba cloud linux也是在满足国内用云的上百万客户的真实需求中,不断地成长的。
经过多年建设,在龙蜥社区多家合作伙伴的共同努力下,龙蜥操作系统目前实现了主流芯片协同研发机制全覆盖、国产主流中间件/数据库全覆盖、主流整机OEM厂商全覆盖。目前围绕着龙蜥社区,已经有包括统信、联通、移动、电信等20多家企业参与贡献,以及红旗、普华、飞腾、中科方德等200多家产业链公司加入社区,此外还有国际知名企业英特尔、Arm等的加盟。
图片来源于龙蜥社区
未来我们希望这个云原生的操作系统能够成为大家共同建设、共同享有的软件基础设施。未来,借助云+开源,我们可以把海量的数字化的业务迁移到软硬件协议生态上,从而形成新的操作系统与硬件协议相互促进的新的产业生态,有效助力弥补核心技术和基础软件产业链相关短板,孵化出一个自主演进可以带动产业发展的操作系统生态,推动产业生态完善,繁荣整个开源生态。
上面的三个系统,只是三位一体实践的几个具体例子,我们还有类似Apache RocketMQ、Apache Dubbo、Arthas、PolarDB等很多产品也都遵循着三位一体这个模式,我们相信,这个模式能够确保软件的生命力,并且能够以更开放的方式,汇聚业界最优秀的工程师和最多样的场景,共建共享数字新世界的根。
三、共同应对开源的挑战
作为开源的贡献者和使用者,我们也看到一些问题和挑战。
IT架构治理
作为开源应用者,首先是开源给IT架构治理带来的挑战:作为企业技术决策者,面临着技术升级、开源软件替换过程中的复杂性以及业务连续运行的挑战。
安全与合规
整个开源行业,都要面对着安全与合规的挑战:由于开源的广泛使用,我们看到开源软件安全漏洞数量在上升。据统计数字,84%的开源代码库至少含有一个漏洞,60%的已审核代码库包含高风险漏洞。企业需要探索上游开源组件的安全漏洞的快速修复,以及如何快速、大规模、全覆盖地推送到下游依赖环节。
生态构建&创新
作为开源的贡献者,面对的是如何构建良好开源生态、激励广泛参与和创新的挑战:这需要建设好开发者社区,包括代码托管及服务型社区平台。尤其要避免大企业在推动产生更多开源重点项目的同时,也可能垄断开源生态,阻碍创新,作为大型企业,在推动开源时,也需要时时保持开放、分享、共赢的心态与实际行动。
商业模式探索
开源商业公司,面对的建立可持续商业模式的挑战:对于成功的开源商业公司来说,最常见的模式是开源核心产品,并将托管、服务作为第二和第三收入来源。这些组合可能在某一时期对开源产品或某一行业来说是有效的。不过随着市场竞争和客户的不断变化,这些模式也需要与时俱进。为了开源的可持续性,企业需要为自己产品找到独特的商业模式。
建议的应对措施
把握开源机遇,在发展中解决开源带来的挑战,需要全行业相向而行,共同努力。我们有以下几点建议:
持续加强&加大建设中国开源发展的基础设施:包括代码托管及服务型社区平台,建好开发者社区;
持续投入&共同建设开源软件风险和漏洞管理相关的机制与平台;
积极参与全球基础软件开源建设:掌握关键技术,进入全球第一梯队;加强在云原生的操作系统、数据库、中间件、容器、大数据智能、新一代互联网等基础软件领域的开源发展探索;
建立云原生的开源生态:把握产业趋势,以云为基础培育开源项目;
持续加强中国开源基金会及开源组织建设:坚守并践行中立原则的开源基金会与开源组织将赢得开发者以及合作企业的持久信赖;
持续加强开源相关的人才培养和文化建设:包括开源供应链安全管理、开源技术与战略人才。
以上是阿里集团对开源的认识与实践的分享,我们愿意与全行业一起,通过开源与云共筑数字世界的根。
如果觉得《阿里CTO程立:阿里巴巴的开源历程 理念和实践》对你有帮助,请点赞、收藏,并留下你的观点哦!