天天看點

分久必合的Lindorm傳奇

《三國演義》第一回:“話說天下大勢,分久必合,合久必分。”

這是阿裡雲原生多模資料庫負責人天梧最喜歡的一句話。“就像我們資料庫的研發一樣,從集中式到分布式,再到多模的出現和發展。”

2009年,阿裡巴巴首先提出用分布式架構替代傳統商業資料庫,成功用自主開源的AliSQL支撐雙11資料洪流;2016年,為應對超大規模業務場景,阿裡雲開始自研分布式資料庫。十餘年間,阿裡巴巴資料庫完成了從商用、開源到自研的發展路徑,并以迅猛之勢形成山河,但其在技術上的投入從未停止……

不久前的阿裡雲開發者大會上,阿裡雲帶來了其自研雲原生多模資料庫Lindorm的最新應用及其背後的故事。

分久必合的Lindorm傳奇

一  網際網路時代,資料井噴式增長

上世紀70年代末到90年代初是資料庫從理論到實踐逐漸成熟的黃金時代。資料庫是承載資料的基礎,好比數字化社會的交通設施,概念不新但是剛需。最開始,資料庫部署在小型機上,解決一些企業内部的資訊管理問題。随着網際網路web2.0網站的興起,傳統關系資料庫在處理超大規模和高并發場景時已顯力不從心。同時,資料時代,管理業務資料已經不是對資料庫唯一的訴求了。

從海量資料中挖掘價值成為新的方向,資料需求變得多元,非關系型資料庫NoSQL應運而生。NoSQL資料庫種類繁多,最大的特點是——不再局限于關系資料庫的事務限制和關系模型。在這些資料庫中,有些特别擅長處理文檔類資料,有些偏向于KV類資料……大神們一個個登場,産品越來越垂直和多樣。當然,伴随着多樣性,一個令人頭疼的問題也出現了。比如今天要開發一個應用,可能需要四五個資料庫來滿足需求。對于任何一個應用,它會變得很重,開發的靈活度也會變低,成本也很高。類似于過去家裡既要買一台電話機,又要買台照相機,可能還要買專業影機,烏壓壓一大堆,不僅笨重還占地方,掌握所有裝置更是令人抓狂。到物聯網時代,産生資料的裝置指數級增長,應對業務所需的資料庫種類也越來越多,這種抓狂到了難以忍受的地步。

分久必合的Lindorm傳奇

物聯網資料的特點

在這樣的背景下,多模資料庫橫空出世。

“多模資料庫”的概念,最早起源于2012年的全球NoSQL大會上,設想一個系統可處理多種類型資料,以簡化應用資料架構,減少開發維護成本。“業務使用的多套資料庫之間有些資料是需要關聯的,簡單看多模就是在其上再封裝一層,統一調動不同資料引擎,來承接最上面的業務。”天梧說。

就這樣,擁有不同能力的葫蘆娃合體,成了全能選手——金剛葫蘆娃。

二   “使用者需要一個智能電視機,你卻給他一個全家桶”

“我們希望自己把複雜的多套資料庫組合封裝的業務邏輯做掉,打造一個智能的多模資料庫。”天梧舉了個例子:以前,相機拍好照,需要通過電腦上傳後,再用社交軟體發出去。有了智能手機,拍照後立馬就能分享,這背後,就是IM通信跟攝像的融合。在天梧的設想裡,多模資料庫要做的,就是成為資料庫裡的智能手機。

當然,理想很豐滿,現實很骨感。

想要把并不糅合的兩類資料放在一起,并不容易。對于資料庫來說,融合相當于自己了解資料特點和需求,自己融合資料。是以,原來應用層會碰到的問題,都下沉給了資料庫團隊。比如,光是一個一緻性的問題,就搞得天梧愁眉不展。

分久必合的Lindorm傳奇

阿裡雲原生多模資料庫負責人天梧

不僅天梧,業界所有嘗試多模技術的老哥們,都累得夠嗆。大佬的提法雖然不錯,邏輯上也過得去,但實操起來,一堆Bug。琢磨來琢磨去,大家預設,得,那就整個組合包吧。參考業界組合式資料庫方案,多模資料庫孵化版初現雛形。

孵化版最早是在阿裡雲HBase上做,天梧團隊把基于HBase搭建的四個資料庫組合了起來,統一的産品界面,看上去,似乎有了一個多模資料庫的概念。但其實就像一套家庭智能影音系統,電視機是電視機、音響是音響,不過都基于阿裡雲平台,有一個統一的購買管道、産品界面和售後而已。“實際上,本質還是多套系統”。天梧心裡比誰都清楚,“使用者需要一個智能電視機,卻發現賣給他的是一個全家桶”。而且這套“全家桶”還有個最大的BUG。在最核心的資料處理存儲這一層,這四套資料庫是獨立的。這點在物聯網的場景裡,尤為緻命。

過去,Lindorm的客戶阿裡雲IoT平台在公共雲的架構方案是基于多套資料庫實作的,雖然複雜一點,但畢竟每套系統背後都有體系化的支撐,資源上也能夠彈性,業務還是能work的,但是當用這個方案去做混合雲輸出的時候,就特别痛苦,因為每一套資料庫的背後都是一個龐大的系統及其資源開銷。為解決這個不同,客戶公共雲用阿裡雲HBase等多套資料庫,到了線下混合雲不得不換一套小一點的、輕量靈活些的架構,且完全得自己維護。每個應用最起碼要騰出兩個人來專門做資料的處理、銜接,成本極大還沒法做到可靠性和一緻性。

“如果能提供一個公共雲混合雲線上線下的統一架構,将會是一個巨大的提升。”做一個真正的多模資料庫的想法,在天梧心裡生根發芽。

三   “我們背後,是整個阿裡雲分布式系統”

事實證明,“縫縫補補帶不來真正的技術革新”。想要做到線上線下統一架構,建構真正的多模,需要投入大量人力資源,從頂層設計到落地推進,大刀闊斧進行革新。“讓我們下定決心要去做真正的多模資料庫的原始動力,正是我們接觸到了更多的人,他的确有這種需求。”這些迫切的渴求,給了天梧極大的鼓舞。

2019年,近百人的隊伍被拉起來,浩浩蕩蕩投入Lindorm研發。

分久必合的Lindorm傳奇

Lindorm項目團隊成員

和阿裡很多被業務倒逼催生的龐然大物不同,在天梧看來,Lindorm的誕生,源于技術人對更先進技術的探索和對革新的使命感。當然,力求創新的阿裡雲,給了它生長勃發的土壤。

“iPhone不産生,我們世界也活好好的。但它的到來,可以讓世界更美好。”天梧說這話的時候,眼裡有微光在閃動。

然而,現實是殘酷的。造“iPhone”的過程,比想象中難得多。

首先是頂層設計。到底要造一個什麼樣的多模資料庫,對資料的需求要抽象在哪一層。隻往上走一點,不能解決業務的問題,往下沉太多,複雜性會很大。以在多模開發的過程中,最核心要去解決的幾個問題為例。垂類資料庫按種類來分多達十幾種,選哪幾個模型進行融合?用笛卡爾積原理,每多一種模型就會多出海量的處理。第二是選擇模型資料後怎麼融合?

對于這些問題的解法,團隊經曆過不下數十次的争辯。“這是我們最大的痛點,我們不知道是走對了還是走錯了。”天梧說,如果前面有一個領路的權威者,至少我們做得會比較堅定。紛紛擾擾,求而無門,幾度挫敗。那個如空中樓閣一樣飄在天上的多模資料庫,真的存在嗎?天梧不是沒有懷疑,但他更相信自己作為老技術人的嗅覺,以及真切感受到的客戶需求。

“今天我們做多模,革新技術,但并不是完全從零開始的。”一次例行周會上,天梧環顧團隊年輕的同僚們,說。

在阿裡雲漫長的12年裡,今天在做的這件事,有寬表HBase上的積累、時序上的積累、雲原生存儲上的積累。“我們背後,是整個阿裡雲分布式系統。”

無人引路又有何懼?這種敢為人先的鬥志,本來就镌刻在阿裡雲的基因裡。

“沒有一個總的設計架構,我們就圍繞着客戶的需求去對。”最終,團隊選擇了業務場景裡高頻使用的3種模型,寬表、時序和檔案引擎進行融合。同時,将場景聚焦在IOT和APM兩類方向。

“我們就追着垂直做這兩個大的方向。把這兩個方向打通後,其實建立的能力是相對也是通用的。”天梧堅信。

四  真正的多模資料庫,成了!

Lindorm團隊核心做了兩件事情,第一,統一資料管理。第二,研發多模引擎。

首先把整個産品變成統一的,資料入口統一,資料存儲統一,互動管理統一,但底下資料的組織和流轉是多樣的。利用多模引擎,資料可以從A流到B,從B流到C,自由暢行。舉個例子,Lindorm就像是一個巨大的倉庫,多模引擎則是多種類型的倉格,客人入店,想要拿什麼東西。隻需告訴夥計,夥計依據倉格,取出所需。

在複雜的IOT場景下,夥計勤勤懇懇分毫不差。真正的多模資料庫,成了!

2020年9月,Lindorm在萬人集聚的雲栖大會上被重磅推出。

分久必合的Lindorm傳奇

很快,東軟睿馳、江鈴汽車、長城汽車等多家車企采用了Lindorm産品。

東軟雲科技雲解決方案和服務事業部副總經理傅春江表示:“資料是車聯網賦能車廠和車聯網服務提供商提升客戶體驗,建構技術競争力的關鍵,阿裡雲原生多模資料庫Lindorm具備極具競争力的資料存儲成本效益和技術優勢,做到了讓車聯網資料存得起、看得見。”

分久必合的Lindorm傳奇

不久前,上海市新能源汽車資料平台引入Lindorm,其是全國首個、上海市唯一的新能源汽車市級監管平台,已經接入新能源汽車41.8萬輛,涉及車企95家,品牌107個,車型777款。由于車輛接入資訊種類和結構呈現多樣化,給平台的營運和維護提出了技術挑戰,并且推高了成本。為此,平台營運方在關鍵資料庫上選用了Lindorm,Lindorm的高并發寫入、彈性擴充、實時檢索分析等能力,使得資料的寫入查詢性能提升3倍以上、成本降低20%以上,對于流量突增等情況也可以從容應對,很好地支撐了業務快速發展。

如今,Lindorm被全面應用于阿裡各大業務闆塊,服務的客戶多達兩千家。

一位原先用BigTable的國際客戶稱:使用Lindorm後的性能效率提高3倍。這讓天梧受寵若驚:“在資料庫領域,BigTable是鼻祖一樣的存在。”不過,對于團隊而言,最高興的莫過于,随着客戶體量的增多,他們再也不是摸着石頭過河了,源源不斷的使用者需求和回報,是最好的指引。

一個做監控SaaS的客戶主動找到團隊,滔滔不絕提了好多需求。天梧回憶,當時的場景就像有人拿了一床大棉被,裡面裹了各種檔案啪丢給你,讓你去分門别類規劃。“我覺得這個需求也很合理。實際上資料産生的時候,它就是這樣糅合在一起的。客戶希望交給你去處理,這樣它可以減少很多一緻性的工作。”雖然這些需求,今天團隊的設計理念和能力還不一定能達到。

在天梧看來,正是Lindorm的理念激發了使用者客觀真實的需求。而需求又會推進Lindorm更加的完善和強大。這本身就是一個互相疊代和認證的過程。

五  Lindorm,給開發者帶來更多可能

Lindorm的強大能力,給開發者帶來了更多可能。

“我們把之前應用需要花大力氣去做的事情,都做掉了。”天梧說“用一句俗話,就是把複雜留給自己,把簡單留給别人。”

對使用者而言,他不需要再自己處理海量資料,而是可以直接利用資料帶來的價值,提升效率,促進生産。這種簡單而樸素的願景,伴随着技術的疊代發展。

從單機資料庫到分布式資料庫,再到如今分而合之的多模資料庫Lindorm,一個收口可以表達對多類資料統一處理的需求。同時,Lindorm不希望使用者在多模資料庫與多套資料庫之間去做取舍,其每一個模型引擎,都是原生設計,可以當成一個專業的垂直類資料庫。

“今天,我們定義了什麼是多模資料庫,從頂層設計架構,定義這種真正融合和統一。”在天梧看來,相容并濟,集各家之所長的Lindorm的誕生,正是技術進步的必然。

資料庫技術發展幾十年的每一次躍升,都向着越來越強和綜合的能力進發。

對于天梧和所有Lindorm研發的技術人來說,能在程序中參與和促進這場變革,是一件有着莫大成就感的事情。

分久必合的Lindorm傳奇

最後,說回Lindorm,名字取自西方神話,是一條迅猛的飛龍。

“因為我們要處理的都是海量的資料,我們不希望處理資料的時候很笨重,我們希望是很靈活的,靈動的。”天梧釋義,這是屬于程式員的浪漫。

如今,這條飛龍正輾轉騰挪,風馳電掣,直上雲霄九萬裡。