【沉澱】從網絡中間件到搜索,從移動開發到分布式計算平台,阿裏雲高級專家李睿博談自己的折騰路
《沉澱》是雲棲社區展示專家風采的人物欄目。它呈現每個專家獨一無二的人生經曆、認識和感悟的同時,也能幫助你沉澱技術,收獲對技術和人生的判斷。我們的想法是:“若你想精進為一個很厲害的人,不妨細細品味這些技術牛人背後的沉澱。”如果你想了解這些雲棲專家更多分享時,請點擊雲棲專家頻道,當然我們也歡迎你往前走一步,成為我們的雲棲專家(https://yq.aliyun.com/expert),與技術大牛一起“煮酒論英雄”。
1.
如果人生可以重新來過一次,你會怎麼做?
相信很多人都會列好一大堆計劃和想法,而李睿博卻和雲棲社區的同學講了一個往事:
“小時候一幫小朋友一起玩,弄壞了鄰居的財物,大家一哄而散,隻有我覺得這麼跑掉是不對的,愣是站在原地沒動,最後責任都成了我一個人的。”
講完後,他說:“人生如果能重新來過,還會是一樣。我其實是個挺執拗的人,會堅持做自己認為對的事情,即使有時候明知道會吃虧。”
從功能機時代做網絡中間件到做搜索,從做移動開發到做分布式計算平台……細看,轉型跨度都挺大,而每一步李睿博都無怨無悔。
抽絲剝繭後,你會發現,這是愛,是對代碼的愛。
2.

李睿博認為,路走對了,才不怕遠;走對路,比走的遠更重要。
李睿博,花名藝卓,他是阿裏集團計算平台事業部生態與輸出部門的負責人。對於自己的工作,他概括地說:“MaxCompute 上直接接觸用戶的那部分,很多都是我部門的工作。”這些工作包括 MaxCompute 的 REST API、SDK、Console、JDBC驅動,以及PyODPS 及其配套的 DataFrame。除此之外,李睿博的工作也包括跟各種社區、生態的對接。
回到李睿博工作生涯的起點——2006年北航研究生畢業後,他因為麵試流程Geek,以及有遊戲背景,任性的找了一家特殊的日企,並在一年後,又隨這家公司到東京工作了兩年。這是家做網絡中間件的公司,核心產品是用一套SDK完成Linux/Windows/Solaris server side 以及PSP/NDS/wii 等 Client Side 的網絡通信代碼編寫,客戶主要是遊戲公司。在這個過程中,他實現了在 128k 內存 128x128 的屏幕上實現偽網遊的效果,這個在——GPRS、手機還是NoKia的時代是一件非常具有挑戰的事情。
2009年,李睿博加入阿裏雲做搜索(現在的“神馬”)。在搜索的時候,他發現,當時團隊的模塊發布用的是RPM包,而RPM/YUM的改變是係統級的,多人共用一台機器會互相幹擾,於是就寫了一個Abxp(Abuildxp 的縮寫)的工具,用來在編譯代碼之前構建依賴庫環境用的。這個編譯工具直到最近這幾天,都還有 IDST 的同學遇到問題找到李睿博。對於寫出長命的Code,這位不斷跨領域的技術人也挺吃驚的。但大家覺得好用、喜歡用,他也非常高興。
2013年,李睿博跟隨集團無線 All In 戰略做了一年的創業項目。在無線的一年,他帶領一個測試開發底子的團隊轉安卓開發,並在不到一年時間把App做到百萬日活。盡管這個App最終沒能活下來,但李睿博還是挺驕傲的。自豪之外,他也有反思和收獲,一定要給用戶帶來價值。他在回複中表示:“無論技術層麵執行的多麼到位,帶不來價值的應用活不下來很正常。阿裏土話說‘路走對了,就不怕遠’,我覺得應該叫‘路走對了,才不怕遠’ 。”他強調,走對路,比走的遠更重要。
由於移動應用業務屬性太強,做安卓開發一年後,李睿博來到阿裏集團計算平台事業部生態與輸出部門,潛心於技術。盡管這個領域不懂的東西太多,但隻要能重新沉醉於代碼中,他覺得哪怕“被虐”也是值得的。“好幾次都是靠‘自己選的路,跪著也要走完’的信念才走到今天”他表示,在大數據平台學到最多、挑戰最大,不過後來居然越做越有感覺了。
到今天他做MaxCompute已不知不覺有三年。問及最終目標是什麼,他說,就當下工作而言,有兩個:一個是通過PyODPS直接賦予數據科學家操作大數據的能力;第二個是通過生態與輸出,讓大家可以將開源所學直接用在 MaxCompute 上。“如果要論終極目標。”他毫不猶豫地說:“那就是將大數據計算能力普惠給用戶。”
對於分布式計算平台的趨勢,李睿博認為會越來越往準實時、實時方向靠攏,“離線和實時分布式係統之間的界限會越來越模煳,兩邊都會嚐試侵占對方的地盤。”
溝通中,也問起他的花名為什麼起“藝卓”,李睿博一臉遺憾,他說:“本來想取‘睿博’。”他戲稱,畢竟向後兼容還是很重要的。但後來他發現,這個花名不可用,隻好取了“藝卓”。之所以取它,李睿博稱,有兩個原因:第一,和“睿博”讀音有點靠;第二,這個名字是專業顯示設備的品牌,他比較喜歡這個牌子,並且也希望像這個品牌一樣在自己的領域裏做專業。
3.
從搜索到安卓再到分布式計算平台開發,在外人看來這幾次轉型跨度都挺大的,回顧曆程,李睿博也驚訝自己這麼能折騰。
“那如果給一次選擇的機會,你會怎麼做?”折騰太累,大多數人都不喜歡折騰,所以雲棲社區拋出這個問題,是希望李睿博能給出一個完美的技術進階路線。然而,答案似乎並不像雲棲社區期待的那樣。
“如果真能選擇的話,還是會去買套房吧。”他開了一個玩笑後,開始言規正傳——人生如果能重新來過,還會是一樣。
是什麼原因讓他來生還願意這麼折騰,雲棲社區並沒有進一步去探究。因為在另外一個回答中,可以找到答案:“我是真的愛寫代碼,從小學就開始愛,到現在快三十年了也還愛。”
如果這個答案還不夠直接,那麼你可以看李睿博這一句:“做自己喜歡做的事情,還有錢賺,這麼奢侈的事情,我已經很知足了。”
雲棲社區:“藝卓”的花名給人總有一種手藝人的工匠精神在裏麵。你入職那時,取花名還是件很容易的事,能談談為什麼沒有取武俠風的花名,而是取了“藝卓”?
李睿博:我 2009 年入職阿裏,其實直到 2013 年去無線才有的花名。阿裏雲早期並不流行花名文化。
等到真想要花名的時候係統提示“睿博”不可用(畢竟向後兼容還是很重要的嘛),結果到今天也沒看到集團裏誰的花名叫“睿博”,有點遺憾。
取“藝卓”這個名字,一個是因為讀音跟睿博還有點靠,另一個是這個名字本身是個做專業顯示設備的品牌,我個人也比較喜歡,也很希望能夠像這個品牌一樣在自己的領域裏做專業。
雲棲社區:你第一份工作是Port 日本的 Doja 手遊到國內的 J2ME,在那個年代,能在 128k 內存 128x128 的屏幕上實現偽網遊的效果是一種挑戰,你是如何解決這個問題的?
李睿博:在資源極度受限的設備上做開發,有點像把一大堆東西塞到一個小手提箱裏。一個是東西本身要經過很好的折疊,比如圖片、音樂這些資源大戶,要經過良好的剪裁和壓縮。
另一個是要做很精細的安排,空間本來就有限,哪裏放什麼要規劃的非常仔細。日本工程師在這方麵其實做的已經很好了。移植到 J2ME 因為機器配置更低所以要做的更激進一些。
網遊對戰這塊,那個年代的流量還很貴,而且 GRPS 也不足以支撐實時網絡對戰,所以我們當時的做法是和另一個玩家的曆史記錄對戰(賽車類)。
雲棲社區:你在搜索部門時開發了一款編譯工具,直到今天都有人在用,並找你谘詢問題,能否介紹下這是什麼樣的一款編譯工具?當初出於什麼原因去寫它?
李睿博:是個叫 Abxp(Abuildxp 的縮寫)的工具,用來在編譯代碼之前構建依賴庫環境用的。
做這個工具的原因有兩個,一是當時團隊的模塊發布用的是RPM包,二是當時團隊的工作習慣是一台開發機多人共用。
既然用了RPM,那麼最直接的辦法就是RPM來構造開發所需的依賴環境。但是 RPM/YUM的改變是係統級的,多人共用一台機器會互相幹擾。
因此就有了Abxp這個工具,利用現成的RPM體係,構建個人的開發環境,互不幹擾,甚至一個人的幾套代碼不同目錄之間都可以用不同的依賴環境,給開發工程師提供便利。
雲棲社區:後來去做安卓開發,是早有準備,還是現學現賣?另外,也說一說學習安卓開發的過程吧。
李睿博:基本是現學現賣。雖然早年也做過J2ME開發,不過跟直接在 Canvas 上做各種圖形繪製比起來,安卓抽象了 Activity、Service、Intent 等一係列概念,組織了 Fragment、ViewPager 等一係列組件,能夠用好這些東西需要積累和時間。
當然,因為做的App 的特殊性,其實用到不少跟係統相關,行為定義的沒那麼清楚的 API,這個就真的是要摸著石頭過河了。
雲棲社區:在不到一年的時間裏,把App做到日活百萬,從技術角度來看,這段經曆有哪些成功或獨到之處?其次,對於這款App沒能最終活下來,你有哪些認識和思考?
李睿博:做App 是要滿足用戶真實的需求的。無線All In 那一年,我們做鎖屏軟件,動機其實是“搶入口“。
我們在鎖屏界麵上做壁紙,跟蝦米合作做音樂播放,跟螞蟻合作做餘額寶增值曲線,跟淘寶合作做快遞提醒,跟頭條合作做新聞,跟爆漫合作做段子推送,如果再多有一些時間,鎖屏會被我們做成一個微型OS。這個臃腫的鎖屏軟件表達的我們的訴求太多,能夠帶給用戶的價值偏少。
當然也不是沒有。今天很多已經集成到 ROM 裏的功能,那個時候我們都在鎖屏上做過,比如用最少的操作打開手電筒,切換歌曲等等。
雲棲社區:為什麼在移動開發最火爆的時候,又轉型去做分布式計算平台開發?在轉型分布式計算平台開發中,都遇到哪些挑戰,請詳細敘述下。
李睿博:
到分布式計算平台,最大的問題還是初來乍到,整個領域不懂的東西太多。雖然傳統的 MapReduce 不難理解,但是一個Query 從進來Compile 成 Plan,到 Optimize 到生成 Runtime code,整個鏈路很長,而且鏈路的每個節點都有足夠的細節和門檻。
雲棲社區:MaxCompute相比Hadoop等開源產品有哪些優勢?其次,作為計算平台生態與輸出部門的負責人,能否在脫敏的前提下,談下MaxCompute在生態上的一些規劃?
李睿博:優勢麼,第一個是性能。我們自研的平台在性能上對比開源競品還是有很大優勢。另一個,MaxCompute 是完全托管的大數據服務,用戶不需要知道集群,隻管跑作業就好。從這個角度說,MaxCompute 跟 IaaS +開源軟件完全不同。
MaxCompute 的生態,前幾年關注的是連通性,於是我們有了 JDBC/ODBC,有了 Flume/Fluentd/logstash/Sqoop 這樣的插件,讓數據可以方便進入;現在我們更關注社區,我們的 MaxCompute 2.0 對 Hive SQL的兼容性不斷在提升,PyODPS 做的類似 Pandas 的 DataFrame API,直接賦予數據科學家操作大數據的能力。
我們的終極目標是讓大家可以將開源所學直接用在 MaxCompute 上。
雲棲社區:你對分布式計算平台的中間件、架構以及趨勢有哪些看法?
李睿博:
新硬件也給我們的分布式係統提出了更多的挑戰,比如 CPU 作業和 GPU 作業混合調度,帶寬提升導致的存儲和計算的分離成為可能等等。
雲棲社區:不論是一開始在日企做網絡中間件、阿裏雲成立之初做搜索,還是跟隨集團All In戰略做移動開發,乃至當下做大數據的分布式計算平台,你的每次轉型跨度都挺大的,而且也都挺成功的,能否談談轉型心得?其次,眾多技術中,你最喜歡哪門技術(語言)?為什麼?
李睿博:也不能算成功吧,拚了老命,沒有臉著地摔很慘罷了。
語言寫過很多,不過我用的多的似乎最後都消亡了。最喜歡的語言麼,Perl 算一個(也式微了,汗),因為實現同樣的功能,代碼能寫的短。
雲棲社區:如果給你一個選擇的機會,你會繼續這樣繼續不斷跨領域,還是會在某個領域持續紮根?為什麼?對應著選擇(重新來過後),你又會怎麼去做?
李睿博:如果真能選擇的話,還是會去買套房吧(玩笑)。
重新來過也還會是一樣,我其實是個挺執拗的人,會堅持做自己認為對的事情,即使有時候明知道會吃虧——小時候一幫小朋友一起玩,弄壞了鄰居的財物,大家一哄而散,隻有我覺得這麼跑掉是不對的,愣是站在原地沒動,最後責任都成了我一個人的。
認知水平、眼界不到的時候,估計我也會非常堅持自己並不成熟的想法,就算是未來的自己去勸也沒有用。可能這就叫性格決定命運?
雲棲社區:擁有這麼多豐富的經曆,你有沒有想過去創業?請你談談對創業的理解。
李睿博:我比較喜歡的兩個描述生活狀態的詞,一個叫隨遇而安,一個叫無欲則剛。我這樣的性格,除非有個強力發動機型的人拉著我一起,是不太會去獨自去創業。
另外,我覺得創業要有足夠的衝動,衝動可能來自強烈的價值認同。拉我出去創業的朋友也有過,到目前為止我看到的因為隔行導致盲目樂觀以及功利的成分居多。
雲棲社區:你平時喜歡做什麼?為什麼?請分享一個你特別認可的格言或一句話,並敘述下原因。
李睿博:平時追番,打遊戲,看書,攝影,偶爾寫寫博客。因為我讀過的人文書籍比較少,所以不太敢說任何或者欣賞格言。隻說一個喜歡的吧:“此心光明”,希望能夠作為自己的墓誌銘。
為什麼是此心光明呢?因為我們是處在一個劇烈變革的時代裏。我上中學的時候家裏裝一部固定電話還要交幾千塊的安裝費,我念大學的時候還在用尋唿機。我研究生畢業的時候大家都在炒 Web,然後是移動互聯網,然後是大數據,然後是人工智能,眼花繚亂,飛速迭代。
Google 憋了半天,搞出來個“don't be evil”,我覺得是同樣的表達。工程師可能也就這個文案水平,不如王陽明先生“此心光明”來得積極向上。(文/我是主題曲哥哥)
- 《沉澱》第十一期:【[沉澱]阿裏高級專家應答:各種數據在一個統一計算平台上的融合,才能產生更大的價值】阿裏巴巴這種超大數據體量上才會遇到的獨特挑戰,讓應答在技術上有了更清晰的認識,一定要夯實分布式係統的基礎。“隻有把基礎夯實了,才能支持上層各種計算場景在大體量上的實現,讓各種新的算法在‘阿裏體量’上真正發揮潛力。”
- 《沉澱》第十期:【[沉澱]雲架構師前(錢)景這麼好,我們該如何轉型?這有兩位阿裏雲雲架構總監多年心得】雲架構師任職都有什麼要求?他們的日常是什麼樣的?相關人員如何向雲架構轉型?就此,雲棲社區就此采訪了阿裏雲兩位資深專家:阿裏雲雲架構總監Danny Liu和阿裏雲國際業務部雲架構總監王宇德。
- 《沉澱》第九期:【[沉澱]“快的那個,會被慢的拖死”,記不斷奔跑、看著阿裏雲產品管控慢慢長大的那個人——尹書威】傳統運維人要從Ops走向DevOps,從項目走向產品,從資源走向應用。
最後更新:2017-07-27 09:03:19