【導語】以中國人民大學經濟信息管理系首任系主任薩師煊於 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」;不僅要具備非常好的開發能力、系統設計能力,也要具備非常優異的算法能力。