【导语】以中国人民大学经济信息管理系首任系主任萨师煊于 1978 年在黑板上首次写下“数据库”三个字为开端,中国数据库在 Oracle、DB2、Informix 等主流产品笼罩的市场中,在「看不到硝烟,却听得见炮火」的道路上,从科研走向产业,从彼时 ebay、淘宝、支付宝等巨头的推进走向自研,如今也在云计算开辟的新赛道上,实现了逆风翻盘。
激荡四十载,现下国内厂商所筑造的丰富生态不亚于国外,以最初高举“去 IOE”大旗的阿里巴巴而言,在其生态中,从传统的网络型、层次型、关系型数据库到云数据库及众多自研产品的应用,阿里引领了一条属于自己也属于业界的数据库进化之路。值此之际,CSDN 与阿里云数据库的总负责人、达摩院数据库首席科学家李飞飞(花名飞刀)相约阿里云 EFC 总部的昆仑顶,论数据库之道,解锁鲜为人知的阿里云数据库故事与其背后的团队文化。
去年今月,我在杭州云栖小镇见到了行癫,他有一句「技术牵引,需求驱动」让我留下了非常深刻的印象,并且还以既是阿里云数据库的总负责人又是达摩院数据库首席科学家的李飞飞(花名飞刀)为例,说起阿里产品研发和科学研究是「一脉相承」的。
今年此时,在由阿里云联合英特尔共同主办的第二届数据库大赛 —— Tair 性能挑战如火如荼地报名之时,我见到了李飞飞,他同时说下了这样一句话 —— 将「登高望远、仰望星空」的能力和「日拱一卒、落子无悔」的工程师文化结合起来。
在数据库这一技术领域已成魁首的李飞飞,由学术界进入产业界已有两年多,这也是阿里云数据库全面开花的两年,譬如 OLTP 的 PolarDB、OLAP 的 AnalyticDB 和 DLA、NoSQL 的 Tair 与 Lindorm 等。
在王坚院士的《在线》一书中,他深入地谈到对「进化」的思考,互联网是世界向「在线」进化,云计算是计算机向「计算」进化。而在数据库这一领域,也正在发生由传统数据库向云原生数据库进化。
这一点在阿里数据库体系上体现得尤为明显。从最早依赖商业软件,拥有 20 多个节点的 Oracle RAC 数据库集群,成为开发使用开源 MySQL 最好的企业之一,再到云托管数据库以及今天的云原生分布式数据库,阿里数据库完成了从商用、开源到自研的发展路径,并以极其迅猛之势形成山河。
云原生数据库的黄金时代
对于李飞飞本人,相信业界不少从业者并不陌生。和人工智能界也是斯坦福大学计算机科学系教授李飞飞同名,男版李飞飞是全球数据库与大数据领域的领军人物,是 2018 年度 ACM 杰出科学家之一。目前担任了中国计算机学会 CCF 大数据专家委员会副主任、CCF 数据库专业委员会常委等职务,也是国际顶级数据库与大数据学术及技术会议 VLDB 2021 和 IEEE ICDE 2021 的工业界大会主席。
这位爱笑也有着程序员式幽默的大牛,在加入阿里巴巴近三年间,以低调的行事风格在业界一次又一次地“高调”地呈现了诸多的解决方案,并带领着阿里数据库团队与达摩院数据库实验室多次攻克云时代下数据库技术的瓶颈,如自研关系型数据库 PolarDB 的诞生,也实现「云原生数据库」的跨越性发展。
同时,李飞飞也坚信,“传统数据库会像马车一样被淘汰。”
而在云生态发展下,「云原生数据库」已成为不可逆的趋势之一。
对此,李飞飞解释道,所谓云原生,重要有两大部分:「云」与「原生」。其中,云,即用虚拟化的技术实现资源池化。而「资源池化」的定义,可追溯到六十年代的冯·诺依曼架构,因为它奠定了现代计算机体系架构。冯·诺依曼中有最核心的两个要素:计算和存储,它们构成了冯·诺依曼架构的基石,可能还要加上第三个要素——计算和存储之间的通信。在单机部署情况下,通信就是计算和 Memory Bus、IOBUS。但在集群部署的情况下,计算和存储的通信就是网络,这是经典计算机架构。
传统的数据库系统都是基于上述经典的传统架构来设计的,但这里出现了一个问题,传统数据库系统因系统架构方式,必须是紧耦合的设计方式,才能最大效能地发挥出系统优势。类似于过去在村庄中,各家根据自己的用水量打一水井使用,这与传统的数据库系统使用计算、存储资源的方式是一样的,它是紧耦合的。
但如果水不够了怎么办?李飞飞表示,「这就需要用到传统数据库系统中经常提到的业务扩容。在传统的金融行业,数据库系统扩容需要提前几个月甚至半年做规划,进而细致部署、缜密实施,上线-灰度-再验证,一整套流程就是为了扩容、缩容。」
现在,随着云原生的到来,无须使用紧耦合的方式来部署和使用资源,不用家家户户打水井,而是整个村庄联合起来打一个湖或池塘,修管道连到各家各户的厨房里,这就是资源池化。在资源池化之后,可以按需按量使用、弹性调度资源。也可以将资源进行解耦。
时下,业界在计算存储分离方面,是将 CPU 和 Memory 绑在一起,和 SSD 持久化存储分开。李飞飞表示,随着 NVM 非易失技术的成熟,下一步甚至会将 CPU 和内存再进行隔离,内存再进行池化,形成三层池化,进一步隔离、弹性,更好地帮助客户实现按需按量使用资源。
正如上述提及的「水井和池塘」的逻辑,随着池塘不断变大,越来越多应用迁移上云,池塘不再是池塘,而将变成了江河大海,池塘与池塘之间还可以利用传统分布式技术进行打通,实现云原生+分布式的架构。这样做带来的好处,就是经济学里经常听到的一个基本、朴素的道理 ——规模化应用后带来边际成本下降效应。这个效应将会体现产品上,客户也因此受益,它的 TCO 一定会下降。规模化实现后,边际成本一定会下降,这是颠覆不破的经济学原理。
同样,如果有 1 万吨水,要维护 1 万个独立的井,和 1 万吨水放在一个水库里维护,哪个更简单?“事实上,现代人类文明发展已经很清晰地告诉我们答案是什么”,李飞飞说道。在规模化带来的边际成本下降即云原生带来的技术红利以及经济红利,向云原生技术演进的趋势是自然发生并非常清晰的,不论用公共云还是专有云私有化部署,都一样。
因此,云原生数据库正当时。
阿里云内存数据库的全面破冰
细分层面,在企业级云原生数据库赛道上,阿里在推出核心的云原生关系型事务数据库 PolarDB 以及分布式版 PolarDB-X 的同时,在传统的 OLAP 领域,推出了新一代云原生数据仓库 AnalyticDB(简称 ADB)以及云原生数据湖分析 Data Lake Analytics(DLA),ADB 也具备存储计算分离、存储池化、弹性、高可用、离在线一体化的大数据处理能力,用数据库的方式支持客户去处理传统大数据问题。DLA 利用云原生 serverless 的技术方式和架构设计,实现低成本高效的一键建湖,自动发现和管理多源异构数据源的元数据,并支持 delta 变化。用云原生 Serverless 的方式实现低成本数据湖构建和计算与分析。
在 NoSQL 领域,阿里推出了两个核心产品,一个是云原生多模数据库 Lindorm,李飞飞对此用了 6 个字总结了其主打的特性,即帮客户提供「存得起、看得见」的非结构化、半结构化的数据存储与处理解决方案。由此客户可将海量的非结构化和半结构化数据存储在 Lindorm 中,并以简易、高效的方式处理和查询数据,比如时序、日志、文档等。
另外一款最为值得关注的也是与本次「Tair 性能挑战」数据库大赛赛题非常相关的缓存亦或者将其称之为「内存数据库」产品——Tair,100% 兼容开源社区版的 Redis。
事实上,Tair 并非是一款最新的产品,早在 2010 年 4 月,Tair 就已首次对外发布。对于 Tair 研发的初衷,李飞飞解释道,最早为了支持双十一的场景全面自研的产品,后来阿里又参考了 Redis 的设计理念,进行了大量技术创新,从而演进而来一款「缓存」、「内存数据库」的产品和技术。如今,经过了十年的发展,无论是在淘宝、天猫,还是优酷等产品中,都能看到 Tair 的身影。
相较于传统缓存,Tair 有了很大的功能性改进。过往,传统的缓存是架在一个关系型数据库或者 NoSQL 数据库,类似像 MySQL、PostgreSQL 或者 HBase 前面的,主要是为了解决冷数据访问 IO 延迟比较大的问题,将数据可以 cache 在缓存这一层。
阿里云数据库团队在缓存技术深度理解的基础上做的大量的深度创新,比如热点打散、智能化冷热数据分离、将一个集群内存进行集群化的管理和使用和调度等,由此极大提升应用对缓存、内存数据库的访问,提升效率和降低成本。
同时,Tair 结合英特尔 AEP(Apache Pass)非易失内存技术与神龙虚拟化技术,可提供一个基于云原生缓存池的内存数据库,并且具备持久化能力。由此,可以极大简化企业在使用缓存所带来很多传统挑战。另外,「性能也有极大提升,在标准的 Benchmark 上,同样的资源消耗情况下,Tair 性能有 2-3 倍提升」,李飞飞分享道。
Tair 的下一步规划
Tair 在云上被称之为「企业级的 Redis」,李飞飞表示,后续也会将 Tair 品牌正式商业化。目前,第二届 Tair 性能挑战数据库大赛在即,李飞飞从未来规划层面也分享了 Tair 的下一步演进路线。
在业界有了类似 NVM 技术、非易失的缓存,如英特尔 AEP 的今天,该如何更好地利用硬件特性设计下一代企业级云原生缓存、云原生内存数据库?解决哪些问题?举例说明,原子读写一致性、在内存中完成计算建立索引并保持索引和数据一致性、高并发情况下写入索引 Update 的挑战 以及 NVM 带来的单位 Byte 价格下降但是 RT 和 Throughput 相对 DRAM 没有太多损耗的情况下,是否可以做一个智能化的内存池,有 NVM、DRAM,且根据业务需求可以动态化调整 NVM 和 DRAM 的比例,这样可以满足在并发高、写入大、访问量大的情况下 RT 没有变化,但是 NVM 越多使用成本越低,智能化地进行调整。
这其中仍有许多未知的、值得深入研究的问题,李飞飞表示,这也是本次基于 Tair 与英特尔共同在神龙虚拟化平台上设计了本次大赛赛题的初衷。希望基于上述所提及的新存储媒介,像 NVM 非易失内存,类似于像英特尔 AEP 的技术和产品,去打造和研发下一代云原生缓存、云原生内存数据库。同时,通过这次大赛,在阿里云神龙裸金属服务器上的持久内存存储介质,可以让大家接触到最新技术、最新软硬件一体化设计的理念、云原生的理念,以及内存数据库发展的最新趋势,为大家提供一个展现自己的才华舞台。
另外,李飞飞透露,下一代 Tair 计划集成达摩院数据库与存储实验室做的一系列工作,完成智能化冷热分离。同时,将机器学习、深度神经网络技术带到缓存管理中,实现智能化、透明的冷热分离,这样无论是阿里内部,还是业界企业、工程师在应用使用 Tair 时可以更加得心应手、更加透明,更加不用关心内核的非常复杂的理念。
云原生数据库反超背后,阿里的生态构建
整体来看,Gartner 预测,到 2023 年全球将会有 3/4 的数据库跑在云上。放眼全球云数据库市场,据 Gartner 每年发布的云数据库市场分析报告显示,阿里云数据库市场份额已经实现了全球第三、亚太第一,仅仅落后于亚马逊和微软,超越了 Google 和 Oracle。
在中国数据库激荡 40 年间,国产数据库为何沉寂多年,直至近几年间角逐世界舞台?对此,华东师范大学副校长周傲英教授曾在谈及中国数据库发展时,这样说道:「数据库一直都是中国的切肤之痛,从六五(指第六个五年计划)开始,我们就在立项,我们要做自己的数据库,但我们一直没有弄明白,为什么我们做不出来自己的数据库,后来到了互联网时代,我们一下子醒悟过来了,就是生态。」
这一点,也与行走于数据库研发江湖多年的李飞飞思想不谋而合,无论是操作系统,还是时下的数据库,最难的或许不是自研,而是生态,正所谓「得生态者得天下」。
在阿里的生态体系构建中,李飞飞表示,开源和标准是建立生态的方法之一,但不是唯一,这并不意味着不开源就没有办法形成一个好的生态,这两个不划等号。比如,传统的商业数据库 Oracle、SQL Server 也没有开源,但 Oracle 的生态做得非常好,全世界(包括中国市场在内)有无数合作伙伴和 Oracle 建立紧密的生态合作关系、商业合作关系。在这个过程中,阿里主要采取了两大战略:
第一,核心产品包括 PolarDB、PolarDB-X、ADB、DLA、Lindorm、Tair,100% 兼容或者高度兼容现有的主流生态,而不是另起炉灶、自我封闭。对此,阿里选择坚持自主可控自研,不开源,但这也并不代表其不支持开源社区。
第二,数据库的生态之所以叫「生态」,有一个很关键的逻辑和观察,即「多样性」。这也是为什么传统的数据库领域中有 OLTP、OLAP、NoSQL 等多种分类的原因。对此,李飞飞认为,“生态非常重要,亚马逊雨林是生态,张北防护林不是生态。不要只做 TP 数据库、事务处理,接下来几年的发展会越来越多看到像 HTAP 这种技术,将在线事务处理和分析合二为一,将在线分析和离线计算合二为一,我们会越来越多的看到数据库和大数据系统的结合。从产品体系上,要为客户提供端到端的数据从生产到处理、从存储到计算分析的解决方案。这也是为什么 Gartner 的最新的魔力象限调查提出了There Can Be Only One DBMS Market, 将 DMSA(Data Management Solution for Analytics)与 OPDBMS(Operational DBMS)合二为一为 Cloud DBMS 一个魔力象限,”基于此,阿里在生态构建上同样从两个重要维度展开:
合作伙伴,确认标准、使用体验是不是开放兼容,和合作伙伴一起打造一个丰富的生态;
产品体系是不是足够丰富,帮客户用一套数据库的标准,来解决数据处理、存储、计算、分析的痛点。
李飞飞表示,“这也是为什么阿里会推出 Tair 的原因,它不是传统意义上的关系型数据库、事务数据库。但我们都知道,内存计算、内存分析,尤其随着包括 AEP 非易失性内存技术的出现和发展,会对数据分析、数据处理领域带来本质的冲击和改变。”
云时代,数据库人才的机遇与挑战
「登高望远、仰望星空」的能力与「日拱一卒、落子无悔」的文化融合
最后,在数据库人才培养方面,阿里巴巴集团副总裁、高级研究员、达摩院数据库首席科学家、阿里云智能数据库事业部总负责人的李飞飞表示,「阿里内部鼓励天马行空、星辰大海的科研,但同时强调要脚踏实地。」
在达摩院的数据库与存储实验室里,李飞飞要求每个人做的 50% 是星辰大海,这可能在短期内不一定看到应用业务产生商业价值的渠道。但科研,在很多时候,与人类吃饭类似,你吃了 10 个馒头吃饱了,但如果没有前面 9 个馒头,只吃第 10 个馒头,永远吃不饱。同时,李飞飞表示,实验室里鼓励大家做一些开放式的前沿探索,但同时手上也要有一些项目和技术是真正和数据库事业部紧密结合能够马上落地的。
对阿里云数据库事业部而言,李飞飞表示,阿里数据库事业部的核心逻辑是从技术到产品、从产品到商品,然后从商品倒推产品怎么做、技术怎么做。既然是商品,就要非常清楚考虑毛利、净利、商业化模式是什么,商业利润从哪里来,把这些问题都要想清楚,然后倒推到产品、技术上。
基于以上,李飞飞用一句话总结——将「登高望远、仰望星空」的能力和「日拱一卒、落子无悔」的工程师文化结合起来。数据库是一个产业化系统,要从产业中来、回到产业中去,结合科研一起去做。
「Work hard and work smarter」
在智能数字化时代,面对竞争愈发激烈的人才市场,李飞飞用「Work hard and work smarter」这一句简短却蕴藏智慧的句子,希望能为当下时代的年轻人带来一些思考。
无论何时,「你要聪明地全力以赴」。在新的时代里,开发者不能光关注懂什么语言、知道怎么写,还是要深刻理解里面的“Why”;不仅要具备非常好的开发能力、系统设计能力,也要具备非常优异的算法能力。