雷锋网 AI 开发者按:近日,阿里巴巴开源技术委员会负责人、Caffe 之父贾扬清发布了一封给千万开源人的感谢信,并首次公开开源 10 年全景图。
在这封感谢信里,贾扬清向我们讲述了过去阿里开源之路是如何开始的,未来阿里的开源之路将会走向何方,以及阿里开源贡献更多技术、分享更多理念的期待。
来源:百度
阿里开源那些事
一直以来,阿里巴巴在开源方面非常重视,它既是 apache 基金会成员、Linux 基金会成员,同时也是 Xen 顾问委员会成员。在全球最大的开源社区 GitHub 中,阿里巴巴的企业贡献总榜排名位居第 12 位,在中国企业的贡献排名位居榜首。目前,其开源项目已经超过 1700 个,Star 数超 75 万,贡献者的数量已突破 2 万人。
阿里开源贡献度排在第十二位,top3 仓库分别是 flutter-go、nacos 和 sqlflow 数据来源:
与此同时,在今年年初 InfoQ 统计的国内在 GitHub 上较活跃的 7 家一线互联网公司的 2800 多个项目显示,在 Star 数最多的项目前十名中,六个项目均由阿里巴巴贡献,所有项目的 Star 数超过 66w。
开源软件不仅影响了企业的发展方向,同时开源能力也渐渐成为企业技术实力的象征之一。
阿里对社区开源的巨大贡献不光表现在开源项目上,也表现在企业发展计划中。其开源技术委员会负责人贾扬清在采访中表示,将开源升级为集团技术战略之一。
来源:阿里巴巴
他指出,过去,这些开源项目的成长更多是依靠阿里巴巴内部员工与开源社区的沟通和交流;如今,阿里意识到这不能仅仅依靠开发者的一腔热血,而需要一套成熟的方法论帮助开发者更多地参与开源、贡献开源,并从组织上提供一系列支持与保障,这就是阿里巴巴成立开源委员会的初心。
除此之外,阿里内部同时形成的还有由委员会成员、开源技术专家组、开源办公室、开源布道师等组成的开源技术委员会格局。其中,全球顶级开源社区 CNCF 首位中国委员李响,Ant Design 项目的核心推动者玉伯,FastJSON 和 Druid 项目的维护者高铁等多位开源专家均在此列。
开源盘点与展示
在贾扬清的感谢信中,也附上了阿里巴巴过去十年的开源小结,其项目涵盖了:大数据、云原生、AI、数据库、中间件、硬件等多个领域的开源成果。不光内容覆盖完整,同时也引领了国内开源潮流。
阿里巴巴过去十年的开源小结 来源:阿里巴巴
仅仅回顾 2019 年,阿里巴巴在这一年里也开源了不少让人印象深刻的项目。包括:
首款自研科学计算引擎 Mars
新一代人机对话模型 ESIM
容器镜像大批量迁移工具 image-syncer https://github.com/AliyunContainerService/image-syncer
......
同时,阿里还开源了位居 Apache 项目中前三的核心项目——Blink、Alink 机器学习平台,并在 Flink Forward Asia 2019 大会上公布了新版本大数据处理引擎 Apache Flink 的部分信息,持续增加着对社区的贡献。
据官方介绍,新的 Flink 1.10 版本已经融入了基于 Flink 搭建的阿里巴巴内部自用的实时计算平台 Blink 的全部功能,预计将于不久后正式发布。
相关地址:
除了 AI 相关的项目,阿里在芯片、物联网、云计算、硬件、微服务框架、数据库等方面,也有众多极具代表性的开源项目。例如:
物联 MCU 芯片平台-无剑 100 Open
自研开源缓存服务中间件 Tair
微服务框架 SOFAStack
分布式数据库 OceanBase
......
同时,在 2020 年之初,阿里巴巴宣布将「浸没式液冷数据中心技术规范」硬件项目向全社会开放。该项技术,不仅具有热转化率高的优点,还具备节能、高密度、稳定性等方面的优势。初步预测,结合中国整个数据中心的用电量 1609 亿度计算,如果全用液冷替代则可以降低到 968 亿度,节能效果非常显著。
来源:阿里巴巴
目前,根据 Github 开源社区的数据显示,以下 6 个阿里巴巴的项目获得了较高的喜爱与关注度:
Fastjson star 20.5k fork 5.5k
一个 Java 库,可用于将 Java 对象转换为其 JSON 表示形式。它还可以用于将 JSON 字符串转换为等效的 Java 对象。Fastjson 可以与任意 Java 对象一起使用,包括开发者没有源代码的现有对象。
项目地址:
druid star 20.1k fork 6.8k
阿里巴巴开源的数据库连接池项目,是 Java 语言中很不错的数据库连接池。Druid 连接池针对监控而研发,能够提供较强的监控和扩展功能,监控特性不影响性能。它能防止 SQL 注入,内置 Loging 能诊断 Hack 应用行为。
项目地址:
p3c S Fork5k
该项目包含了《阿里巴巴 Java 编码指南》、pmd 实现以及 IDE 插件相关内容。其中,指南整合了阿里巴巴集团技术团队多年来的最佳编程实践。随着开发者鼓励重用和更好地理解彼此的程序,大量的 Java 编程团队对项目之间的代码质量提出了苛刻的要求。该指南旨在解决实操中所遇到的编程问题,例如:容易遭受攻击的缺陷数据库表结构和索引设计、难以维护的混乱代码结构等。
项目地址:
ARouter S Fork1.9k
用于协助 Android 组件化改造的路由框架。可通过路由进行界面跳转,在模块化的项目中,解决因模块互相依赖冲突而界面互相无法跳转的问题。使用 ARouter 进行跳转,两个 library 互相不依赖,也可以相互跳转。
项目地址:
arthas S Fork4.1k
阿里巴巴开源的 Java 诊断工具,允许开发人员解决 Java 应用程序的生产问题,而无需修改代码或重新启动服务器。开发人员可以即时解决生产问题,而无需重新启动 JVM,也没有其他代码更改,从而提高开发者的工作效率。
项目地址:
ICE S Fork1.7k
简单友好的前端研发体系,具有可视化开发(通过 IDE 简化前端工程复杂度,同时通过适配器可接收不同的项目工程进行可视化管理,定制专属的前端工作台)、丰富的物料(基于物料拼装提高项目开发效率,同时提供丰富的 React / Vue 物料)高帽最佳实践、自定义物料等特性。
项目地址:
来源:阿里巴巴
漫漫开源再 10 年
可以看到的是,对于国内开源领域来说,2019 年是欣欣向荣的一年。GitHub 年度报告显示,无论是贡献者数量还是代码贡献量,来自中国的开发者都是排在第二,这表明中国的开发者及企业正在全球开源中发挥着越来越重要的作用。
在贾扬清的信中也提到,开源已成为中国技术的一张亮眼国际名片。同时,他也表示,开源现在已经成为了在互联网时代最好的大规模协作方式,,也创造了技术最大的公约数。
尽管时下开源已经成为一种潮流,但反观十年前,开源之路并非一帆风顺。2010 年夏天,阿里工程师在杭州开源了第一个项目 Dubbo。正如贾扬清在感谢信中所述,「当我们回想起为什么做开源的时候,也许理由都没有那么的高大上:也许就是单纯想分享一下代码,也许就是觉得社区很有意思,甚至也许不知道什么原因,代码放出去了,有人用了,于是我们开始开心地找同路人。」
之后的 11、12 年期间,Dubbo 的用户越来越多,Fastjson 正式开源,开始基于 Hadoop 和 HBase 构建大数据体系。再后来,一些不错的开源项目,例如 Druid、Sea.js、Arale 等也不断实现了开源。
来源:百度
看起来阿里云的开源工作势头很好,可阿里云整个部门却并不顺利。而一系列的社会变动,使得阿里不得不开始不断寻求变革,这也导致开源团队产生了大量的人员调动,这些变动让很多开源项目的维护人员发生变化,有的项目在这个过程中进展缓慢,有些则停滞不前。
但「念念不忘,必有回响」;尽管公司的大方向有了变动,可依旧有那么几个人选择坚守在开源一线,于是有了后来的 Flink 项目、《Java 开发手册》、Blink。再之后,慢慢也有了更多人加入开源社区,这条路渐渐愈发明朗。
这恰恰验证了贾扬清在感谢信中所表达的,社区是开源协作精神与创新的摇篮;也如整个开源团队所总结的那样:开源这条路,一个人走得很好,一群人可以走的很远,必须依靠社区的力量共同维护。
而今,开源已经成为了几乎所有开发者的共同心愿,开放源代码保留了用户最大的自由,并且为用户保留了战略上的灵活性。在不违反相关许可证的条件下,个人、公司对开源代码加以定制,变身为产品或解决方案;而这些解决方案往往又会反哺开源的发展。
毫无疑问,开源是一个双赢的良性循环;这也许就是为什么贾扬清在感谢信的最后,再次向广大的开发者们呼吁:「开源是开发者最大的同心圆,未来,我们希望与更多开源人一起,用技术普惠世界。」
附上贾扬清感谢信全文内容:
雷锋网 AI 开发者 雷锋网