1970 年,关系数据库之父、IBM研究员E.F.Codd发表了一篇名为《A Relational Modelof Data for Large Shared Data Banks》的论文,首次提出了关系模型的概念,并成为现代数据库产品的主流,这是数据库历史上的一个重要转折点,今天,我们看到的主流数据库几乎都是围绕这一模型做研究。
1976年,霍尼韦尔公司(Honeywell)开发了Multics Relational Dat a Store,开启了商用关系数据库的时代。彼时Larry Ellison(甲骨文创始人)正在一家名为Ampex的软件公司工作,该公司正为美国中央情报局工作。
1977年,Ellison 与 Bob Miner 和 Ed Oates创办了一家名为软件开发实验室(Software Development Laboratories,SDL)的计算机公司(Oracle前身),并在创办后的第三年里推出了第一个商用SQL关系数据库管理系统。
1983年,IBM终于将DB2带入了商业市场;软件巨头微软在1989年推出了另一个明星产品SQL Server。
自此,传统商业数据库几乎成为这些企业的专利,垄断了整个数据库行业市场。
谁来改变数据库“游戏规则”?
兴起于2000年左右的开源数据库是一种改变游戏规则的尝试,而由云厂商主导的云原生数据库则是将这种“改变”推向了高潮。
2014年,AWS发布了业内首个云原生的关系型数据库Aurora;2017年9月,阿里云在国内率先发布了自主研发的云原生数据库POLARDB,在2018年4月正式商用。
作为规则改变者,阿里数据库的研究本身也是一条艰辛的道路。
如何看待数据库云服务的未来?阿里有哪些核心的数据库产品?在阿里云十周年北京峰会上,雷锋网与ACM 杰出科学家得主、达摩院数据库与存储实验室负责人李飞飞展开了对话。
此李飞飞非彼李飞飞,他究竟何许人也?在达摩院的官网上,对李飞飞的介绍是:
犹他大学计算机系终身教授。曾获ACM、IEEE、Visa、Google、HP、华为等多个奖项,获IEEE ICDE 2014 10年最有影响力论文奖、ACM SIGMOD 2016最佳论文奖、ACM SIGMOD 2015最佳系统演示奖、IEEE ICDE 2004最佳论文奖、美国NSF Career Award、中国基金委海外重点研发奖,2018年ACM杰出科学家等。担任多个国际一流学术期刊和学术会议的编委、主席。
据李飞飞介绍,他是2018年5月正式加入阿里巴巴,成为数据库团队负责人,并兼任达摩院数据库首席科学家,带领团队投入到具有自主知识产权的数据库系统研发当中。他的团队打磨的产品和技术包括新一代分布式数据库、非结构化数据管理、数据安全、智能化数据库等。
目前,李飞飞不仅负责云智能数据库产业事业部,同时也负责达摩院下面的数据库与存储实验室,覆盖了阿里巴巴集团数据库从研发到业务支持再到云上商业输出到服务客户的整条链路。
阿里巴巴数据库三个阶段:商用、开源、自研
李飞飞谈到,阿里巴巴数据库发展到今天,并不是一蹴而就的,而是有一段艰难的“破茧成蝶”的摸索期。
第一阶段,阿里用的是商用数据库,来自IBM DB2和甲骨文。
阿里早期是淘宝起家,IBM DB2和甲骨文的数据库能支持淘宝天猫快速发展,因为那时候核心主航道就是电商,数据库就是支撑角色出现的,当时阿里集团内部数据库的团队主要就是以传统数据库厂商的角度来理解问题。这一阶段持续到2011年-2012年,彼时电商业务高速发展,对传统的甲骨文企业级数据库的解决方案提出很多挑战,最明显的挑战是成本太高,当高并发互联网电商发展到巨大的规模,那个成本将是天文数字。
第二阶段,双十一诞生后,阿里开始大规模使用开源数据库。
很多业务逻辑太复杂,而单纯使用甲骨文的弊端也开始显现,例如有些业务场景无法解决,简单依靠请甲骨文的技术人员到场解决问题的方式一是成本高,二是时效上阿里等不起。这边出个问题分钟级就要恢复,不要说一天了,几个小时几分钟都等不起,不可能有些核心问题解决不了给甲骨文打电话,厂商派人来——这个模式是受到挑战的,所以阿里巴巴集团从2012、2013年后,尤其是双十一诞生以后,就开始考虑所谓的朴素的业务驱动的逻辑,开始大规模使用开源数据库——当时就是利用中间件的形式来做分布分表。
第三个阶段,阿里云发展迅猛,自研云原生数据库诞生。
到了云的时代,阿里云的业务快速发展,加上在集团业务里面,传统的分布分表中间件的解决方案,已经不能满足(简单业务可以)业务越来越复杂以后的挑战,内部自研一款云原生数据库已经迫在眉睫。POLARDB就顺势而生了。
云数据库POLARDB是何新物种?
资料显示,POLARDB 是阿里云自研的下一代关系型云数据库,100% 兼容 MySQL,存储容量最高可达100 TB,性能最高提升至MySQL 的 6 倍,单库最多可扩展到 16 个节点,适用于企业多样化的数据库应用场景。POLARDB 采用存储和计算分离的架构,所有计算节点共享一份数据。
POLARDB基于Cloud Native(云原生)设计理念,其架构示意图及特点如下:
POLARDB架构
POLARDB的特点主要包括:
一写多读。采用分布式集群架构,一个集群包含一个主节点和最多15个只读节点(至少一个,用于保障高可用)。主节点处理读写请求,只读节点仅处理读请求。主节点和只读节点之间采用Active-Active的Failover方式,提供数据库的高可用服务。
计算与存储分离。满足公有云环境下用户业务弹性扩展的刚性需求。数据库的计算节点(DB Server)仅存储元数据,而将数据文件、Redo Log等存储于远端的存储节点(Chunk Server)。
此外,POLARDB还具有分钟级备份恢复、秒级弹性扩容能力,100%兼容MySQL 5.6、MySQL 8.0、Oracle、PG等,还可以为Raft协议提供金融级高可用服务。雷锋网注意到,目前POLARDB已经在猿辅导、心动网络、百胜软件、轻松筹等平台上应用。
阿里数据库生态:四大板块,巨大场景
但实际上,POLARDB只是阿里数据库生态的其中一个版块。
外界眼中那个“很庞大很复杂”的阿里数据库究竟长什么样?李飞飞做了简单的梳理。他指出,从形态上来说,分为四个版块。如图。
第一块:OLTP——关系型交易型数据库。包括:POLARDB-X(今年即将推出的POLARDB分布式版本):分布式关系型数据库系统,横向扩展架构设计,应用于跨IDC多活和双十一等高并发业务场景;POLARDB——Cloud Native数据库,基于共享存储计算分离架构的软硬件,一体化设计、弹性缩扩容;MySQL/PG/MSSQL/MariaDB/PPAS——开源及第三方商业数据库。
第二块:OLAP——在线分析类数据库。包括:AnalyticDB——海量数据实时高并发在线分析云服务;Data Lake Analytics——Serverless化的联邦数据湖交互式分析服务;TSDB——时序时空数据库,应用于IoT/城市大脑等。
第三块:NoSQL——非结构化及专有领域。包括:GraphDB——高性能分布式缓存系统及基于此的图数据库;Redis/Memcache——开源缓存云服务;MongoDB——文档型数据库等。
第四块:工具产品。包括:DTS——数据传输服务,异构多活数据同步中心;DBS——数据库云备份服务等。
前面已经提到,发展成今天这样的数据库的生态,阿里经过了漫长的探索。李飞飞觉得,这和阿里与生俱来的一个优势紧密不可分——巨大丰富的场景。
传统数据库厂商的做法是,研发一款数据库产品,让客户使用之后进行反馈,可以缝缝补补;而阿里内部天然具有大量的业务场景,这就形成了一块巨大的“试验田”,任何一项新技术都不会急于在公有云上向客户输出,而是经过“内部练兵”的方式来验证和保证可靠性、安全性,这些工作做完之后才会对公有云、私有云、混合云的客户进行发布和提供。
这一点是阿里云、AWS这样的企业共同具有的优势,而传统的数据库厂商则并不具备。
全球数据库大战一触即发!
今天的阿里数据库在国内已经属于领先,但在国际市场怎么看自己的位置呢?
李飞飞同样有自己的想法。他以原生分布式数据库技术为例讲了讲(雷锋网注:原生分布式数据库是分布式数据库两大解决方案之一,另一种则是出现地更早的分布式数据库中间件)。
在世界范围内,原生分布式数据库技术最领先的是Google,它最早提出Spanner,可以做到跨数据中心的数据一致性分布式技术(2009年10月25日,Google提出名为Spanner的远景计划。该规划的原理是一旦流量激增、硬件超负荷,数据就会在百万级的数据中心中自动转移。Spanner:“扳手”,又有“桥梁的交叉支撑”。寓意为:“横跨数据中心,自动移动与复制数据。”)Google在Spanner数据中心里配备了自己的原子钟和GPS接收器,这些时间协调装置会连接到特定数量的主服务器,然后再由主服务器向整个谷歌网络中运行的其他电脑传输时间读数。
李飞飞觉得Google有一个取巧的过程,即利用了硬件(原子钟)。他个人认为阿里巴巴在分布式数据库某些领域、某些维度上可能超过像Google这样的一些公司在分布式领域的积累。为什么?
“我觉得任何技术都是业务推动来衍生的,只要你有业务场景,我觉得你的技术一定会逐步发展到领先。而阿里电商双十一的场景在世界上都是绝无仅有的,规模和并发量是超过Google和亚马逊的,此前亚马逊做了一个类似双十一的活动,结果数据库直接宕机。”(雷锋网注:此次宕机事件有可能指的是CNBC报道过的亚马逊因放弃Oracle数据库,导致Prime Day宕机 )
值得关注的是,李飞飞还透露了两个重要的信息:
1、2019年下半年,他们团队有可能将公布云原生数据库POLARDB和分布式关系型数据库X-DB合并的最新进展,也就是前文提到的POLARDB分布式版本。
2、他们团队将在2019年的ACM SIGMOD数据管理国际会议(全球数据库领域具有最高学术地位的国际性学术会议)上分享双十一场景下的分布式数据库架构。据了解,谷歌Spanner、AWS Aurora等都是首先在SIDMOD会议上发布的。这实际上意味着中国厂商从技术上与顶级数据库厂商站在了同一个舞台上。
“从技术和商业角度往前看,我们希望永远以业务来驱动技术发展,而不是闭门造车,研而不发。我们不说领先世界,但我们希望能够永远站在世界的前列,和AWS、甲骨文这些厂商站在技术和商业数据库第一阵营的位置。”
对于业界极为关注的不同厂商数据库之间的兼容问题,李飞飞一并做了解答。
他表示,阿里将尽可能去兼容现有生态而不是破坏现在的生态。业务上,阿里会鼓励支持更多中小开发者以及合作伙伴、生态合作方能够围绕阿里现有的体系去开发上层的应用,维护管控一系列的工具和人力投入。商业打法上,阿里会有专门的支持计划推出,面对金融行业、政府行业、新零售行业重点打造典型案例。当双方数据库之间有一个良性循环,生态做的足够大,就可以独立发展自己的生态。
“当我这个热带雨林也长起来以后,就是一个独立的热带雨林,从你这分叉出去,就是我的目标。不过我们现在还没有到那一步,这是我们最终的目标。”
在阿里云北京峰会当天,阿里云发布了POLARDB v2.0,这是业界首款兼容Oracle的云原生数据库。
加入阿里:迎接挑战,带领团队走向更远
李飞飞坦言,他也面临着一些挑战,但雷锋网认为这也是行业的一些共性挑战。
第一个挑战是内外部的压力。假如把传统数据库厂商比喻成汽车制造厂商,专门造车就完事了。而阿里不仅要造车,还要同时支持集团的业务、服务云上的外部用户——既是制造商又是4S店,既有研发又有运维。
第二个是混合云的数据架构带来的业务上的挑战。虽然说现在云计算市场蓬勃发展,无论是国内阿里、腾讯、华为还是海外的AWS、微软Azure,都面临一个问题——上云不是黑和白、0和1的问题,而是有些业务可以上云,有些业务不上云(仍旧保持传统IT架构),如何保障安全稳定高效的混合云部署是有挑战的。
第三是数据的安全隐私保护,无论是AWS还是阿里云,这是一个永恒的话题。
第四是智能化系统的大规模落地应用。现在系统形态复杂、数据量越来越大,运维挑战越来越高,依靠人力投入不是一个最佳选项,必须利用AI和机器学习的技术尽可能解决问题,提高运维效能。
但这些挑战是李飞飞加入阿里之前就能想到的。作为横跨了学术界、科研界、工业界的“全能型”技术人,他深刻洞悉了他在企业和学术圈的不同:
“企业界更多从应用需求出发,先解决问题再看怎么继续跑,类似5+5不知道怎么计算的时候就全部拆成1,用工程化的思维去解决问题;而学术界和科研界会关注一些单点核心技术的突破和优化,甚至进行前沿布局,但离集成到商业系统有一段路程。”
在采访最后阶段,谈及加入阿里的原因,李飞飞十分直爽地表示,阿里的业务场景丰富,是一个天然的数据库的圣地,能支持各种业务练兵,做最牛的技术,同时又能商业化产业化。另外,他坦言,阿里互联网化程度高,开放式、有合力,他在美国待那么多年,比较适应这种文化。选择加入阿里是个很自然的过程。
现在,全球数据库市场竞争激烈,传统厂商实力强大,李飞飞还将带领阿里云数据库和达摩院数据库与存储实验室,继续走向更深更远处。