低谷與高光:陽振坤與國產(chǎn)數(shù)據(jù)庫坎坷十五年
作者 | 趙之齊
編輯 | 胡敏
十一年前,阿里“雙十一”的備戰(zhàn)室里,國產(chǎn)自研分布式數(shù)據(jù)庫OceanBase的創(chuàng)始人陽振坤站在推開的窗邊,向時任螞蟻CEO的彭蕾“承諾”道:
“(OceanBase)出了問題,我們就準備從這跳下去。”
把自身與OceanBase成敗綁在一起的陽振坤,就是用這樣的決心,讓OceanBase從一個簡單的存儲系統(tǒng),成長為國產(chǎn)數(shù)據(jù)庫的一大領(lǐng)頭產(chǎn)品,且通過TPC-C基準測試、擊敗連續(xù)九年位居榜首的Oracle。
一個多月前,2025年5月12日,OceanBase公司發(fā)送全員內(nèi)部信,宣布陽振坤榮譽退休。
退休那天,這位60歲的程序員,依然沒有自己的獨立辦公室,也沒有助理。在日常工作中,他和年輕同事們一起在工位上看代碼,也自己貼發(fā)票報銷。
而此前一天,5月11日,正是他入職阿里的第十五周年,也是OceanBase誕生的第十五年。在向雷峰網(wǎng) (公眾號:雷峰網(wǎng)) 回顧OceanBase的經(jīng)歷時, 起初短短五六分鐘陳述里,陽振坤提了不下十次“困難” ,但好在,團隊最終還是證明了自身價值。
最初的困難是,怎么在集中式數(shù)據(jù)庫盛行的時代里,說服阿里高管投入大量財力與人力,做一款分布式數(shù)據(jù)庫。
而在獲得吳泳銘“給你兩年時間,證明OceanBase的可行性”的批準后,接踵而來的第二個困難是,怎么贏得各業(yè)務線的信任、用業(yè)務打磨OceanBase的能力,并在阿里內(nèi)部證明其價值。
隨后,當OceanBase在阿里廣泛使用后,如何對外服務、創(chuàng)造更大的商業(yè)價值,又成了陽振坤的心頭重要事項。
重重挑戰(zhàn)過后,后來的故事人盡皆知:OceanBase成功了,不僅在技術(shù)上登頂世界,商業(yè)化的齒輪也運轉(zhuǎn)起來,2020年獨立為公司,2023年在金融行業(yè)營收規(guī)模2.7億人民幣,在金融行業(yè)本地部署市場中,份額第一。
OceanBase在技術(shù)與商業(yè)領(lǐng)域的雙線并進,是陽振坤帶領(lǐng)團隊在一個個考驗前做出的重要決策,也源自他銘記于心的恩師王選的教導:技術(shù)頂天、市場立地。
從國產(chǎn)數(shù)據(jù)庫不被看好的當年,到國產(chǎn)自研雨后春筍般爆發(fā)的如今,陽振坤帶領(lǐng)OceanBase的成長史,也是國產(chǎn)云數(shù)據(jù)庫發(fā)展15年的重要縮影。深耕計算機領(lǐng)域三十年的他,如何帶領(lǐng)OceanBase度過一個個難關(guān)?他和OceanBase互相成就的這一路,又有怎樣的故事?
陽振坤
堅持分布式的“夢想家”
Oracle九年來第一次痛失TPC-C基準測試榜首之位,就是敗給當時在公眾視野里還初出茅廬的OceanBase。
這個看似半路殺出的“程咬金”,從2010年起錘煉自身,已蟄伏等候此刻多時。其強大的產(chǎn)品實力背后,是陽振坤正確的判斷和團隊共同的堅持。
故事的開始,陽振坤做對的第一個決策是,在集中式數(shù)據(jù)庫盛行的年代,堅持分布式數(shù)據(jù)庫的道路。
這一切,可以從2010年說起。
2010年,陽振坤難得地給自己的人生放了一個月的假,陪陪家人,捋捋未來的計劃。就在當時,阿里的劉振飛向他遞出了橄欖枝。兩人此前在微軟一起共事,彼時劉振飛正負責淘寶的后臺系統(tǒng)運營管理。
陽振坤去了阿里面試,面試官是吳泳銘,他后來第一個直屬上司。2010年5月11日,陽振坤入職阿里,在基礎(chǔ)架構(gòu)部門,職級是P11。有說法指,陽振坤加入淘寶后,本可以加入快速發(fā)展的淘寶業(yè)務團隊,主管技術(shù),但糾結(jié)再三,他還是選擇并不那么好走的自研路子。
入職后大約一周,開發(fā)一款分布式數(shù)據(jù)庫的創(chuàng)想便逐漸成型。陽振坤向當時淘寶技術(shù)負責人吳泳銘提出這個想法。
深知數(shù)據(jù)庫成長需要周期的他,已感時不我待。但在集中式數(shù)據(jù)庫為主流的年代里,如何說服別人,給他這個沒有數(shù)據(jù)庫背景的人,一個嘗試做分布式數(shù)據(jù)庫的機會?
陽振坤給出的論點之一是,數(shù)據(jù)庫在集中式這條路上已經(jīng)走到盡頭,接下來一定會往分布式走;且傳統(tǒng)單機數(shù)據(jù)庫缺乏擴展能力和高并發(fā)能力,對于離不開關(guān)系數(shù)據(jù)庫的互聯(lián)網(wǎng)來說,分布式數(shù)據(jù)庫“怎么看都是一件需要做的事”。
并且,當時阿里內(nèi)部數(shù)據(jù)庫的數(shù)量高達6500個,大量的業(yè)務場景和數(shù)據(jù)需求令他心向往之,相信其中蘊含打磨出分布式數(shù)據(jù)庫產(chǎn)品的可能。
但,同樣不可或缺的,是身處“去IOE”(IBM小型機、Oracle數(shù)據(jù)庫和EMC存儲)節(jié)點上的阿里,提供的“地利”。
早期,阿里是Oracle在亞洲最大的客戶之一,Oracle會在官網(wǎng)上長期展示阿里的logo,阿里內(nèi)部也有許多獲得Oracle認證的頂級工程師。
然而,2009年開始做“雙十一”的淘寶,數(shù)據(jù)量激增,讓Oracle已有些捉襟見肘:Oracle數(shù)據(jù)庫最多支持20個節(jié)點的共享模型,但阿里的數(shù)據(jù)量需要幾十萬臺服務器。阿里需要能力更強的數(shù)據(jù)庫。
后來阿里的成長速度,也證明這步預判是正確的:2009年成交金額只有大概5000多萬的“雙十一”業(yè)務,在2010年已達到9億多,到2019年有2600多億,呈幾千倍增長。2010年淘寶第二屆“雙十一”的平臺交易筆數(shù)每秒峰值就已經(jīng)達到2500筆,但當時系統(tǒng)的極限容量是每秒3000筆訂單。有阿里內(nèi)部人士透露, 2022年前后,在阿里內(nèi)部使用的OceanBase、PolarDB和ADB數(shù)據(jù)庫系統(tǒng)共使用了約5萬臺服務器,已遠超Oracle的處理能力。
此外,從經(jīng)濟利益上說,Oracle的授權(quán)費也過于昂貴,且運行時要依賴高端硬件設(shè)備。當時,阿里高層發(fā)現(xiàn)公司每年在IOE上的支出,呈現(xiàn)驚人的增長——小型機、高端存儲加上Oracle的各項費用,一套可能要兩千多萬,阿里每年要給IOE三家美國公司幾乎200億元采購費,這樣下去,阿里可能變成“給IOE打工”。
而立志要成為一家科技公司的阿里,也需要建立自身技術(shù)根基。 確定“去IOE”的戰(zhàn)略后的初期,阿里還想從已有的MySQL開源數(shù)據(jù)庫發(fā)力。但公司隨后意識到自研的重要性,在飛天系統(tǒng)、OceanBase數(shù)據(jù)庫等一系列技術(shù)根基建立過程中,也鍛煉了許多數(shù)據(jù)庫、中間件等相關(guān)研發(fā)人才,讓阿里云得以在2015年之前就打下技術(shù)和產(chǎn)品優(yōu)勢,對其后來席卷云計算市場至關(guān)重要。
當時和陽振坤一樣相信分布式的,還有王堅——他是陽振坤在微軟的老板。陽振坤在2010年加入阿里后,有一段時間也向王堅匯報,在微軟時,兩人便已看好分布式的未來。而此前陽振坤在百度工作時,也深入學習了Google的分布式存儲和數(shù)據(jù)庫模型。在分布式的堅持上,他有底氣敢為人先。
想法有了雛形后,陽振坤隨后又花了兩周時間找客戶、再花了兩周在代碼上做簡單的原型論證。種種“天時地利人和”,加上早期阿里內(nèi)部創(chuàng)新氛圍濃厚,吳泳銘也樂意授權(quán)各團隊自下而上搞創(chuàng)新,他提出的唯一要求是:兩年內(nèi)證明這個項目的可行性。
至此,立項已成。那之后花了十多年長出累累碩果的OceanBase,起初的立項只花了六個星期。
與業(yè)務磨合:如履薄冰六七年
數(shù)據(jù)庫產(chǎn)品能力的提升,常面臨“先有雞還是先有蛋”的尷尬:沒有業(yè)務的磨煉,數(shù)據(jù)庫難以成長;但不夠成熟的數(shù)據(jù)庫,又難獲業(yè)務信任。
尤其在阿里內(nèi)部, 業(yè)務線領(lǐng)導要自己背負業(yè)務指標,冒險把業(yè)務交給一個從0開始的自研項目,相當于自愿站到了懸崖邊上。
這一點,阿里云飛天系統(tǒng)的第一個客戶阿里金融已深有體會:當時深受折磨的阿里金融掌舵者胡曉明,便帶隊高管們,在2011年12月31日晚上來到阿里云,向阿里云高層們鞠下無言的一躬,以求過一個不被飛天報警鈴聲打擾的安穩(wěn)的春節(jié)。(無言鞠躬背后如何風云暗涌?歡迎添加作者微信 Ericazhao23 了解)
有了這一“前車之鑒”,各業(yè)務線對新技術(shù)的加倍謹慎自不必說。攻略業(yè)務線的老大,是從淘寶內(nèi)部成長起來的OceanBase,避無可避的難關(guān)。
陽振坤自然擔起這一重任。回顧當時,他笑說自己“好像個大齡推銷員”,對淘寶內(nèi)部的業(yè)務技術(shù)團隊逐個登門拜訪,“推銷”到口都干了之后,終于遇到一個愿意嘗試的項目:淘寶收藏夾。
之所以有機會,是因為當時淘寶收藏夾面對的性能瓶頸,內(nèi)部還沒有別的辦法解決——
用戶每次打開收藏夾時,系統(tǒng)都要檢查商品價格、在線情況等狀態(tài)變化,因此,數(shù)據(jù)庫就要頻繁訪問硬盤數(shù)據(jù)。如果很多用戶同時訪問收藏夾,數(shù)據(jù)庫的計算量和I/O需求就會大幅增長。要是訪問硬盤上100個不同的位置,就要讀取100個不同的“塊”(Block),每讀一個塊可能需要1毫秒,用戶打開讀取淘寶收藏夾的速度就會變得非常慢。
然而,如何讓業(yè)務團隊相信,初生的OceanBase能解決這個問題?
“數(shù)據(jù)庫只要出一次問題,就永遠沒有信用,哪怕會給業(yè)務帶來好處,也沒有人敢用了”,陽振坤向雷峰網(wǎng)說道。在他眼中,業(yè)務團隊給出的每一次磨合機會,都是不可失手的關(guān)鍵戰(zhàn)役。
深諳此理,陽振坤帶著滿滿誠意和一套切實的解決方案,拜訪了淘寶收藏夾的主管魏虎。
他首先向魏虎闡述了自己的觀察:淘寶收藏夾大部分數(shù)據(jù)的特點是,數(shù)據(jù)總量大,但每天的修改量很小。因此,可以嘗試把每天業(yè)務低谷期(如凌晨兩點之后)修改的數(shù)據(jù),先放在內(nèi)存里,到下一個低谷期(例如兩點)時,再把當日修改跟原來的數(shù)據(jù)做大合并寫回去。
但這一切變化只發(fā)生在后臺,作為用戶,在前端依然可以實時看到更新。
要了解這個做法的創(chuàng)新,就要先了解硬盤和內(nèi)存的區(qū)別:硬盤中的數(shù)據(jù)需要基于“塊”的方式讀取、順序訪問,即便只需要讀取其中一條記錄,也要把整個塊讀取出來后再找到需要的記錄,早期硬盤中,一個塊的大小通常為512字節(jié)。而內(nèi)存則能隨機訪問設(shè)備,可以直接訪問任意一個字節(jié)的數(shù)據(jù),速度更快。
假設(shè)用戶收藏的100件商品存在多個不同的定常塊里,原來的方法,只要用戶有修改,就得把硬盤里這個塊讀出來,在內(nèi)存改好后寫回去,下個客戶來讀,又得從硬盤上檢查每個塊的修改情況。而新的方法中, 修改都存在內(nèi)存里,當用戶訪問時,只需快速訪問內(nèi)存了解數(shù)據(jù)修改的情況,并和原來的數(shù)據(jù)合并,給用戶展示。
兩種操作的核心區(qū)別是: 減少大量重復的動作 ,大力提升收藏夾運行的效率。
這個方案俘獲了淘寶收藏夾團隊們的心。在他們的催促下,陽振坤團隊開始了驗證測試。
團隊在兩個月左右進行簡單版本的測試,驗證可行;再花六個月完成第一個正式版本,在生產(chǎn)環(huán)境中試運行。試運行四個月后,方案正式投產(chǎn)。前前后后,花了將近一年時間。
而運行OceanBase之后的淘寶收藏夾,從原需32臺服務器,減到了14臺,其中,12臺處理靜態(tài)數(shù)據(jù),2臺負責動態(tài)數(shù)據(jù)。
淘寶收藏夾和OceanBase的這場相遇,可以說是一場雙向救贖。從此,OceanBase站上了數(shù)據(jù)庫產(chǎn)品的起跑線,而直到今天,淘寶收藏夾仍是OceanBase的用戶。
然而,OceanBase確實也只是剛剛站上了起跑線,陽振坤直言, 當時數(shù)據(jù)庫的功能“連1%都沒做好” 。
他開始在內(nèi)部尋找第二個大型業(yè)務。
陽振坤曾將目光投向淘寶購物車,但購物車對淘寶而言是幾乎不可容錯的核心部分,謹慎定奪后,他還是沒有邁出這一步。
那一年里,他依然跑遍了業(yè)務部門,但沒能幸運地獲得第二個像淘寶收藏夾一樣具有代表性的業(yè)務。永遠卡住的一個環(huán)節(jié)是:如何向業(yè)務部門展示OceanBase的價值。
他們在忙忙碌碌中度過了第二年, 2012年秋天,本該是收獲的季節(jié),但OceanBase再也找不到新的業(yè)務,項目面臨關(guān)閉風險 。即便是CTO吳泳銘,也難以直接干涉業(yè)務部門的產(chǎn)品使用抉擇,對此愛莫能助。
就在此時,王堅牽線,建議他們?nèi)サ饺缁鹑巛遍_展“去IOE”的支付寶。
兩年期限臨近的關(guān)頭,陽振坤果斷抓住這次“復活”機會,帶著OceanBase團隊,在2012年11月15日來到支付寶。
彼時,馮春培(花名孔丘)和程立(花名魯肅)等人已經(jīng)解決了穩(wěn)定性的問題,讓支付寶實現(xiàn)100%的運維可用率。需要解決的新問題是:大量使用Oracle數(shù)據(jù)庫的支付寶,如何降低軟硬件的成本?
當時,支付寶嘗試給出的打法是用MySQL+普通PC機替代。然而,普通PC機的故障率遠高于IBM小型機和EMC存儲,會讓系統(tǒng)的可用性顯著下降。
這個扔到陽振坤面前的難題,并非一塊好啃的骨頭:淘寶的數(shù)據(jù)庫出問題,最多只是用戶暫時無法購物,可以通過工作人員的及時修復和誠懇道歉重獲用戶支持;但在支付寶的“錢”上出問題,失去的用戶信任將無可挽回。
就連當時非常看好原生分布式數(shù)據(jù)庫前景的支付寶CTO魯肅,也問過陽振坤:“你如何保證OceanBase不弄丟支付寶用戶的一分錢?”
陽振坤被這個問題問懵了。但他接下挑戰(zhàn),帶著團隊探索新的方法。
魯肅這個問題背后的邏輯是: 如何在降低硬件成本的同時保持系統(tǒng)穩(wěn)定性? 幾經(jīng)摸索后,陽振坤團隊引入了Paxos協(xié)議技術(shù):讓一筆交易用三臺機器做,只要有兩臺機器成功完成,這件事就做成了。這筆賬可以這樣算:一臺PC機出故障的概率如果是千分之一,兩臺同時壞的概率可能就是百萬分之一,三臺則是十億分之一。
這一技術(shù)的變革,也是對員工的解放:以前只要主庫壞了,不管幾點,大家就要幾分鐘內(nèi)起來做人工對賬,但現(xiàn)在,只要有一兩臺機器繼續(xù)工作,系統(tǒng)就能繼續(xù)運行。能睡上安穩(wěn)覺,這也一定程度“收買”了業(yè)務團隊的心。
后來,騰訊、華為等公司在基于MySQL的系統(tǒng)中,也都采用了類似技術(shù)。
2014年,OceanBase 0.5版本已經(jīng)做到“半分布式”系統(tǒng): 所有數(shù)據(jù)修改都在同一臺機器上進行,但讀取數(shù)據(jù)時使用多臺機器 。并且,其在關(guān)系數(shù)據(jù)庫系統(tǒng)上做到單機/單機房故障不丟數(shù)據(jù)、不停服務,也已經(jīng)超過了國家標準。
但, 三年沒有新標桿業(yè)務的OceanBase,還是難以避免地開始受到質(zhì)疑。
要么成功,要么沉寂。種種壓力下,陽振坤把賭注,押在了阿里技術(shù)人每年的“大考”上:“雙十一”。
他向魯肅自薦用OceanBase替代Oracle,但業(yè)務團隊并不接招,于是,魯肅出面,把相關(guān)負責人叫過來一起談:
“OceanBase有什么問題,大家具體指出來,不要說‘感覺不穩(wěn)定、害怕出問題’這些虛的。”
陽振坤還給時任螞蟻集團的CEO彭蕾寫了封郵件,大力推薦團隊產(chǎn)品:“咱們的同學非常優(yōu)秀:給他們一個信任,他們會給我們驚喜甚至奇跡,我們認為技術(shù)上做不到的,他們也能做到……”
經(jīng)歷長達半年的切磋談判,最終,OceanBase爭取到了1%的流量測試機會。
命運眷顧有心人,就在那年,Oracle無意中也給OceanBase的成長“推波助瀾”:在“雙十一”前夕的壓力測試中,數(shù)據(jù)量一上到90%,Oracle就報錯崩潰。情急之下,業(yè)務團隊只好找到陽振坤:“給你們10%行不行?”
團隊喜出望外,臨危受命。
“雙十一”流量的10%,基本就是淘寶平時100%的流量。OceanBase能否承住這份壓力?眾人矚目下,就有了2014年OceanBase“雙十一”作戰(zhàn)室里的名場面:
當晚,時任螞蟻集團CEO的彭蕾鼓勵團隊之際,也詢問緊張備戰(zhàn)的團隊們:“有沒有信心?”
恰好站在窗邊的陽振坤,推開了窗,摸不出幾分玩笑幾分真,只是說道:
“出了問題,我們準備從這跳下去。”
所幸,OceanBase順利地度過了雙十一,在全場的掌聲中,陽振坤心知這背水一戰(zhàn)終是成了。一戰(zhàn)成名,OceanBase逐漸接下了大淘寶100%的流量。
在這之后,團隊繼續(xù)實現(xiàn)起初打造分布式數(shù)據(jù)庫的承諾。
如前所說,當時的OceanBase還是“半分布式”系統(tǒng):只是寫入一個單點,讓所有數(shù)據(jù)的修改在同一個點上,避免復雜性。在陽振坤看來,這種做法短時間內(nèi)能支撐支付寶的交易需求,長遠來看不可持續(xù)。
2014年9月之后,團隊開始將其升級為完全的分布式數(shù)據(jù)庫系統(tǒng)——每個節(jié)點都可以再做修改,節(jié)點與節(jié)點之間平等,沒有什么特殊。
這步升級,花了整整兩年時間。
直到2016年初,OceanBase系統(tǒng)開始替換支付寶最核心的賬目系統(tǒng)中的Oracle數(shù)據(jù)庫。這之后,完成所有項目的替換只是時間問題,“最困難的部分已經(jīng)完成了”,陽振坤感慨。
產(chǎn)品能力逐漸成型后,他開始把眼光放到外部商業(yè)化上。
內(nèi)外“交困”:費口舌不如跑分
“在公司里做一件事,你終究得證明自己有價值”,陽振坤向雷峰網(wǎng)說道。
在大廠中成長起來的數(shù)據(jù)庫,一個天然的可得優(yōu)勢是,能用公司內(nèi)部成熟的業(yè)務磨練產(chǎn)品。然而,這塊硬幣的另一面是, 需要把握“滿足業(yè)務團隊高定制化需求”與“打磨自身數(shù)據(jù)庫產(chǎn)品通用能力”之間的平衡。技術(shù)團隊與業(yè)務團隊的期望,常常出現(xiàn)巨大鴻溝 。
并且,2016年前后,OceanBase還受到過阿里內(nèi)部其他數(shù)據(jù)庫的挑戰(zhàn),經(jīng)歷了一場“華山論劍”:嬴者才有繼續(xù)做數(shù)據(jù)庫的權(quán)利。(更多幕后故事,歡迎添加作者微信 Ericazhao23 交流)
鏖戰(zhàn)過后,各方打平。盡管如此,OceanBase這個數(shù)據(jù)庫老大哥或許也進一步意識到,是時候走出阿里這個“舒適區(qū)”了。
為了更好提升數(shù)據(jù)庫功能,為了一定程度上保持OceanBase的自主性,也為了證明數(shù)據(jù)庫產(chǎn)品的價值,2016年底,陽振坤開始帶隊做外部業(yè)務。
2017年,OceanBase獲得了第一個外部客戶,南京銀行,也是互聯(lián)網(wǎng)金融相關(guān)業(yè)務。
但早期獲客舉步維艱,2020年前后國產(chǎn)數(shù)據(jù)庫賽道在卷的“自研”,此前在用戶眼中是“不靠譜”的代名詞。彼時OceanBase名氣不足,質(zhì)疑聲多得團隊成員的耳朵都快被磨出繭子:
中國的數(shù)據(jù)庫領(lǐng)域已經(jīng)發(fā)展了幾十年,但還沒有哪個數(shù)據(jù)庫真正做得成功,你們怎么就成功了?Oracle這么多年都沒做出分布式數(shù)據(jù)庫,你們怎么可能做出來?
當時團隊規(guī)模也就百十來人,“百”口莫辯之時,陽振坤做了一個決定:跑分。
數(shù)據(jù)庫也有自己的全球性能排行榜,若能登榜,OceanBase的能力不證自明。但這并不容易, 至少在當時,中國還沒有數(shù)據(jù)庫能通過TPC-C基準測試,而Oracle已經(jīng)穩(wěn)坐第一名的位置,九年。
初生牛犢不怕虎的OceanBase,在2018年報名參加了這項測試,開始打榜。經(jīng)歷長達一年審核后,2019年10月2日,結(jié)果公布:OceanBase通過了測試,擊敗Oracle登頂。
至此,OceanBase這個既能做交易、也能做分析的HTAP數(shù)據(jù)庫新星,在公眾視野中冉冉升起。螞蟻高層也正式?jīng)Q定,OceanBase作為一個單獨的公司獨立運營。
下一個重要的決策,是 開源 。2020年6月正式成立的OceanBase公司,9月開始進行文檔代碼整理,在第二年6月正式開源。開源尚未成為主流的當時,把數(shù)據(jù)庫開成“白盒子”,也是陽振坤團隊為消除客戶不信任感和陌生感的努力。
但OceanBase的成長并未就此停下。
生長于阿里的OceanBase,為大客戶量身定制,起初開拓的外部客戶,如南京銀行,業(yè)務量也很大。但隨著接觸企業(yè)范圍擴大,陽振坤觀察到,中小型用戶的五十個業(yè)務里,可能只有兩三個業(yè)務單機系統(tǒng)做不了、需要分布式,若一概使用分布式系統(tǒng),對他們來說成本過高。因此,OceanBase也開始針對中小客戶的需求優(yōu)化, 提出“單機分布式一體化”概念 。
通俗點講,就是讓分布式和單機系統(tǒng)同時存在,企業(yè)可以把規(guī)模小的業(yè)務用單機系統(tǒng)跑,業(yè)務量擴大時再疊加更多機器。這種系統(tǒng)在高配置和低配置下都保持不錯性能的打法,避免“用高射炮打蚊子”,但要求團隊付出更多精力技術(shù)調(diào)優(yōu)。
陽振坤常掛在嘴邊的一句話,是他的恩師王選的重要教導:“頂天立地”。拆開來講是,技術(shù)頂天、市場立地。
也因此,他對OceanBase的發(fā)展規(guī)劃,并不局限在技術(shù)層面的提升,而是積極走進市場、在市場的檢測下調(diào)整優(yōu)化。這也是OceanBase突破重重難關(guān),獲得今日成功背后的邏輯。
2006年在百度就開始追隨陽振坤腳步的楊傳輝,現(xiàn)在是OceanBase的CTO,他感慨:“如果一個問題,陽老師想了好多天還是無解,那這個問題肯定無解,因為有解的話,他一定能想到解決辦法。”
職業(yè)生涯中,三次“重啟人生”
時間來到2025年5月12日,陽振坤榮譽退休。回頭看,30多年前,站在王選辦公室外忐忑的那個24歲年輕人,或許也難以想象,自己那天敲開的通往計算機研究所的大門,會指向一個如此瑰麗又廣闊的未來。
1989年春天,在北京大學計算機研究所實驗室隔斷出來的一個小隔間里,陽振坤第一次見到了王選。在這個簡樸的辦公室里,修完大學課程只用了三年、碩士只用了一年多的陽振坤,向王選表達說,希望能成為他的學生。
王選的一個允諾,讓陽振坤跟著他做了13年的激光照排。那是他人生第一次轉(zhuǎn)變賽道、重啟。1995年,陽振坤所在的團隊獲得國家科技進步一等獎,1997年,32歲的他被破格晉升為教授。
2002年,互聯(lián)網(wǎng)發(fā)展迅速,抱著對社會第一線工作的好奇,陽振坤離開了大學,在36歲闖入工業(yè)界,開始第二場新的嘗試。他去到聯(lián)想研究院擔任首席研究員,負責無線通信領(lǐng)域的研究;后來又接觸分布式系統(tǒng),在微軟亞研、百度從事相關(guān)工作。
陽振坤來到百度是在2006年。他最先學習了Google開發(fā)的兩種分布式存儲和數(shù)據(jù)庫模型,Bigtable和Spnaner, 并用C和C++寫了一套鳳巢系統(tǒng),基本類似于2009年阿里做的ODPS系統(tǒng) 。當時國內(nèi)幾乎還沒有人做類似項目,團隊對這個方向都信心滿滿。
在團隊成員的記憶中, 那時出去講分布式系統(tǒng)的概念,就像現(xiàn)在和別人講量子計算,聽者都一頭霧水。
然而,兩年一過,這個項目就被放棄了——因其兩年內(nèi)還不能在核心業(yè)務應用,被認為不能主力投入。
后來在阿里的經(jīng)歷則比較幸運。兩年的時間窗口里,陽振坤不需要背負KPI,得以專心研發(fā),鍛造出職業(yè)生涯中最恢弘也是最辛苦的項目,OceanBase。能把這個項目做成,繞不開的,是陽振坤奠定下的極客基因。
在面試新人的過程中,陽振坤常常會拿出一張紙,給面試者畫OceanBase的框架圖,像布道者。也有OceanBase內(nèi)部人員評價,陽振坤追求做出“面向未來的東西”,要更強壯、更有擴展性。因此,只要精力足夠,做得不夠好的部分,團隊總會不斷推掉、重來。
互聯(lián)網(wǎng)大部分項目周期是兩周,但數(shù)據(jù)庫的發(fā)展沒有三五年,往往也難以真正落地。內(nèi)部業(yè)務催得緊,有時連團隊內(nèi)部成員也頗有微詞。與時間進行毫無懸念的賽跑時,陽振坤也常需要安撫人心。曾有新加入團隊的年輕人向陽振坤抱怨說,合租的室友在天貓工作,做網(wǎng)頁熬一兩周就看到成果了,但自己的付出卻好像離收獲遙遙無期。
對此,陽振坤給出的回答是:“再過三年,你做的數(shù)據(jù)庫天貓還在用,但他改的網(wǎng)頁早就看不到了”。
做學問出身的陽振坤,對產(chǎn)品本身之專一,令他對這之外的一切,包括管理,都不買賬。種種光環(huán)下,他依然維持最簡單的一面示人。有客戶對他印象最深刻的,是會面時穿著涼鞋的形象。團隊成員們有時會笑評:“60歲的科學家,像個農(nóng)民一樣。”
九十年代時,陽振坤曾跟著王選去美國,在IBM的研究中心里,他看到很多程序員即使白發(fā)蒼蒼,也依然坐在辦公室,敲鍵盤寫代碼。
那是陽振坤心目中程序員應該有的樣子。
國產(chǎn)數(shù)據(jù)庫起步最艱辛卻也滿懷希望的過去十多年里,陽振坤一直坐在他的辦公桌前,日復一日地面對那些視如己出的代碼。年過花甲的他,已悄然將自己活成那幅畫面中的一部分。
作者持續(xù)關(guān)注云計算、數(shù)據(jù)庫、AI等相關(guān)領(lǐng)域,歡迎添加微信 Ericazhao23 交流。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見 轉(zhuǎn)載須知 。