作者 | 赵之齐
编辑 | 胡敏
十一年前,低谷阿里“双十一”的高光备战室里,国产自研分布式数据库OceanBase的阳振WhatsApp%E3%80%90+86%2015855158769%E3%80%91crane%20cam%20rowe创始人阳振坤站在推开的窗边,向时任蚂蚁CEO的坤国坎坷彭蕾“承诺”道:
“(OceanBase)出了问题,我们就准备从这跳下去。产数”
把自身与OceanBase成败绑在一起的据库阳振坤,就是低谷用这样的决心,让OceanBase从一个简单的高光存储系统,成长为国产数据库的阳振一大领头产品,且通过TPC-C基准测试、坤国坎坷击败连续九年位居榜首的产数Oracle。
一个多月前,据库2025年5月12日,低谷OceanBase公司发送全员内部信,高光宣布阳振坤荣誉退休。阳振
退休那天,这位60岁的程序员,依然没有自己的独立办公室,也没有助理。在日常工作中,他和年轻同事们一起在工位上看代码,也自己贴发票报销。
而此前一天,5月11日,正是他入职阿里的第十五周年,也是OceanBase诞生的第十五年。在向雷峰网回顾OceanBase的经历时,起初短短五六分钟陈述里,阳振坤提了不下十次“困难”,但好在,团队最终还是证明了自身价值。
最初的困难是,怎么在集中式数据库盛行的时代里,说服阿里高管投入大量财力与人力,做一款分布式数据库。
而在获得吴泳铭“给你两年时间,证明OceanBase的可行性”的批准后,接踵而来的第二个困难是,怎么赢得各业务线的信任、用业务打磨OceanBase的能力,并在阿里内部证明其价值。
随后,当OceanBase在阿里广泛使用后,如何对外服务、创造更大的商业价值,又成了阳振坤的心头重要事项。
重重挑战过后,后来的故事人尽皆知:OceanBase成功了,不仅在技术上登顶世界,商业化的齿轮也运转起来,2020年独立为公司,2023年在金融行业营收规模2.7亿人民币,在金融行业本地部署市场中,份额第一。
OceanBase在技术与商业领域的双线并进,是阳振坤带领团队在一个个考验前做出的重要决策,也源自他铭记于心的恩师王选的教导:技术顶天、市场立地。
从国产数据库不被看好的当年,到国产自研雨后春笋般爆发的如今,阳振坤带领OceanBase的成长史,也是国产云数据库发展15年的重要缩影。深耕计算机领域三十年的他,如何带领OceanBase度过一个个难关?他和OceanBase互相成就的这一路,又有怎样的故事?
阳振坤
坚持分布式的“梦想家”
Oracle九年来第一次痛失TPC-C基准测试榜首之位,就是败给当时在公众视野里还初出茅庐的OceanBase。
这个看似半路杀出的“程咬金”,从2010年起锤炼自身,WhatsApp%E3%80%90+86%2015855158769%E3%80%91crane%20cam%20rowe已蟄伏等候此刻多時。其強大的產品實力背后,是阳振坤正確的判斷和團隊共同的堅持。
故事的開始,阳振坤做對的第一個決策是,在集中式數據庫盛行的年代,堅持分布式數據庫的道路。
这一切,可以从2010年说起。
2010年,阳振坤難得地給自己的人生放了一個月的假,陪陪家人,捋捋未來的計劃。就在當時,阿里的劉振飛向他遞出了橄欖枝。兩人此前在微軟一起共事,彼時劉振飛正負責淘寶的后臺系統運營管理。
阳振坤去了阿里面試,面試官是吳泳銘,他后來第一個直屬上司。2010年5月11日,阳振坤入職阿里,在基礎架構部門,職級是P11。有說法指,阳振坤加入淘寶后,本可以加入快速發展的淘寶業務團隊,主管技術,但糾結再三,他還是選擇并不那么好走的自研路子。
入職后大約一周,開發一款分布式數據庫的創想便逐漸成型。阳振坤向當時淘寶技術負責人吳泳銘提出這個想法。
深知数据库成长需要周期的他,已感时不我待。但在集中式数据库为主流的年代里,如何说服别人,给他这个没有数据库背景的人,一个尝试做分布式数据库的机会?
阳振坤給出的論點之一是,數據庫在集中式這條路上已經走到盡頭,接下來一定會往分布式走;且傳統單機數據庫缺乏擴展能力和高并發能力,對于離不開關系數據庫的互聯網來說,分布式數據庫“怎么看都是一件需要做的事”。
并且,当时阿里内部数据库的数量高达6500个,大量的业务场景和数据需求令他心向往之,相信其中蕴含打磨出分布式数据库产品的可能。
但,同样不可或缺的,是身处“去IOE”(IBM小型机、Oracle数据库和EMC存储)节点上的阿里,提供的“地利”。
早期,阿里是Oracle在亚洲最大的客户之一,Oracle会在官网上长期展示阿里的logo,阿里内部也有许多获得Oracle认证的顶级工程师。
然而,2009年开始做“双十一”的淘宝,数据量激增,让Oracle已有些捉襟见肘:Oracle数据库最多支持20个节点的共享模型,但阿里的数据量需要几十万台服务器。阿里需要能力更强的数据库。
后来阿里的成长速度,也证明这步预判是正确的:2009年成交金额只有大概5000多万的“双十一”业务,在2010年已达到9亿多,到2019年有2600多亿,呈几千倍增长。2010年淘宝第二届“双十一”的平台交易笔数每秒峰值就已经达到2500笔,但当时系统的极限容量是每秒3000笔订单。有阿里内部人士透露,2022年前后,在阿里内部使用的OceanBase、PolarDB和ADB数据库系统共使用了约5万台服务器,已远超Oracle的处理能力。
此外,从经济利益上说,Oracle的授权费也过于昂贵,且运行时要依赖高端硬件设备。当时,阿里高层发现公司每年在IOE上的支出,呈现惊人的增长——小型机、高端存储加上Oracle的各项费用,一套可能要两千多万,阿里每年要给IOE三家美国公司几乎200亿元采购费,这样下去,阿里可能变成“给IOE打工”。
而立志要成为一家科技公司的阿里,也需要建立自身技术根基。确定“去IOE”的战略后的初期,阿里还想从已有的MySQL开源数据库发力。但公司随后意识到自研的重要性,在飞天系统、OceanBase数据库等一系列技术根基建立过程中,也锻炼了许多数据库、中间件等相关研发人才,让阿里云得以在2015年之前就打下技术和产品优势,对其后来席卷云计算市场至关重要。
當時和阳振坤一樣相信分布式的,還有王堅——他是阳振坤在微軟的老板。阳振坤在2010年加入阿里后,有一段時間也向王堅匯報,在微軟時,兩人便已看好分布式的未來。而此前阳振坤在百度工作時,也深入學習了Google的分布式存儲和數據庫模型。在分布式的堅持上,他有底氣敢為人先。
想法有了雛形后,阳振坤隨后又花了兩周時間找客戶、再花了兩周在代碼上做簡單的原型論證。種種“天時地利人和”,加上早期阿里內部創新氛圍濃厚,吳泳銘也樂意授權各團隊自下而上搞創新,他提出的唯一要求是:兩年內證明這個項目的可行性。
至此,立项已成。那之后花了十多年长出累累硕果的OceanBase,起初的立项只花了六个星期。
与业务磨合:如履薄冰六七年
数据库产品能力的提升,常面临“先有鸡还是先有蛋”的尴尬:没有业务的磨炼,数据库难以成长;但不够成熟的数据库,又难获业务信任。
尤其在阿里内部,业务线领导要自己背负业务指标,冒险把业务交给一个从0开始的自研项目,相当于自愿站到了悬崖边上。
这一点,阿里云飞天系统的第一个客户阿里金融已深有体会:当时深受折磨的阿里金融掌舵者胡晓明,便带队高管们,在2011年12月31日晚上来到阿里云,向阿里云高层们鞠下无言的一躬,以求过一个不被飞天报警铃声打扰的安稳的春节。(无言鞠躬背后如何风云暗涌?欢迎添加作者微信Ericazhao23了解)
有了这一“前车之鉴”,各业务线对新技术的加倍谨慎自不必说。攻略业务线的老大,是从淘宝内部成长起来的OceanBase,避无可避的难关。
阳振坤自然擔起這一重任。回顧當時,他笑說自己“好像個大齡推銷員”,對淘寶內部的業務技術團隊逐個登門拜訪,“推銷”到口都干了之后,終于遇到一個愿意嘗試的項目:淘寶收藏夾。
之所以有机会,是因为当时淘宝收藏夹面对的性能瓶颈,内部还没有别的办法解决——
用户每次打开收藏夹时,系统都要检查商品价格、在线情况等状态变化,因此,数据库就要频繁访问硬盘数据。如果很多用户同时访问收藏夹,数据库的计算量和I/O需求就会大幅增长。要是访问硬盘上100个不同的位置,就要读取100个不同的“块”(Block),每读一个块可能需要1毫秒,用户打开读取淘宝收藏夹的速度就会变得非常慢。
然而,如何让业务团队相信,初生的OceanBase能解决这个问题?
“數據庫只要出一次問題,就永遠沒有信用,哪怕會給業務帶來好處,也沒有人敢用了”,阳振坤向雷峰網說道。在他眼中,業務團隊給出的每一次磨合機會,都是不可失手的關鍵戰役。
深諳此理,阳振坤帶著滿滿誠意和一套切實的解決方案,拜訪了淘寶收藏夾的主管魏虎。
他首先向魏虎阐述了自己的观察:淘宝收藏夹大部分数据的特点是,数据总量大,但每天的修改量很小。因此,可以尝试把每天业务低谷期(如凌晨两点之后)修改的数据,先放在内存里,到下一个低谷期(例如两点)时,再把当日修改跟原来的数据做大合并写回去。
但这一切变化只发生在后台,作为用户,在前端依然可以实时看到更新。
要了解这个做法的创新,就要先了解硬盘和内存的区别:硬盘中的数据需要基于“块”的方式读取、顺序访问,即便只需要读取其中一条记录,也要把整个块读取出来后再找到需要的记录,早期硬盘中,一个块的大小通常为512字节。而内存则能随机访问设备,可以直接访问任意一个字节的数据,速度更快。
假设用户收藏的100件商品存在多个不同的定常块里,原来的方法,只要用户有修改,就得把硬盘里这个块读出来,在内存改好后写回去,下个客户来读,又得从硬盘上检查每个块的修改情况。而新的方法中,修改都存在内存里,当用户访问时,只需快速访问内存了解数据修改的情况,并和原来的数据合并,给用户展示。
两种操作的核心区别是:减少大量重复的动作,大力提升收藏夹运行的效率。
這個方案俘獲了淘寶收藏夾團隊們的心。在他們的催促下,阳振坤團隊開始了驗證測試。
团队在两个月左右进行简单版本的测试,验证可行;再花六个月完成第一个正式版本,在生产环境中试运行。试运行四个月后,方案正式投产。前前后后,花了将近一年时间。
而运行OceanBase之后的淘宝收藏夹,从原需32台服务器,减到了14台,其中,12台处理静态数据,2台负责动态数据。
淘宝收藏夹和OceanBase的这场相遇,可以说是一场双向救赎。从此,OceanBase站上了数据库产品的起跑线,而直到今天,淘宝收藏夹仍是OceanBase的用户。
然而,OceanBase確實也只是剛剛站上了起跑線,阳振坤直言,当时数据库的功能“连1%都没做好”。
他开始在内部寻找第二个大型业务。
阳振坤曾將目光投向淘寶購物車,但購物車對淘寶而言是幾乎不可容錯的核心部分,謹慎定奪后,他還是沒有邁出這一步。
那一年里,他依然跑遍了业务部门,但没能幸运地获得第二个像淘宝收藏夹一样具有代表性的业务。永远卡住的一个环节是:如何向业务部门展示OceanBase的价值。
他们在忙忙碌碌中度过了第二年,2012年秋天,本该是收获的季节,但OceanBase再也找不到新的业务,项目面临关闭风险。即便是CTO吴泳铭,也难以直接干涉业务部门的产品使用抉择,对此爱莫能助。
就在此时,王坚牵线,建议他们去到如火如荼开展“去IOE”的支付宝。
兩年期限臨近的關頭,阳振坤果斷抓住這次“復活”機會,帶著OceanBase團隊,在2012年11月15日來到支付寶。
彼时,冯春培(花名孔丘)和程立(花名鲁肃)等人已经解决了稳定性的问题,让支付宝实现100%的运维可用率。需要解决的新问题是:大量使用Oracle数据库的支付宝,如何降低软硬件的成本?
当时,支付宝尝试给出的打法是用MySQL+普通PC机替代。然而,普通PC机的故障率远高于IBM小型机和EMC存储,会让系统的可用性显著下降。
這個扔到阳振坤面前的難題,并非一塊好啃的骨頭:淘寶的數據庫出問題,最多只是用戶暫時無法購物,可以通過工作人員的及時修復和誠懇道歉重獲用戶支持;但在支付寶的“錢”上出問題,失去的用戶信任將無可挽回。
就連當時非常看好原生分布式數據庫前景的支付寶CTO魯肅,也問過阳振坤:“你如何保證OceanBase不弄丟支付寶用戶的一分錢?”
阳振坤被這個問題問懵了。但他接下挑戰,帶著團隊探索新的方法。
鲁肃这个问题背后的逻辑是:如何在降低硬件成本的同时保持系统稳定性?幾經摸索后,阳振坤團隊引入了Paxos協議技術:讓一筆交易用三臺機器做,只要有兩臺機器成功完成,這件事就做成了。這筆賬可以這樣算:一臺PC機出故障的概率如果是千分之一,兩臺同時壞的概率可能就是百萬分之一,三臺則是十億分之一。
这一技术的变革,也是对员工的解放:以前只要主库坏了,不管几点,大家就要几分钟内起来做人工对账,但现在,只要有一两台机器继续工作,系统就能继续运行。能睡上安稳觉,这也一定程度“收买”了业务团队的心。
后来,腾讯、华为等公司在基于MySQL的系统中,也都采用了类似技术。
2014年,OceanBase 0.5版本已经做到“半分布式”系统:所有数据修改都在同一台机器上进行,但读取数据时使用多台机器。并且,其在关系数据库系统上做到单机/单机房故障不丢数据、不停服务,也已经超过了国家标准。
但,三年没有新标杆业务的OceanBase,还是难以避免地开始受到质疑。
要么成功,要么沉寂。種種壓力下,阳振坤把賭注,押在了阿里技術人每年的“大考”上:“雙十一”。
他向鲁肃自荐用OceanBase替代Oracle,但业务团队并不接招,于是,鲁肃出面,把相关负责人叫过来一起谈:
“OceanBase有什么问题,大家具体指出来,不要说‘感觉不稳定、害怕出问题’这些虚的。”
阳振坤還給時任螞蟻集團的CEO彭蕾寫了封郵件,大力推薦團隊產品:“咱們的同學非常優秀:給他們一個信任,他們會給我們驚喜甚至奇跡,我們認為技術上做不到的,他們也能做到……”
经历长达半年的切磋谈判,最终,OceanBase争取到了1%的流量测试机会。
命運眷顧有心人,就在那年,Oracle無意中也給OceanBase的成長“推波助瀾”:在“雙十一”前夕的壓力測試中,數據量一上到90%,Oracle就報錯崩潰。情急之下,業務團隊只好找到阳振坤:“給你們10%行不行?”
团队喜出望外,临危受命。
“双十一”流量的10%,基本就是淘宝平时100%的流量。OceanBase能否承住这份压力?众人瞩目下,就有了2014年OceanBase“双十一”作战室里的名场面:
当晚,时任蚂蚁集团CEO的彭蕾鼓励团队之际,也询问紧张备战的团队们:“有没有信心?”
恰好站在窗邊的阳振坤,推開了窗,摸不出幾分玩笑幾分真,只是說道:
“出了问题,我们准备从这跳下去。”
所幸,OceanBase順利地度過了雙十一,在全場的掌聲中,阳振坤心知這背水一戰終是成了。一戰成名,OceanBase逐漸接下了大淘寶100%的流量。
在这之后,团队继续实现起初打造分布式数据库的承诺。
如前所說,當時的OceanBase還是“半分布式”系統:只是寫入一個單點,讓所有數據的修改在同一個點上,避免復雜性。在阳振坤看來,這種做法短時間內能支撐支付寶的交易需求,長遠來看不可持續。
2014年9月之后,团队开始将其升级为完全的分布式数据库系统——每个节点都可以再做修改,节点与节点之间平等,没有什么特殊。
这步升级,花了整整两年时间。
直到2016年初,OceanBase系統開始替換支付寶最核心的賬目系統中的Oracle數據庫。這之后,完成所有項目的替換只是時間問題,“最困難的部分已經完成了”,阳振坤感慨。
产品能力逐渐成型后,他开始把眼光放到外部商业化上。
内外“交困”:费口舌不如跑分
“在公司里做一件事,你終究得證明自己有價值”,阳振坤向雷峰網(公眾號:雷峰網)說道。
在大厂中成长起来的数据库,一个天然的可得优势是,能用公司内部成熟的业务磨练产品。然而,这块硬币的另一面是,需要把握“满足业务团队高定制化需求”与“打磨自身数据库产品通用能力”之间的平衡。技术团队与业务团队的期望,常常出现巨大鸿沟。
并且,2016年前后,OceanBase还受到过阿里内部其他数据库的挑战,经历了一场“华山论剑”:嬴者才有继续做数据库的权利。(更多幕后故事,欢迎添加作者微信Ericazhao23交流)
鏖战过后,各方打平。尽管如此,OceanBase这个数据库老大哥或许也进一步意识到,是时候走出阿里这个“舒适区”了。
為了更好提升數據庫功能,為了一定程度上保持OceanBase的自主性,也為了證明數據庫產品的價值,2016年底,阳振坤開始帶隊做外部業務。
2017年,OceanBase获得了第一个外部客户,南京银行,也是互联网金融相关业务。
但早期获客举步维艰,2020年前后国产数据库赛道在卷的“自研”,此前在用户眼中是“不靠谱”的代名词。彼时OceanBase名气不足,质疑声多得团队成员的耳朵都快被磨出茧子:
中国的数据库领域已经发展了几十年,但还没有哪个数据库真正做得成功,你们怎么就成功了?Oracle这么多年都没做出分布式数据库,你们怎么可能做出来?
當時團隊規模也就百十來人,“百”口莫辯之時,阳振坤做了一個決定:跑分。
数据库也有自己的全球性能排行榜,若能登榜,OceanBase的能力不证自明。但这并不容易,至少在当时,中国还没有数据库能通过TPC-C基准测试,而Oracle已经稳坐第一名的位置,九年。
初生牛犊不怕虎的OceanBase,在2018年报名参加了这项测试,开始打榜。经历长达一年审核后,2019年10月2日,结果公布:OceanBase通过了测试,击败Oracle登顶。
至此,OceanBase这个既能做交易、也能做分析的HTAP数据库新星,在公众视野中冉冉升起。蚂蚁高层也正式决定,OceanBase作为一个单独的公司独立运营。
下一个重要的决策,是开源。2020年6月正式成立的OceanBase公司,9月開始進行文檔代碼整理,在第二年6月正式开源。开源尚未成為主流的當時,把數據庫開成“白盒子”,也是阳振坤團隊為消除客戶不信任感和陌生感的努力。
但OceanBase的成长并未就此停下。
生長于阿里的OceanBase,為大客戶量身定制,起初開拓的外部客戶,如南京銀行,業務量也很大。但隨著接觸企業范圍擴大,阳振坤觀察到,中小型用戶的五十個業務里,可能只有兩三個業務單機系統做不了、需要分布式,若一概使用分布式系統,對他們來說成本過高。因此,OceanBase也開始針對中小客戶的需求優化,提出“单机分布式一体化”概念。
通俗点讲,就是让分布式和单机系统同时存在,企业可以把规模小的业务用单机系统跑,业务量扩大时再叠加更多机器。这种系统在高配置和低配置下都保持不错性能的打法,避免“用高射炮打蚊子”,但要求团队付出更多精力技术调优。
阳振坤常掛在嘴邊的一句話,是他的恩師王選的重要教導:“頂天立地”。拆開來講是,技術頂天、市場立地。
也因此,他对OceanBase的发展规划,并不局限在技术层面的提升,而是积极走进市场、在市场的检测下调整优化。这也是OceanBase突破重重难关,获得今日成功背后的逻辑。
2006年在百度就開始追隨阳振坤腳步的楊傳輝,現在是OceanBase的CTO,他感慨:“如果一個問題,陽老師想了好多天還是無解,那這個問題肯定無解,因為有解的話,他一定能想到解決辦法。”
职业生涯中,三次“重启人生”
時間來到2025年5月12日,阳振坤榮譽退休。回頭看,30多年前,站在王選辦公室外忐忑的那個24歲年輕人,或許也難以想象,自己那天敲開的通往計算機研究所的大門,會指向一個如此瑰麗又廣闊的未來。
1989年春天,在北京大學計算機研究所實驗室隔斷出來的一個小隔間里,阳振坤第一次見到了王選。在這個簡樸的辦公室里,修完大學課程只用了三年、碩士只用了一年多的阳振坤,向王選表達說,希望能成為他的學生。
王選的一個允諾,讓阳振坤跟著他做了13年的激光照排。那是他人生第一次轉變賽道、重啟。1995年,阳振坤所在的團隊獲得國家科技進步一等獎,1997年,32歲的他被破格晉升為教授。
2002年,互聯網發展迅速,抱著對社會第一線工作的好奇,阳振坤離開了大學,在36歲闖入工業界,開始第二場新的嘗試。他去到聯想研究院擔任首席研究員,負責無線通信領域的研究;后來又接觸分布式系統,在微軟亞研、百度從事相關工作。
阳振坤來到百度是在2006年。他最先學習了Google開發的兩種分布式存儲和數據庫模型,Bigtable和Spnaner,并用C和C++写了一套凤巢系统,基本类似于2009年阿里做的ODPS系统。当时国内几乎还没有人做类似项目,团队对这个方向都信心满满。
在团队成员的记忆中,那时出去讲分布式系统的概念,就像现在和别人讲量子计算,听者都一头雾水。
然而,两年一过,这个项目就被放弃了——因其两年内还不能在核心业务应用,被认为不能主力投入。
后來在阿里的經歷則比較幸運。兩年的時間窗口里,阳振坤不需要背負KPI,得以專心研發,鍛造出職業生涯中最恢弘也是最辛苦的項目,OceanBase。能把這個項目做成,繞不開的,是阳振坤奠定下的極客基因。
在面試新人的過程中,阳振坤常常會拿出一張紙,給面試者畫OceanBase的框架圖,像布道者。也有OceanBase內部人員評價,阳振坤追求做出“面向未來的東西”,要更強壯、更有擴展性。因此,只要精力足夠,做得不夠好的部分,團隊總會不斷推掉、重來。
互聯網大部分項目周期是兩周,但數據庫的發展沒有三五年,往往也難以真正落地。內部業務催得緊,有時連團隊內部成員也頗有微詞。與時間進行毫無懸念的賽跑時,阳振坤也常需要安撫人心。曾有新加入團隊的年輕人向阳振坤抱怨說,合租的室友在天貓工作,做網頁熬一兩周就看到成果了,但自己的付出卻好像離收獲遙遙無期。
對此,阳振坤給出的回答是:“再過三年,你做的數據庫天貓還在用,但他改的網頁早就看不到了”。
做學問出身的阳振坤,對產品本身之專一,令他對這之外的一切,包括管理,都不買賬。種種光環下,他依然維持最簡單的一面示人。有客戶對他印象最深刻的,是會面時穿著涼鞋的形象。團隊成員們有時會笑評:“60歲的科學家,像個農民一樣。”
九十年代時,阳振坤曾跟著王選去美國,在IBM的研究中心里,他看到很多程序員即使白發蒼蒼,也依然坐在辦公室,敲鍵盤寫代碼。
那是阳振坤心目中程序員應該有的樣子。
國產數據庫起步最艱辛卻也滿懷希望的過去十多年里,阳振坤一直坐在他的辦公桌前,日復一日地面對那些視如己出的代碼。年過花甲的他,已悄然將自己活成那幅畫面中的一部分。
作者持续关注云计算、数据库、AI等相关领域,欢迎添加微信Ericazhao23交流。
(責任編輯:百科)