阿里云以 Apache 2.0 许可证开源 PolarDB 分布式数据库
5 月 29 日,阿里云开发者大会上,阿里云宣布开源云原生数据库能力,开源关系型数据库 PolarDB for PostgreSQL,将阿里内部沉淀多年的技术分享出来,服务于百万开发者。目前,该项目已在阿里云官网及 Github 上发布,后续将引入分布式事务、单机高性能等能力。
阿里云数据库负责人李飞飞表示:
“我们希望将阿里云在数据库技术上积累的丰富经验,通过标准技术组件和系统的方式开放出来,共建开源数据库生态。”
数据库是基础软件中的刚需,与芯片、操作系统并列为“全球技术三大件”。开源模式广受数据库用户欢迎,被认为是互联网场景的标配。
PolarDB 是阿里云自研的数据库产品家族,采用存储计算分离、软硬一体化设计,既拥有分布式设计的低成本优势,又具有集中式的易用性,可满足大规模应用场景需求。计算能力最高可扩展至 1000 核以上,存储容量最高可达 100TB,集群版单库最多可扩展到 16 个节点,性能比 MySQL 高 6 倍。PolarDB 系列产品已连续多年稳定支撑天猫双 11,处理峰值高达创纪录的 1.4亿次/秒。
为满足用户多样化的需求,PolarDB 针对不同的数据库协议开发了不同的兼容版本,包括兼容 MySQL、PostgreSQL 和 Oracle 的版本,及每个版本的分布式形态。
此次阿里云开源的是 PolarDB for PostgreSQL 分布式版,包括数据库内核、相关插件、工具脚本、测试用例以及设计文档,适用于中大型企业核心业务场景。本次开源遵循 Apache 2.0 许可证,以全共享并尊重原作者著作权的模式开源,代码可以修改和再发布。
这让我想起来前一段时间 MariaDB 宣布了将它的分布式 SQL 引擎 Xpand 作为其 DBaaS 服务的 SkySQL 系统引擎之一,然而 Xpand 是一个专有的软件。这引起了业界对开源服务之上的专有服务的隐忧,因为这失去了开源的重要优势 —— 避免供应商锁定。
在业界,开源数据库众多,但是能将分布式能力也开源出来的罕有,而能形成产品级的、可以利用现有数据库基础设施的开源产品更是不多。因此,PolarDB for PostgreSQL 的这次开源可谓是不但给 PostgreSQL 注入了一剂强心针,而且也与 Xpand 这种开源引擎之上的专有服务形成了鲜明对比。
在对李飞飞的采访中,他谈到了为什么要开源 PolarDB:
“我们开源的目的是非常纯粹的,我们在开源这一部分没有任何商业化的目的,就是要把开发者的生态做起来。”
而且,他认为没有必要重新建立一个新的生态,在原本非常繁荣的 PostgreSQL 生态上“助力一把火,让它烧得更旺。我们希望让开发者可以在现有的 PostgreSQL 上做的更好。本质上就是把我们在 PostgreSQL 上积累多年的能力开源出来,回馈给社区,而且以插件的方式。”
而且,为了鼓励社区能参与进来,阿里云也体现了极大的诚意,采用了更加宽松、自由的开源许可证 Apache 2.0,“你可以再开发,你可以商用,都没有问题,我们完全鼓励。”
为什么这样做呢,李飞飞谈到:“通过这样把开发者生态建立起来以后,我们从中获得了什么?我们获得的是开发者对 PostgreSQL 整个大生态的持续的关注和投入,然后最终我们也会从中受益,因为我们会从开发者贡献的代码里面去汲取对我们有用的部分,我相信其他的厂商不管是云厂商数据库厂商可能也会因此受益。但没关系,我们认为水涨船高,只要整个的社区做起来,我们阿里云还一定会是领导者,我们有自信,所以我们愿意去做这件事。”
李飞飞认为:
“我个人认为开源是建立生态的非常关键的一个抓手,非常关键的抓手。它和商业化一定要非常好的平衡,但绝对不是说天然的就是矛盾的两面,矛盾的地方绝对有,不然的话大家不会这么纠结,但是我个人认为要处理好平衡,是需要有非常强的定力和判断力,但你一旦处理好,它并不一定就一定会发展成矛盾体,这是我个人的一个观点。”
我想,这应该就是阿里云坚定开源战略的主要原因之一。
但是同时他也表示,不要走到另外一个极端:
“大家千万不要落到另外一个陷阱里面去,认为‘开源就是灵丹灵丹妙药,开源就能解决问题了’。我个人也是非常反对这个观点,关键还是看你后续社区的运营,是不是真的用心在做这个社区,是不是真的有高质量的贡献出来,让大家真正的从里面能够受益。我觉得这个是后面的挑战。”
根据披露的 PolarDB for PostgreSQL 开源路线图,阿里云是有计划、有步骤的将主要的、完备的部分向社区开放。我想,这将揭幕云原生数据库的新时代。