近期,由开放原子开源基金会与 Linux 基金会亚太区联合开源中国共同举办的“GOTC 全球开源技术峰会”在上海世博中心圆满落幕。来自全球各个顶级开源基金会的负责人、开源社区参与者,以及全世界的开源爱好者共聚一堂。各位开源业内的专家以开源为题,以大会为媒,展开了一场深刻的行业趋势大讨论。
OceanBase 作为国内优秀开源项目的代表,蚂蚁集团 OceanBase 的 CEO 杨冰在峰会上分享了他过去几年在基础设施开源开放方面的一些思考,并通过回顾整个 OceanBase 的发展历程,总结了基础设施建设坚持开源与开放的重要性。
坚持,开源最初的信仰
杨冰介绍,自己跟开源技术的缘分由来已久。2009 年,杨冰加入蚂蚁集团,参与集团内部最大的金融体系分布式架构 —— SOFAStack 的研发,成为了整个中间件团队的负责人,不断带领着团队进行蚂蚁集团的科技商业化探索,并把像 OceanBase、SOFA 等等一些基础设施对外开放。他将“基础设施开源”作为信仰,并积极推动着蚂蚁集团内部一些分布式架构组件的开源工作。2020 年,杨冰正式加入 OceanBase 团队,与 OceanBase 创始人阳振坤教授一起积极推动项目的开源。
OceanBase 是一个原生分布式数据库,原生这个词确实是借鉴于这几年比较流行的「云原生」当中的“原生”,其中的理念也是一样的。“我们希望把简单留给应用开发,把复杂留给自己,应该在数据库内部解决分布式的问题。”杨冰说。
一个好的数据库是用出来的
常常被问到 OceanBase 与其他的数据库有什么不同,杨冰认为,有三点巨大的差异:
首先,从第一行代码开始,OceanBase 就进行百分之百的自研,那个时期市面上并没有一款数据库把分布式的模型设计当作是一等公民。“我们看到这是一个未来,所以我们从第一天开始,就选择坚持做原生分布式关系数据库。而在今年 6 月 1 日公司成立一周年这个契机,将 300 多万行代码开源,我们是希望能够将过去十年沉淀下来的技术跟大家分享,能够让大家更好地在分布式领域往下探索。”
其次,一款好的基础设施软件不是设计出来的,而是在不断的实践中迭代出来的,而 OceanBase 正是如此。杨冰表示,OceanBase 是目前全球唯一一个在大规模的金融级场景当中,长期经受考验并长期运行的数据库。对于基础软件来说,金融的场景算是最为严苛也最为重要的场景。杨冰和他的团队在十一年的时间里,参加了将近十次的双十一大战,是双十一的老兵,在“参战”过程中,OceanBase 经受住了各种严苛考验。近三年,OceanBase 团队也不断地与外部的伙伴和客户展开合作,探索了更多外部的使用场景。
最后,OceanBase 先后参加了由权威机构国际事务处理性能委员会(TPC)组织的 TPC-C 国际基准测试,并打破世界纪录成为榜首,OceanBase 经受住了国际标准的考验,也证明了分布式技术可以与数据库非常好地结合,并不断突破和发展。杨冰表示,希望 OceanBase 未来能够致力于成为一家全球性的、企业级数据库技术服务者。“数据库是一个非常高壁垒的基础领域,我们希望在这个领域能够发出中国人的声音,打造中国的品牌。”
天时地利人和铸就OceanBase
上世纪 60 年代,数据库技术先驱 Charles Bachman 提出了网状数据库模型,并领导提出了 DBTG 报告,颠覆性地指出现代信息系统应该“以数据库为中心”。1970 年,关系型数据库之父 E.F.Codd 发表《大型共享数据库数据的关系模型》一文,首次明确而清晰地为数据库系统提出了一种崭新的模型 —— 关系模型,用关系二维表的方式描述物理世界,让数据库技术变得更加流行,也为后来的数据库技术奠定了坚实的数学理论基础。
80 年代, James Gray 出现,在关系模型数据库蓬勃发展的过程中,他定义了事务模型的标准,使得数据库真正成为能够处理 mission-critical 应用的基础软件。
对数据库技术做出了重大贡献的图灵奖获得者 Michael Stonebraker ,相信很多人对他并不陌生,他参与了 Ingres 、ProgreSQL 等很多数据库的设计,也是不同数据库公司的创始人,创立了很多不同类型的数据库产品。
回顾整个数据库的发展,由几代伟大的图灵奖获得者推动,从理论突破到实践的不断轮回,到如今也并没有停下脚步。
杨冰认为,数据库发展遇到了两个巨大的挑战。
近年,科技的高速发展,人类社会数字化进程加快,如今的数据库必然会面临海量的数据存储和请求;第二个问题是,从 PC 互联网时代过渡到移动互联网,让人们可以随时随地使用手机享受所有的服务,这就对业务的高可用性提出了更高的要求。
而在十一年的发展过程中,阿里内部的数据库技术也经历了三大时代。
第一个时代,面对海量的数据和请求,阿里坚定不移地走向分布式的方向,也在淘宝、天猫、支付宝这样一些大型的场景中得以应用和创新。
第二个时代,为原生分布式阶段。OceanBase 从阿里巴巴集团的淘宝,慢慢转战到的支付宝,因为只有对于数据库有更高要求的金融级场景,才真正能够打磨和锻炼出数据库的性能,但是, OceanBase 面临的是金融+互联网混搭的场景,更要求数据库性能做到极致 。OceanBase 也不断地在创新、在突破,从传统的储备到多副本,到两地三中心,到三地五中心……OceanBase 一直在分布式方向上演进,如今已经具备城市级容灾能力。
第三个时代,OceanBase 从极致的 OLTP 场景慢慢向数据分析的方向延伸,进入 AP 与 TP 融合的 HTAP 时代。整个部署架构也从私有云走向混合云,乃至多云部署。更重要的是,OceanBase 从阿里内部的使用场景慢慢走向更广阔的外部通用场景,变得更加开放。也正因如此,团队决定将 OceanBase 开源。
杨冰表示,如果把蚂蚁内部的技术生态当作是一个小的社区,他们也是通过开源开放的方式先在内部加速了整个基础设施的发展。从本质上来说,OceanBase 是在蚂蚁和阿里内部特定的应用场景之下诞生,为应对不同时代的挑战发展迭代,包括如何应对无限扩展、应对流量峰、应对高可用等。OceanBase也 解决了不同时期分布式可扩展性、高可用、容灾等问题,使得底层基础设施标准化,从而能够投入到上层进行创新,推动整个基础架构的发展。
如今,OceanBase逐渐应用到了通用的场景,包括通讯、交通等各个领域。OceanBase 如今向外发展,开源能够吸引更多的合作伙伴参与共建,并不断走向成熟。
开源,基础设施建设的最佳途径
在峰会上,杨冰也抛出了自己对于基础设施建设的思考和观点。
基础设施软件的发展,无论是开源的还是闭源的,最后活下来、发展比较好的,一定会走向标准化和规模化。从最早的 Linus 无心插柳,以开源的方式搭建了 Linux 这一全球开发者共用的基础设施,到后来有了大量 Iaas 层的基础设施服务,整个技术的发展必须要等到底下的基础设施形成了一定标准和规模以后,才得以蓬勃发展。通过开源的方式,可以更快地形成这个标准。
形成标准的过程在 PaaS、大数据等技术领域,乃至 OceanBase 本身的发展过程中,都有充足的案例。例如在微服务通讯领域,通过开源开放的方式建立的 grpc 已经成为事实标准;K8s 成为了云原生基础设施建设的事实标准等。正是因为有了这些已经形成标准的开源软件,才使得开发者的精力不用消耗在兼容适配上面,又可以使得整个基础设施这个高楼可以不断地迭代往前发展。杨冰表示:“开源是基础设施实现标准化和规模化最佳的途径。”
此外,开源也会增加基础设施迭代速度。一款软件的核心竞争力并不在于当下它的功能有多强大,而在于其可以有多快的迭代速度。以 OceanBase 为例,如何能够在内部高速发展的十一年中保持节奏,在往更广阔的空间走的时候保持迭代的速度,主要有三大要素:
首先,开放是非常重要的。OceanBase 从内部的专有场景走向外部通用的场景,需要跟更多上下游的软件进行交互,在这样的方式下如果是闭源发展,只能走出去,外部不能走进来,OceanBase 跟整个生态的对接速度就会很慢。
其次是场景。因为基础软件发展到这样复杂的规模,需要经历很多场景的打磨,想要成为一个更加通用的软件,势必需要更加广阔的场景,开源的方式,能够更快地进入到不同的领域,并能不断打磨产品。
最后是学术。在过去几年中,有很多人跟 OceanBase 团队做过学术交流。探讨如何将分布式技术和数据库技术结合,研发过程的挑战等。虽然 OceanBase “理论突破+工程实践”螺旋式的上升,积累了大量的工程实践经验,但到了 2010 年之后, OceanBase 团队也遇到很多理论上的瓶颈。只有通过开源开放的方式,才能够更快形成产学研相结合的模式,从而健康地推动整个领域的发展。
过去一年,受疫情的影响,人们的生活变得非常不便,但也快速推动了全球各个行业数字化的趋势,有更多的场景被搬到了线上进行了数字化,而这些都离不开基础设施软件。而开源是基础设施能够保持核心竞争力,能够快速迭代的最佳的开发方式,是基础设施软件提升竞争力和适应性必要的手段。
杨冰表示,OceanBase 也会在开源之路上坚定地走下去,希望能够通过大家的努力,在开源世界发出中国的声音。