褚霸:阿里开源四部曲,从拥抱到回报

简介: 6月24日至25日,“第十一届开源中国开源世界高峰论坛”在北京成功召开。阿里云研究员余锋 (花名:褚霸)受邀参加了本次活动,褚霸代表阿里巴巴集团为大家介绍了阿里巴巴与开源的故事。阿里巴巴与开源的关系,褚霸总结为四个阶段,分别是拥抱开源、回馈开源、融合开源和回报开源四个阶段。

6月24日至25日,由中国开源软件推进联盟(COPU)主办的“第十一届开源中国开源世界高峰论坛”在北京成功召开。本届论坛以“深化开源交流,壮大开源平台,服务万众创新,发展共享经济”为主题。

 

阿里云研究员余锋 (花名:褚霸)受邀参加了本次活动,褚霸代表阿里巴巴集团为大家介绍了阿里巴巴与开源的故事。阿里巴巴与开源的关系,褚霸总结为四个阶段,分别是拥抱开源、回馈开源、融合开源和回报开源四个阶段。

 

以下是褚霸在本次活动上的发言整理内容。 


拥抱开源


我从97年开始接触开源,是开源事业的受益者。为什么要拥抱开源?我认为开源是站在巨人的肩膀上, 能快速获取基本的技术能力。

 

2010年我到了阿里,那是淘宝业务发展最快的阶段,没有开源之前,那时候淘宝用的基本是商用的解决方案。在那个时间点,我们的业务能力是由开源提升的。

 

因为技术是为业务服务的,而我们遇到了很大的瓶颈,所以这时候我们开始拥抱开源。

 

2011年,我们开始用开源技术解决业务问题,成立了数据库团队,做CDN的,做存储等等。所有的产品都基于开源去构建。这个过程中大批量地拥抱开源,当时就吸引了很多人才,短时间内组建这么多团队。

 

从开源我们不仅吸引了人才,还吸引到很多贡献。整个团队的技术视野得到很大扩展,技术飞跃。这是阿里巴巴开源技术发展最快的一段时间。

 

回馈开源


第二阶段 ,我们拥抱开源后增加了业务容量,最重要的是我们有业务产品。业务产品非常复杂,这有助于锤炼我们的软件和技术。我们开始大规模为社区贡献补丁、特性。举个例子,我们用MySQL代替原来的Oracle数据库。当时MySQL有三个社区,我们都分别贡献了很多补丁和代码。

 

然后,我们也贡献了很多包括业务层面的经验、产品、博客、案例手册等。代码是一个方面,我认为开源社区要做得好,后面的最佳实践、案例是更重要的。那时候MySQL的国内社区变得非常火,因为大家看见了成功案例,都去跟进。因为看见了前人走的路,后面的发展就会更顺利些。

 

我们团队成员有的成为项目的Committer,会把社区没做到的特性推进去,更多去参与社区事务。

 

我们还建立了MySQL用户组,去培养MySQL人才。现在中国在MySQL的积累是非常深的,除了代码还有案例、有人才。有了人才后面的发展就会很自然地延伸过去。

 

这个过程中阿里巴巴贡献了很多开源项目,大家可以看见的,像Tengine就是基于社区Nginx版本的发布版,相信很多大的互联网公司都在用它的发布版。其他的开源项目,比如Jstorm等阿里巴巴开源项目在业界应用也非常普遍。

 


阿里部分开源项目

融合开源


走到第三步融合的时候,我们从一开始服务电商拥抱开源,到现在做云计算,我们开始输出了。这时候发生了更大的变化,因为做云计算以后需要的不仅是单个产品项目,用户需要的是一整个解决方案,比如说数据库,在Top20的数据库中用户需要的不只是一种,到今天Top20我们都基本覆盖了。并且用户使用数据库的过程中有很多短板,我们会帮用户填这个短板。比如原来独立的数据库中间,MySQL打包没有解决方案。我们会帮他做这个解决方案,让他顺利成长。

 

在这个层面,我们做了大量的事,整合产品,让产品的使用变得非常简单。这是跟社区融合的过程。比如说Hadoop,它原本支持亚马逊S3的,我们在它的开源生态底层加入阿里云的OSS;再比如Docker,用户在阿里云上创建Docker有很多不方便的地方,我们把它打通之后用户很容易就能在阿里云的虚拟机上创建Docker。事实上我们帮社区做了很多这种补短板的事情,看似很小但是事情变得方便了。

 

回报开源



第四个阶段,我们会跟学术界合作。比如MongoDB支持的地理位置定位功能,应用很广泛。但该功能用CPU算得很慢,我们就说用GPU去算。我们跟学术界合作然后把研究成果放在MongoDB里面,开源出去跟社区分享成果。

 

另外是和社区一起建立崭新领域。过去没有人做的事情,我们跟社区一起去完善,现在很容易得到一些服务。

 

并且我们会有产品级的开源。我们觉得是非常有价值的东西,看不清方向的时候就会开源出去,让整个社区一起参与建设。

 

最后一点,开源是非常重要的,需要从公司层面去决策。就像生孩子容易养孩子难,需要大量人力财力的投入。所以我们会从公司层面投入,来保证开源业务的连贯性,让社区更好。

 

以上就是阿里巴巴开源经历的四个阶段。

 

相关资料


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
编解码 物联网 API
"揭秘SD文生图的神秘面纱:从选择模型到生成图像,一键解锁你的创意图像世界,你敢来挑战吗?"
【10月更文挑战第14天】Stable Diffusion(SD)文生图功能让用户通过文字描述生成复杂图像。过程包括:选择合适的SD模型(如二次元、2.5D、写实等),编写精准的提示词(正向和反向提示词),设置参数(迭代步数、采样方法、分辨率等),并调用API生成图像。示例代码展示了如何使用Python实现这一过程。
947 4
|
3月前
|
人工智能 移动开发 小程序
互联网医院系统开发搭建:AI 智能问诊模块落地与架构优化
在智慧医疗加速普及背景下,AI智能问诊已成为互联网医院核心刚需。依托医疗大模型、RAG知识库与智能分诊引擎,实现症状初筛、精准分科、健康指导,缓解人工拥堵、提升分诊效率、释放医护压力,助力医疗数字化转型升级。
|
存储 Kubernetes 调度
|
机器学习/深度学习 存储 人工智能
【科普向】我们所说的AI模型训练到底在训练什么?
人工智能(AI)模型训练类似于厨师通过反复实践来掌握烹饪技巧。它通过大量数据输入,自动优化内部参数(如神经网络中的权重和偏置),以最小化预测误差或损失函数,使模型在面对新数据时更加准确。训练过程包括前向传播、计算损失、反向传播和更新权重等步骤,最终生成权重文件保存模型参数,用于后续的应用和部署。理解生物神经网络的工作原理为人工神经网络的设计提供了灵感,后者广泛应用于图像识别、自然语言处理等领域。
lombok~避免Boolean属性使用默认的方法
【9月更文挑战第25天】在 Lombok 中,默认会为 `Boolean` 属性生成 `isXXX` 方法。若要避免此默认行为,可通过三种方式实现:1)使用 `@Getter/@Setter` 注解的 `name` 属性自定义方法名;2)通过 `@Data` 注解的 `access` 属性设置为 `FIELD` 直接访问字段;3)使用 `@Builder` 注解在生成的 builder 类中指定方法名。这些方法允许你根据需求定制属性访问方式。
857 1
|
缓存 算法 测试技术
性能测试的结果如何才算准确?
性能测试的结果如何才算准确?
612 57
|
网络协议 安全 Unix
常用端口
常用端口
606 3
|
JSON Java fastjson
JMH - Java 代码性能测试的终极利器、必须掌握
JMH - Java 代码性能测试的终极利器、必须掌握
5007 1
|
存储 监控 Java
Java日志通关(三) - Slf4j 介绍
作者日常在与其他同学合作时,经常发现不合理的日志配置以及五花八门的日志记录方式,后续作者打算在团队内做一次Java日志的分享,本文是整理出的系列文章第三篇。
|
NoSQL Redis Docker
揭秘Github火爆的开源IP代理池秘密!
爬虫新利器:揭秘Github火爆的开源IP代理池秘密!
1718 0