近两年,国内各大科技公司纷纷宣布成立开源办公室或者开源委员会,相较于其他很多企业还处于开源委员会或办公室的初期观望或摸索阶段,阿里巴巴早在 2009 年就建立了开源委员会,2019 年正式成立开源办公室,并于近期对开源委员会和开源办公室进行了新一轮升级。为了了解这次升级背后,阿里的思考和后续行动,InfoQ 专访了阿里巴巴开源委员会秘书长王晶昱,以期全面了解阿里巴巴自设立开源委员会和开源办公室之后的内部转变和对本次升级的思考。
1 设立开源委员会之初要解决的问题,进展如何?
如果追溯阿里巴巴成立开源委员会和开源办公室的原因,与其内部的开源发展历程有很大的联系。
截至今天,阿里巴巴开源走过了十多年,具体可分为三个阶段:使用,贡献,开拓。
使用阶段最早可追溯于 2006 年,彼时,淘宝业务高速发展,商业化软件已经无法满足阿里内部的需求。在本阶段,阿里逐渐引入了 Eclipse 开发工具、Memcached 缓存存储、MySQL 数据库等等,可以说,阿里技术的发展已经根植于开源的沃土中。然而,使用已有的开源软件来解决当下的业务难题无异于拿着马鞍找马,团队很快发现开源软件已经无法满足阿里对扩展性的极致需求。
“当时国外的业务没有那么高的访问量和并发量,在此场景下,我们必须自己研发一套产品。”王晶昱在采访时说道。为了支撑实际业务,阿里巴巴选择自研软件,并在此过程将一些不涉及核心技术机密的软件进行开源。阿里巴巴开源也从使用阶段来到了贡献阶段,并且为了尽可能规避公司及技术人员的风险,保障开源合规,开源委员会于 2009 年正式成立。
如果用一个词来概括阿里巴巴开源的贡献阶段,或许可以是“热情”两个字。
在此阶段,一方面,集团内部丰富的业务场景催生了很多开源项目,有些甚至到现在都耳熟能详,比如 Dubbo、RocketMQ (目前这两个项目已经捐献给 Apache 软件基金会等);另一方面,章文嵩作为 LVS 的作者,成为当时的开源委员会主席就像一个文化符号,为阿里巴巴开源注入了活力。
在他的大力倡导和支持下,阿里巴巴的开源热情上涨到一个前所未有的高度,除了常规的开源 meetup,还会举办年度开源年会聊聊各开源项目的进展,也会对优秀的开源项目进行表彰。但这个阶段,横向工具、合规制度仍有改善的空间。
这一局面在 2019 年得到了一定程度的缓解,为了给予员工赋能与指导,开源办公室正式成立,其主要职责是与开源委员会互相配合,把开源委员会制定的技术战略在阿里巴巴落地和执行,并保障更多开源项目的治理和运营。
在整个阿里开源的开拓期,在云原生、大数据、数据库、操作系统等领域都冒出了多个优秀开源项目和开源贡献:2019 年,阿里巴巴将经过内部实践优化的 Flink 分支 Blink 捐献给了 Apache Flink 社区;2020 年,阿里巴巴联合微软开源首个开放云原生应用模型 OAM/ KubeVela,以及首个边缘计算云原生项目 OpenYurt,在操作系统领域,联合国内外领先操作系统、芯片、云计算厂家共同发起龙蜥社区 OpenAnolis。PolarDB 作为阿里自研的核心数据库,也将 PolarDB-PG 和 PolarDB-X 进行了全内核开源,与社区一起共建云原生分布式数据库生态。
纵观整个国内开源历史,可以看出阿里巴巴开源的发展是典型且共性的,每一历程都符合阶段性的认知及行业需求,但尽管如此,这样的发展模式在当前又出现了新的问题。
2 本次开源委员会升级背后的思考
此前,阿里巴巴的开源模式几乎全为“自下而上”的模式,基于阿里业务场景积累的好产品进行开源,但这种模式存在的问题是个人行为缺少规范和引导,有的项目维护不持续,对开发者的可用性产生了较大影响,从而会直接影响企业在开发者心中的信任程度;再比如基础软件领域,每一个细分方向都能涌现出海量的开源项目,如何判断特定领域项目开源的必要性、如何确保开源项目和阿里整体的技术战略匹配度,也成为一个很大的挑战。
阿里巴巴内部对这些问题进行了深入的探讨 ,希望尝试从三个方面解决这些问题:第一,将开源与企业核心的业务战略或者技术战略相结合,从之前“自下而上”的开源模式逐步转变成“自下而上、自上而下”二合一的模式,以此来保障阿里明确战略方向上要投入的开源软件不会出现后续无人维护的情况;第二,通过战略引导明确核心开源领域,并设置多领域的负责人共同评估、判断某一开源项目,并推进开源战略的落地;第三,对存量开源项目进行更全面、规范的治理。
3 开源委员会升级后的三个行动点
2022 年 7 月 28 日,阿里巴巴集团 CTO 程立在 2022 开放原子全球开源峰会上带来了《共建共享数字世界的根》主题演讲,其中谈到:阿里巴巴对开源委员会和开源办公室进行了新一轮升级。针对其升级后的具体措施,王晶昱给我们详细叙述了以下三个关键行动点:
如何解决自下而上的问题?
首先,新的项目要开源,需要该领域的开源委员会副主席进行技术判断;其次,对于团队内自下而上的开源模式,阿里巴巴依旧全力鼓励,并会给与一定的孵化资源,自上而下不意味着严格控制开源,而是要在鼓励开源开放的同时,做好治理与扶持工作。
最后,从项目管理视角建立完善的开源项目治理框架,对开源项目分阶段、分类型进行精细化治理,建立系统的业务平台,有效厘清与甄别开源项目的生命周期,对处于不同阶段的项目进行具有针对性的治理与指导工作。
- 对于孵化期开源项目,做到能开尽开,保证法务、安全合规工作,加强开发团队的开源教育与指导,扶持社区健康快速发展。
- 对于稳定发展的开源项目,做好规模化社区的流程建设,加强社区中的技术合作与发展,持续服务好社区用户。
- 对于因技术或业务原因停止维护的项目,设计开源项目的退出机制,做好社区通知声明与项目归档工作,站好最后一班岗。
通过上述治理工作,在鼓励自下而上开源开放的同时,保证自上而下的宏观治理工作有序落地,在保证项目质量与生命周期管理中加速阿里的优秀内部技术实践往开源转化,为开源技术生态的发展添砖加瓦。
如何保证开源项目的专业性判断?
为了保证开源项目的专业性判断,开源委员会一共新设立了 9 位领域副主席,把基础软件领域的开源共建作为阿里巴巴开源的重心。同时明确了四个重要的开源方向:操作系统、数据库、大数据和云原生,并且进一步加大了在社区建设和研发上的投入。
据王晶昱描述,开源委员会的每位副主席都可以称得上各自领域的“一号位”,除了深厚的技术专业知识,他们本身就具备足够多的团队及资源,可以帮助公司内部做出更好的技术支持及专业判断,从而帮助相关技术领域孵化出更多创新产品,为行业输出更多优秀的开源项目。
通过明确核心领域,设立领域负责人的方式,通过副主席进行专业的技术判断,构建起一个良性的开源生态。
如何持续进行开源规范及文化传导?
19 年成立开源办公室以来,虽然在横向的流程、工具上做了很多工作,但阿里开源历史复杂,类型众多,仍然有很多治理不到位的地方。如何在开源的同时守住技术底线、如何保证公司及员工利益、如何让大家对自己的责任权利有更明确的分工认知,还有非常多的工作需要推进。这次开源委员会升级,对内提出了“开放、有序、踏实、利他”的开源文化,阿里巴巴的开源行动也需要变得更加有系统、有组织、可持续。开源委员会升级对内的第一步就是制定规则及流程机制,通过对团队进行核心培训从而明确底线,并且做到有迹可查,全面提高技术同学的安全合规意识,加强开源社区的规范建设和管理,保障阿里的开源项目安全、可靠地为开发者、企业服务。
同时,据王晶昱描述,他们会尝试邀请更多的外部技术大牛或开源业界的领袖型人物,向员工讲解国内外开源的优秀实践、最终成果、影响力以及具体实现方案等,从而做好文化传导,鼓舞开源士气。
让一切有迹可查,让文化持续传导,是开源委员会在升级之后开始做、也将是一直做的事情。
4 升级对企业及广大开发者有什么意义?
本次开源委员会升级,阿里巴巴还会在其明确的四大核心领域,即云原生、大数据、数据库、操作系统上,希望与业界优秀企业携手共建。
作为国内开源的第一梯队,阿里巴巴会帮助更多公司享受到整个互联网的技术红利,继而实现更多的创新,实现产品真正意义上的普惠。
而对于开发者来说,本次升级也意味着阿里巴巴将会把基础技术领域的一些核心产品以及过去 5 到 10 年积累的优秀实践,通过更多专业团队维护的形式,有保障地让外部开发者进行使用及开发。
大家可能近期会有些体感,在云原生方面,由阿里巴巴、bilibili、CloudWeGo、ShardingSphere 等企业与社区联合发起的 OpenSergo 微服务治理标准项目正式发布 v1alpha1 版本,重磅推出流量路由、流控降级与容错、数据库治理等领域的标准与实现。此外,在今年双 11,阿里巴巴核心的电商交易将升级全量跑在以 Dubbo3 为内核的集群上,标志着 Dubbo3 在阿里集团全面落地推广,通过本次架构升级将提升有效提高系统整体处理性能、为用户带来更好的体验。
在 AI 领域,阿里近期开源了 DeepRec、BladeDISC、Easy 系列(EasyRec/EasyCV/EasyNLP)等多个 AI 算法框架及平台工具,从场景到生产开发,贯穿 AI 全链路。基于近十年的大数据 &AI 工程实践,阿里云数智化云原生运维平台 SREWorks 开源,帮助运维行业更多的从业者采用“数智”思想做好高效运维。
除此之外,王晶昱还向我们提到了阿里巴巴今年新的起点—— 阿里巴巴开源开放周。他们邀请了业界顶尖技术专家学者,与阿里巴巴开源领军人和头部项目代表共同探讨开源领域的最佳实践和新机遇,旨在跟广大开发者产生更好的连接,并帮助他们探索开源路上的新可能。
而在询问开源委员会未来有哪些规划时,王晶昱分为短期目标与中长期目标进行了构想:
短期,开源委员会的当务之急,还是会继续明确或细化相应流程及规则,尤其在整个流程的机制、责任权利的分配以及团队与外部的协作三个方面,让大家做到铭记于心、有迹可查。
中长期,则是继续进行文化建设及开源战略化。最终目标有二,其一,让每个人都能清楚意识到应该在什么业务场景下选择开源、怎么借助开源的工具完成项目等;其二,公司能够从战略上具像化地定义出下一步要孵化的核心产品以及明确它对整个企业的好处、意义及价值。
5 写在最后
截至目前,阿里巴巴已经累计贡献了 3000 多个开源项目,全球贡献者累计 3 万多位。根据《中国开源十年洞察报告》显示,阿里巴巴已经连续十年蝉联中国厂商的开源活跃度和影响力的双第一。升级开源委员会之后的阿里巴巴能为开源生态发展带来什么样的输入?让我们拭目以待!
今日好文推荐
缺少软件开发文化,大众汽车陷入困境,CEO 也被赶下了台
我庆幸果断放弃了 SwiftUI:它还不够成熟
英伟达回应“对中国断供部分高端 GPU”;月薪 3.6 万工程师日均写 7 行代码被开;12 年黑进 40 多家金融机构老板赚百万获刑 |Q 资讯
在阿里达摩院搞了四年数据库,我来聊聊实际情况 | 卓越技术团队访谈录