阿里CTO程立:阿里巴巴开源的历程、理念和实践

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 阿里CTO程立:阿里巴巴开源的历程、理念和实践


日前,阿里巴巴集团首席技术官程立在2022开放原子全球开源峰会上发表了题为“共建共享数字世界的根”的主题演讲。


程立表示,回看过去四十多年的软件历史,开源已经从一个小众的爱好者行为变成了基础软件的源头,并在云的时代,开创了新的软件开发模式和商业模式。云和开源,已然共同成为数字世界的根。



以下为本次演讲精华:


01 开源是基础软件的源


开源应该是基础软件的源头活水。数字世界的基础软件,应该建立在开源之上,需要全行业共建、共享。


正是认识到开源是基础软件的源头活水,阿里积极参与到开源中。阿里的开源经历了使用、贡献、开拓三个阶段。



阿里在创业早期就大量使用开源软件,阿里技术的发展根植于开源的沃土中,我们非常感谢开源社区的帮助。当我们具备一定的能力,尤其是大规模互联网系统和云的研发中开始积累越来越多的技术经验、解决越来越多新的问题之后,我们也积极地将自己的实践以开源软件的形态回馈到社区。


随着阿里巴巴越来越深入地参与到各行各业的数字化,共同建设数字新世界,开源也成为阿里技术战略的重要部分。在基础软件领域的开拓与开源,成为近两年来阿里巴巴开源的重点。


阿里的开源在国内一直是比较领先的。截至目前,阿里累计有3000多个开源项目、3万多位全球贡献者,也收获了全球开发者100多万个star。开源的数量和活跃度,一直都处于前列。


根据《中国开源十年洞察报告》,阿里已经连续十年蝉联中国厂商开源活跃度、影响力双第一。



近期,阿里对开源委员会和开源办公室进行了一轮升级。开源委员会作为负责制定阿里开源战略的组织,新设置了9位领域副主席,把基础软件领域的开源共建作为阿里开源的重心,明确了四大重点开源方向:操作系统、数据库、大数据与云原生,并且进一步加大了在社区建设与研发上的投入。


另外,我们升级了开源办公室来负责战略落地执行,通过横向的平台、工具来负责阿里众多开源项目的治理和运营,为开源项目提供组织保障。阿里希望与企业同行、社区伙伴们一起,通过开源,让基础软件根深叶茂。


02 云+开源是数字世界的根


我们认为云是数字世界的基座,云也为开源软件提供了最佳运行环境,云+开源,共同构成了数字世界的根。


正是出于“云+开源是数字世界的根”这个认识,在阿里内部,我们有一个“三位一体”的核心技术理念。“三位一体”是指阿里自用的技术、社区开源的技术和阿里云对客户提供的技术是一个版本 —— 这种“三位一体”的方式使得自研、开源与云计算商业形成血脉相通的整体。



龙蜥服务器操作系统(AnolisOS)、数据库、大数据智能、中间件、容器,阿里都是以三位一体的方式在研发、使用与商业化。这样做,阿里可以吸收业界最佳实践,也可以将自己的技术积累通过开源回馈给社区,同时,也可以通过云实现开源的商业化。


接下来,我分别在大数据、容器与操作系统领域,举三个“三位一体”的开源软件实例。


Apache Flink:

从使用者到贡献者到社区持续繁荣


首先是Apache Flink,这是一个实时计算引擎,我们在最开始是Flink的使用者,2019年收购了Apache Flink 原作者所建立的公司,阿里也随后成为了Flink社区最大推动者之一,为社区贡献了1/4的Committer。


Flink有几个关键的时间点:2016年,阿里正式在自己的业务中引入Flink;2017年,Flink就逐步支撑了公司内几乎所有实时数据业务;2018年,我们又完成了Flink 在阿里云上的产品商业化。这样就比较好地实现了内部应用、开源、与云上服务的三位一体技术布局。



在四年以后的今天,回顾这个布局,我们非常欣喜地发现,Flink已经被全球主流的IT公司所采用,已经成为了实时计算领域的事实标准,而它的社区也在持续地繁荣着。


容器技术:

从内部实践到云上商业化和生态贡献


我们来看另一个产品,阿里云容器服务(ACK), 这个产品是Kubernetes的云上服务,是阿里从社区借力并参与社区贡献的项目代表。


阿里内部在2011年就已经大规模应用容器技术了。随着Kubernetes逐步成为该领域的事实标准,我们在内部也做了系统化的升级,与业界同频。2021年,我们正式完成集团应用系统的全面容器化和统一调度,目前已经是全球最大规模的云原生集群。ACK同时也服务了各行各业的客户。2017年,我们就在云上上线了阿里云容器服务(ACK),并成为业界首批通过kubernetes一致性认证的产品。


在参与开源社区建设上,我们依托于自己的实践,给社区贡献了如KubeVela、OpenYurt、OpenKruise、Fluid等多个开源项目,帮助kubernetes向边缘云、AI、混合云等多个场景做了有效延伸。



通过坚持“三位一体”,确保三个方向上都使用没有代差的相同主干的代码,实现了帮助阿里、帮助阿里云上的客户,同时也帮助社区持续发展。


龙蜥操作系统:

从自主创新走向开源共建


最后我们再来关注下操作系统。龙蜥操作系统作为下一代面向云的开源操作系统,借助众多阿里内部与云上客户的不断打磨与优化,和统信软件及三大运营商等为代表的多家企业的技术沉淀,龙蜥社区目前已经是一个非常成熟的开源社区了。


我们认为,借助基于以云+开源支撑的数字化进程这一确定性趋势,以“三位一体”的共享开源模式去继续发展龙蜥操作系统,让我们在云时代不但能够补上基础软件领域的短板,而且有机会实现跨越式发展。


阿里做操作系统是来源于真实的业务需要。阿里早期为了支撑内部海量的计算需求,我们基于开源的Linux,在性能、稳定性等层面做了不少修改并做了开源,也比较好地支撑了我们内部业务的实际增长。


2009年我们开始做云计算,发现云计算本身对于操作系统各个方面提出了一系列的全新挑战,Alibaba Cloud Linux也是在满足国内用云的上百万客户的真实需求中不断成长的。


经过多年建设,在龙蜥社区多家合作伙伴的共同努力下,龙蜥操作系统目前实现了主流芯片协同研发机制全覆盖、国产主流中间件/数据库全覆盖、主流整机OEM厂商全覆盖。


目前围绕龙蜥社区,已经有包括统信软件、联通、移动、电信等20多家企业参与贡献,以及红旗、普华、飞腾、中科方德等200多家产业链公司加入社区,此外还有国际知名企业英特尔、ARM等的加盟。



未来我们希望这个云原生的操作系统能够成为大家共同建设、共同享有的软件基础设施。未来,借助云+开源,我们可以把海量的数字化业务迁移到软硬件协议生态上,从而形成新的操作系统与硬件协议相互促进的产业生态,有效助力弥补核心技术和基础软件产业链相关短板,孵化出一个自主演进可以带动产业发展的操作系统生态,推动产业生态完善,繁荣整个开源生态。


除了上面三个案例,我们还有类似Apache RocketMQ、Apache Dubbo、Arthas、PolarDB等很多产品也都遵循着三位一体这个模式。我们相信,这个模式能够确保软件的生命力,并且能够以更开放的方式,汇聚业界最优秀的工程师和最多样的场景,共建共享数字新世界的根。


03 共同应对开源的挑战


作为开源的贡献者和使用者,我们也看到一些问题和挑战。把握开源机遇,在发展中解决开源带来的挑战,需要全行业相向而行,共同努力。我们有以下几点建议:


1.持续加强和加大建设中国开源发展的基础设施:包括代码托管及服务型社区平台,建好开发者社区;


2.持续投入和共同建设开源软件风险和漏洞管理相关的机制与平台;


3.积极参与全球基础软件开源建设:掌握关键技术,进入全球第一梯队;加强在云原生的操作系统、数据库、中间件、容器、大数据智能、新一代互联网等基础软件领域的开源发展探索;


4.建立云原生的开源生态:把握产业趋势,以云为基础培育开源项目;


5.持续加强中国开源基金会及开源组织建设:坚守并践行中立原则的开源基金会与开源组织将赢得开发者以及合作企业的持久信赖;


6.持续加强开源相关的人才培养和文化建设:包括开源供应链安全管理、开源技术与战略人才。


我们愿意与全行业一起,通过开源与云共筑数字世界的根。


相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
Cloud Native Dubbo 应用服务中间件
阿里巴巴捐献的14个顶级开源项目,国内开源贡献第一!
代表性的项目包括龙蜥操作系统、Apache RocketMQ、Apache Dubbo、Spring Cloud Alibaba 等
|
8月前
|
存储 算法 数据处理
Pandas高级数据处理:数据压缩与解压
本文介绍 Pandas 中的数据压缩与解压技术,探讨其在大数据集存储、远程传输和备份归档中的应用场景。Pandas 支持多种压缩格式(如 `.gzip`、`.bz2`、`.zip`),通过 `compression` 参数轻松实现数据的压缩与解压。文中还提供了常见问题的解决方案,如文件扩展名不匹配、内存不足和性能优化,并介绍了自动检测压缩格式和组合压缩加密的高级技巧。掌握这些功能可显著提升数据处理效率。
229 20
|
JSON 前端开发 数据格式
@RequestMapping运用举例(有源码) 前后端如何传递参数?后端如何接收前端传过来的参数,传递单个参数,多个参数,对象,数组/集合(有源码)
文章详细讲解了在SpringMVC中如何使用`@RequestMapping`进行路由映射,并介绍了前后端参数传递的多种方式,包括传递单个参数、多个参数、对象、数组、集合以及JSON数据,并且涵盖了参数重命名和从URL中获取参数的方法。
971 0
@RequestMapping运用举例(有源码) 前后端如何传递参数?后端如何接收前端传过来的参数,传递单个参数,多个参数,对象,数组/集合(有源码)
|
12月前
|
人工智能 算法 量子技术
未来科技的曙光:量子计算的崛起与挑战
【10月更文挑战第15天】 在科技的浩瀚星海中,量子计算犹如一颗新星,正逐渐升起并散发出耀眼的光芒。本文将深入浅出地探讨量子计算的基本原理、当前进展、面临的挑战以及它对未来科技发展的潜在影响,带领读者一同领略这一前沿技术的魅力与奥秘。
252 0
|
Java 编译器 Serverless
Java 原生化的未来 Graal AOT 编译器
使用 Graal 编译器对 Java 程序进行 AOT 编译使其适合 Serverless 场景。
246 0
Java 原生化的未来 Graal AOT 编译器
|
机器学习/深度学习 自然语言处理 Java
HanLP — 词性标注
HanLP — 词性标注
176 1
|
机器学习/深度学习 存储 算法
深度学习实战】行人检测追踪与双向流量计数系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、双向计数、行人检测追踪、过线计数(2)
深度学习实战】行人检测追踪与双向流量计数系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、双向计数、行人检测追踪、过线计数
|
人工智能 容器
子数组的解释与专题
子数组的解释与专题
366 0
|
存储 移动开发 数据可视化
贝叶斯优化实战(二)(5)
贝叶斯优化实战(二)
405 0
|
算法
基于Google Earth Engine的Landsat单窗算法地表温度(LST)反演
基于Google Earth Engine的Landsat单窗算法地表温度(LST)反演
641 2