重要也更深遠的意義或許在于,陽振坤的存在創造了一種新的生態。他顛覆了時下困擾這個行業的「35歲危機」:一個程序員必須在35歲之前躋身進入管理層,否則將無法以技術身份立足,年長的技術人員意味著貶值、淘汰、失去意義,「60歲還在寫代碼」幾乎是對一個程序員最惡毒的職業詛咒。
陽振坤活成了這個危機的最好反例。他離開北大的那年已經36歲,著手數據庫立項的那年45歲,投身業界的過程并非一帆風順,中途經歷過不止一次的否定、質疑、團隊解散危機,可他始終是一個絕對意義上的程序員。自始至終,他保留了王選教給他的職業原則:正氣、專注、頂天立地。
文|尤爾敏
圖|受訪者提供
去更遠的地方
超過一萬名程序員在螞蟻集團上班,但其中有一個人是另類。他今年已經五十多歲了,活得卻像一個剛畢業的計算機系學生,他不帶團隊,沒有管理職務,直到今天依然是第一線的程序員,每天跟程序員們坐在同一個工位區,在工位上看代碼、找bug。他并不是一個愛說話的人,不跟大家開頭腦風暴會議,參加團建的時候不玩聚會游戲,中午也不跟大家一起吃飯,午餐時間總是一個人跑到樓下,邊聽英語邊繞著圈散步。
辦公室里流傳著許多關于這個另類的故事,他常常穿著沖鋒衣來上班,跟實習生開會的時候也會做筆記。還有一件廣為人知的小事:他不止一次在面試的時候自己拿出紙和筆,事無巨細地給桌子對面的人畫一個架構圖,向對方努力推銷自己的工作構想——他想要做一個數據庫,叫,他試著說服對方理解其中的意義,Ocean代表海洋,Base是數據庫,它如何容納海量數據,為什么做分布式系統……他的講解常常讓對方目瞪口呆,因為在那個面試現場,他才是面試官。
這個另類程序員就是陽振坤,創始人、首席科學家,現任螞蟻集團副總裁。辦公室里既沒有人喊他Boss,也沒人稱呼他「陽總」,大家都叫他「陽老師」。這是他在第一份工作里留下來的稱呼。因為他喜歡數學,考大學選的也是北大數學系,一路從本科的基礎數學讀到了研究生的應用數學,陽振坤差一點就成了數學系的老師。只是那時候他覺得自己英語不好,家里又沒錢,沒辦法出國留學。因此經過當時的北大數學系的鄧東皋教授介紹,他去找了北大計算機研究所所長王選,成為了一名實習生,想在數學之外的地方走得更遠。
跟著王選的日子改變了陽振坤。王選是中國最早也最偉大的第一代程序員,正是因為他創立了漢字激光照排系統,今天人們才能在計算機中使用漢字。王選是一個講究「方正」的人,陽振坤在導師身上看到了如何做一名程序員。在王選的課題組,做人比做技術更重要,當一個程序員要有技術能力,更要有見識,有正氣,為人要正派,要有擔當。陽振坤記得王選常說,「德才兼備,提拔重用;有德無才,難當重任;有才無德,以濟其奸。」
「那時候他經常教我們,做事情要頂天立地。頂天就是你做的東西,技術上要有過人之處,否則就算你做出來,產品在市場上也沒有很大的競爭力。第二個事情是要立地,你從做東西的時候就得想著別人怎么來用它,如果你只是把技術做得很好、很牛,沒有太多去想別人怎么用,那樣也沒有機會的。」陽振坤說。「這后來成為我做很多事的原則,要做到頂天立地。」
抱著王選教給他的信念,他在激光照排領域做出了頂天立地的技術成果。他所發明的智能化高速向量還原算法讓光柵圖像處理系統不斷升級換代,他的技術貢獻讓他從35歲之后開始過上安穩日子,他被連續破格提拔為副教授、教授,成為北京大學計算機科學技術研究所副所長,北京大學首批長江特聘教授……
就在邁向中年的節點上,陽振坤又一次找到王選,他想離開這個日漸成熟的行業,去外面的世界闖一闖。當時剛剛經歷了互聯網泡沫,有很多技術空白,有機會讓他創造更多新的「頂天立地」。他在聯想做過無線局域網、無線投影技術,做出了無線投影機,后來在微軟和百度研究過云計算。最后,他找到了自己新的終點:分布式數據庫。
2010年,陽振坤入職阿里巴巴,開始了分布式數據庫的研發。「我在微軟亞洲研究院學做谷歌的技術,在百度做過云計算,后來到了阿里巴巴從0到1開始研發分布式數據庫。這些都有一個共同的特點——如何用更廉價而可靠的辦法,正確地處理越來越龐大的數據?」陽振坤說。
就這樣,商業世界里多了一個原本要當數學家的人。離開學界已經超過二十年了,他身上依然保留著一個學者的樸實。他是螞蟻高管里為數不多的自己貼發票報銷的副總裁,他沒有助理,凡事親力親為。他自己則像程序員一樣,坐在工位上,守著電腦看代碼。
一開始,沒多少人看得懂陽振坤在做什么。他是他所在的每一個群體里的另類。他是北大學者里少有的投身產業的人,而在觥籌交錯的商人圈子,他的教師屬性又讓他格格不入。即便見到技術同行,他所創造的一個全新的數據庫,能理解的人鳳毛麟角。很長一段時間里,他必須活在無人理解的孤獨里。他參加技術圈的聚會并不多,倒不是因為工作忙,而是他已經習慣了熱鬧里的孤獨。「我還是會按照我的方式來做事情,我覺得需要參加的活動并沒有那么多……對程序員而言,更重要的是沉下心來做事情。就我自己的經歷而言,一個程序員把事情想清楚的重要性要比人們認為的大很多。」他說。
陽振坤和組員在工位區
12年過去了,他和他的技術已切實影響了超過十億消費者,他曾經一次次畫在紙上跟人解釋的數據庫構想,最終全面替換掉了支付寶交易、支付、賬務系統原本依賴的Oracle數據庫,成為支撐著我們日常生活的底層基礎,這個中國的數據庫還出口到了東南亞和北美等地,為當地的業務提供數據庫服務。這些真實世界的成功,讓這個技術另類的存在變成了一個有趣的命題:商業世界存在一個陽振坤的意義是什么?
最直接的結果是技術進步。正是因為有他的堅持,中國誕生了一個擁有自主知識產權的分布式關系數據庫,這也是全世界第一個大規模應用在金融核心業務的中國數據庫。在沒有任何先例可以參考的情況下,最初僅由只有幾十個人的小團隊開發出來,以遠低于傳統數據庫的成本,扛住了支付寶一次又一次的雙十一支付峰值,入選了2022年世界互聯網大會領先科技成果獎。
然而,更重要也更深遠的意義或許在于,陽振坤的存在創造了一種新的生態。他顛覆了時下困擾這個行業的「35歲危機」:一個程序員必須在35歲之前躋身管理層,否則將無法以技術身份立足,年長的技術人員意味著貶值、淘汰、失去意義,「60歲還在寫代碼」幾乎是對一個程序員最惡毒的職業詛咒。
陽振坤活成了這個危機的最好反例。他離開北大的那年已經36歲,著手數據庫立項的那年45歲,投身業界的過程并非一帆風順,中途經歷過不止一次的否定、質疑、團隊解散危機,可他始終是一個絕對意義上的程序員。自始至終,他保留了王選教給他的職業原則:正氣、專注、頂天立地。他做過團隊的管理者,但他大部分時間都在技術一線,全力專注于代碼、設計和具體的技術問題。他的團隊信奉另一種職業邏輯:一個程序員也可以不必鉆研晉升捷徑,專注于自己的代碼,深耕技術也可以取勝。這對于熱衷談論風口、熱點、捷徑的互聯網行業,不失為一種有意義的對照。
跟陽振坤一起爬過山的人都知道,他有自己的法則。在山腳下出發的時候,陽振坤并不是奪冠選手,他既不是體力最好的,也不是沖刺最快的,他的爬山也不講究走捷徑的技巧,他只是按照自己的節奏,找準通往山頂的路,不緊不慢地勻速前進。他比不過起速快的年輕人,中途也會被抄小路的人反超,但整個全程他走得最穩,走得也最遠,所以幾乎每一次,他都是最早攀登頂峰的人。這是他的取勝之道,一個技術主義者贏的方法論。
「陽老師」帶領年輕程序員研讀學術論文
技術的愚公移山
楊傳輝是第一個看懂陽振坤想做什么的年輕人。2007年,他畢業到百度工作,入職的唯一要求是要進陽振坤的組。后來陽振坤加入阿里巴巴,他也在一個月以后入職,繼續一起研發數據庫。
一開始,他們都著迷于谷歌的分布式系統。楊傳輝在谷歌實習的時候第一次知道它的概念,而陽振坤在微軟的時候,常常和王堅討論起這個話題,每次聊起都覺得很震撼。以前人們要處理海量數據,只能把機器越造越大,但是谷歌提出了一個新主意——我們可以用很廉價的機器,以一種分布式架構組織起來,去完成大型機才能做的事情。這個主意激發他們去探索,如果將分布式應用在關系數據庫上,同時解決這種系統的可用性和可靠性,那會是新的「頂天立地」。
當時,數據存儲是一個亟待解決的難題。他們在組內討論業務前景,中國人網上交易是海量的,阿里巴巴的服務器最早就是以千為單位計數,累積超過數千億條記錄了。當時支付寶一天就一億多筆交易,如果像傳統商業數據庫那樣一筆交易成本一毛多錢,一億多筆交易一天就一千多萬,哪個公司扛得住這樣的成本?在這條路上依靠像Oracle這樣的商業數據庫是代價高昂的。更何況,業務還經常會跑來說,下個星期我們要做一次大促銷,你們數據庫扛不扛得住?Oracle擴容需要購買高端服務器和磁盤陣列,這至少需要2-3個月。這是擺在技術面前的挑戰:能不能創造一種新的模式,既把成本幾十倍地降下來,又能保證穩定、可靠、快速地按需擴容縮容?
在一次次重寫的架構圖紙上,陽振坤慢慢找到了一種可行的解決路徑——固態盤SSD每秒鐘能讀取幾萬次,每次只需0.1毫秒,大大優于機械盤的讀取能力。如果設計一種分布式數據庫,采用SSD存儲數據,只記錄修改的動態數據,而把全部數據記錄的寫入時間放在用戶行為減少的后半夜一次性寫入,這就可以大幅提高效率,提升數據可用性。而同一份數據至少存在三臺機器上,這就好像把生命送上三個運行的小星球上面,它們彼此都是對方的備份,失去任何一方都還有人能頂上,這就能保證數據的可靠。
這就是數據庫最初的構想,陽振坤提出了一種同時解決了成本、性能、可靠、可用、容錯、容災問題的技術解決方案。之后十多年的現實證明,這個最初的設想不僅成立,而且是關系數據庫的顯著技術進步。
第一個業務應用在淘寶收藏夾,剛上線的時候是一個機房十幾臺機器,后來數據量和訪問量都已經翻倍了,還是十幾臺機器。他們用了幾分之一的成本,實現了比當時更高的性能。
但是,這個技術創新在誕生之初面對的卻是接連的否定。當時Oracle數據庫已經占據了市場統治地位,替換風險很大,那時候淘寶大部分業務也都已經按照用戶維度做了分庫分表,一個全新的數據庫很難有用武之處。更重要的是,數據庫是底層系統,研發周期以年為單位,短期看不出成效,但那時候人們還沉浸在中國互聯網的高速增長中,沒人知道十年后會有貿易戰,大部分人不能理解為什么研發一個國產數據庫迫在眉睫。
面試新人的時候,陽振坤經常問:「你覺得有沒有希望追得上Oracle?」在剛開始的幾年,他得到過表述不一的回答,結論都是統一的「不可能」。
在當時的處境下,陽振坤提出「頂天立地」的技術目標聽起來十分遙遠。「那時候我經常跟大家聊,我們做這件事情,一定不只是給淘寶做,給天貓做,給支付寶做,我們一定要面向全世界,做一個真的頂天立地、通用的數據庫,因為數據庫一定會從單機走向多機、走向分布式,我們正好有機會先走了這一步。」
最初的很長一段時間里,陽振坤成為了數據庫行業里的另類,圍繞他身邊的都是懷疑:為什么要自己做數據庫?有那么多開源的數據庫,拿來用不就行了?數據庫發展那么多年,不止一家公司想做新數據庫都沒做成,你是一個沒有做過數據庫的人,憑什么你能做成?
「陽老師一直都覺得肯定能替代Oracle,當時對我們來講覺得是一個天方夜譚的事,我們怎么可能替代Oracle呢?我們連人數上都(比不上),我們幾十人,人家Oracle幾萬人。從零到一做一個數據庫,覺得是愚公移山,大家都覺得有現成的干嘛不用,干嘛非要自己去研發一個,但陽老師相信這件事。」在負責技術運營的李琦說。「我覺得他身上有那股勁兒,非常執著,對于他堅信的事情一定要做到極致,并且會想盡辦法把他相信的事情變成現實。」
「其實技術永遠不可能完全地舒展開,那是個理想狀態。但是我覺得一個技術團隊(取得成功),也許有兩點很關鍵,讓大家看到技術很有價值,也要讓大家理解技術的力量。因為有時候解決問題,可能不是用的技術手段,比如有人談判能力很強,靠人的能力把價錢壓下來了。但是我要做的事情是讓大家看到,我們能用技術的手段解決問題。」陽振坤說。「我本身是一個程序員,我能把技術想得很清楚,估算出來大概需要花多長時間,多少人,就能把這件事情做出來。我們要讓大家認同我們的技術做法,(相信)這個技術方向是正確的。」
這是陽振坤從王選時代就形成的信念。一個例子是,最早印刷的漢字看起來有點別扭,因為當時的技術沒辦法完美表達曲線,一碰到漢字有弧度的部分,像是撇、捺、點、勾,只能用短小的直線拼湊成近似彎曲的樣子,這導致漢字的每一種彎曲在芯片上的算法表達都很困難,一度陷入瓶頸,但是陽振坤一點點推敲,最終想到了辦法。他學數學出身,他用一個三次多項式表達這種曲線,再用三次加法的迭代讓芯片處理這條曲線,這樣一來就實現了芯片完美表達漢字里的每一種曲線,也是他的技術自信:那些原本你覺得不可能的事情,因為代碼的存在,它們都能發生。
「他有一個信念,他認為沒有什么技術問題是解決不掉的,只要這個問題有最優解,大家就一定能想到,這是他的自信。無數年的工作已經證明了這一點,他慢慢形成了這種自信。」楊傳輝說。
只要有技術的進步,只要有人的堅持,改變一定會發生,這種技術自信一點點感染著周圍的人。楊傳輝說,一開始出去談合作的時候總要開很久的會,因為對方做業務,聽不懂他講的底層數據庫。每次一提到自家數據庫的特征,「既能保證強一致,又能保證高可用,宕機的時候還能保證不丟數據」,對方總是一臉懷疑,這怎么可能呢?有時候開會講不明白,開完會一邊吃飯一邊繼續講,他常常覺得最后對方同意,并不總是因為技術。「有時候業務方也知道,他沒辦法理解底層的每一個細節,他沒聽懂,但是他覺得你人是靠譜的,信任我們的為人,給我們嘗試的機會。」
2014年,支付寶的交易支付系統開始使用數據庫,為了說服管理層信任技術,陽振坤當時寫過一封郵件:「咱們的同學非常優秀:給他們一個信任,他們會給我們驚喜甚至奇跡,我們認為技術上做不到的,他們也能做到……」不久后,他也得到了信任的反饋:「我不懂技術,但是我相信技術。」
事實上,技術最終給出了一份超出想象的答復。在很多層面上,已經做到了互聯網數據庫基礎軟件中的最優解。它在2017年在支付寶全面取代IOE,在2019年又在世界上最權威的數據庫評測機構TPC(國際事務處理性能委員會)發起的TPC-C基準測試上取代Oracle,成為第一名,打破了Oracle保持了9年的世界紀錄。不僅如此,從2017年開始,開始服務外部客戶,2021年面向全網開源,去年八月份發布了可以在全球最小的電腦樹莓派上運行的4.0版本,這打破了當前分布式數據庫只服務于大客戶的局限,新版本讓中小企業也可以低成本享受分布式數據庫的高性能。
這所有的現實成績證明了最初設想的成果,技術道路的確把商業帶到了更遠的地方,朝著一個通用的數據庫邁進,這條路走得越來越遠。
陽振坤獲得「CEO特別獎」
打破「35歲危機」
所有人都意識到,陽振坤還想要去更遠的地方。楊傳輝依然跟著陽振坤一起工作,他現在成為了的CTO,每次跟陽振坤聊天都會發現,這位技術前輩總有新的想法。他在手機上預約剪頭發的時候意識到,理發店都習慣于把預約信息放在公有云上,這意味著一種新的數據存儲需求,而這可以成為分布式數據庫的機會,他們可以用切分虛擬數據庫來滿足這種新的需求。還有一年過完春節回來,他在紙上畫起了新的架構圖,這是他用假期想明白的數據庫未來——在同一個數據庫里既做轉賬記賬,又可以算賬,一種被稱為HTAP的數據庫。
和陽振坤的每次見面都是一場新的學習。他已經逐漸邁向退休年齡了,但他在工作中的熱情程度卻絲毫不亞于一個剛入職的年輕人,直到現在依然喜歡提出新問題,討論新方向。陽振坤在團隊內部有個規矩,所有專利發明只要沒有他的直接貢獻,都不能寫他的名字。但連他自己都沒有注意到的是,在 300多項專利里,超過三分之一的專利第一署名申請人是陽振坤。也就是說,留在技術一線的陽振坤一直在不斷輸出,一個程序員45歲之后的創造力依然強大,能源源不斷提出新的構想。
辦公室里的「陽老師」在技術之外的地方,也留下了很深的影響。與他共事的人最常提及的一個影響是,在他身上,他們重新理解了年齡,重新理解了時間。
互聯網公司的典型項目周期是兩個星期——用戶提需求,他們在兩周內響應,上線發布,項目結束。但是陽振坤的項目周期單位是年,最短也要以半年計算。當時新到公司的年輕人找他抱怨說,他們的合租室友在天貓工作,別人做網頁,熬一兩周就能看到成效,指著網站上的頁面說,這就是我做的。可是自己來了半年了,好像什么都沒做出來,做出來的東西也都關在屋子里,根本沒有成績。
陽振坤的回答現在也成為了這個團隊的經典答案:「再過三年,你做的數據庫還在天貓用,但是他改的網頁三年后早就已經看不到了。」
「MySQL從發第一個版本到普遍用起來,花了十幾年的時間。十年其實是一個挺正常的事情,基礎性的東西是不可能幾個月或者一兩年就能做成的。」陽振坤說。
「我們這種做底層系統的團隊,跟德國的藍領工人很像的,他們年紀也很大了,但是他們很珍貴,比方說最精密的車床一直是靠人工制造的,最精密的鏡片,最精密的望遠鏡,到了一定程度之后,它要靠人的經驗。這也是為什么在美國一些老牌公司里面有很多年齡很大的程序員,那些做底層系統的人需要很長時間的培養、磨練和積累。」
這是陽振坤自己從數學轉行做程序員的體會。剛從數學系轉到王選所在的計算機系時,陽振坤對于程序員的生活一無所知。面對計算機,他幾乎什么都不會,不懂C++,不會寫任何一門編程語言,事實上他在此之前都沒怎么見過計算機,因為八十年代的北大一共也只有幾臺設備,計算機系教學都不夠用,更輪不上他所在的數學系。學計算機的頭五年,他基本上一天工作16個小時,每天早上7點機房一開門就在門口。程序員的職業意味著什么?要怎么做?未來的路怎么走,全都是在摸索中發現的。
技術研發需要無止盡的探索
九十年代跟著王選去美國,他們去訪問IBM的研究中心,不少白發蒼蒼的程序員坐在辦公室里,敲著鍵盤寫代碼。這一幕一直留在陽振坤的心里,這是他所理解的程序員應有的樣子。「比爾·蓋茨曾經說過,IBM之所以發展得不夠好,一個重要的原因是他們把聰明人都提拔成了管理者,很多技術、很多產品沒有足夠聰明的人繼續發展它。這句話可能不見得對,至少說明了一個問題,管理不是每個人發展的唯一路徑。」
「過去做應用、做前端,大家都是一股腦兒跑去做一些很前端的東西,來了發現這個行業的人做了十年以上的非常多,這件事打破了我長期以來的觀念。」李琦說,「陽老師一直在說,我們一定要沉下心來,做底層技術就是需要足夠的耐心和充分的信心。我們自己也相信這件事,像陽老師那樣把事情做五年、十年、二十年,慢慢看到成效。我覺得這里打破了所謂傳統互聯網『35歲危機』魔咒。我們不會說35歲是一個坎兒,在這個行業里沉淀的時間越久,你對行業的理解越深,你也愿意再花精力在行業里繼續沉淀。在這里會有一種心態上的從容,把事情做好就行了,不用考慮太多。」
作為程序員,楊傳輝也是一個不相信「35歲危機」的人,甚至他在招聘中會更看重程序員的年資,這是他和陽振坤一起做數據庫十多年以來的切身經驗。很多核心的人在35歲以上,因為做數據庫的開發設計需要時間沉淀,他自己也是花了近十年的時間才真正理解了數據庫,一個人到了35歲也剛好把自己行業最深的問題想清楚,所以35歲到45歲正是一個程序員整個工作生涯產出最高的時間段,而不是一個應該憂慮的時間段。「一個50歲的人寫代碼,現在大部分人會覺得,這個人是不是不太行。以后看到這樣的人,你會覺得挺正常的。陽老師這樣的人現在只有一個,以后會越來越多。美國白胡子程序員多了去了。」楊傳輝說。
再過幾年,陽振坤就要60歲了,他的愿望是那時候的自己依然可以留在一線,解決技術的問題。如果一切順利,退休的時候他希望自己依然是一個程序員。
「坦率地說,我并不是特別聰明的人。我見過聰明的程序員,比如在北大的時候我們的大師兄,內部各種各樣的工具一多半都是他隨手寫完的。我佩服這樣的人,可我知道我不是這樣。我屬于不算特別笨也并不聰明,可是很努力的那種人。小時候父親教我一句話,『千年餓不死的手藝人』。我不想當頭兒,也不想當官,如果可以,我還是喜歡自己做事。」陽振坤說。「我覺得中國人在技術上的創新,尤其是核心貢獻與國際先進水平的差距現在真的越來越小了。就像當年的激光照排技術讓中國走在世界前列,我想我們的數據庫應該也有這樣的機會。」
直到現在,他還是會在面試的過程中拿出紙,給新認識的人畫的框架圖,講解一個個分布式數據庫里的技術細節。這是他作為商業另類最典型的例證,但現在,這也成為了他尋找同類的暗號。
他的團隊里現在多了一個另類的故事——有一次的面試里,坐在現場的候選人是曾在王選課題組里的學生。他曾經在北大讀書,陽振坤是他的密碼學老師。來面試之前,他曾經猶豫過要不要加入這個團隊,但是在面試的時候,陽振坤直接掏出一個本兒,跟他講的未來是什么。他說,他就是為了這一刻留下來的,因為那種感覺像是回到了幾十年前的北大,回到了王選的課題組,回到了他們做技術最初的起點,原來在學術界之外的地方也可以純粹地做技術,講究正氣,追求頂天立地,把卡脖子的技術真正拿下,做中國人自己的技術。
他決定留下來,和陽振坤一起繼續往前走。一個人的堅持變成了一群人的信念,辦公室里不再只有一個另類。
團隊合影
親愛的讀者們,不星標《人物》公眾號,不僅會收不到我們的最新推送,還會看不到我們精心挑選的封面大圖!星標《人物》,不錯過每一個精彩故事。希望我們像以前一樣,日日相伴。
《人物》首部女性報道合集
《她們和她們》
正式開售,點擊圖片購買↓↓↓
*請認真填寫需求信息,我們會在24小時內與您取得聯系。