阿里李睿博談自己的折騰路:整個過程愛最重要
摘要: 整個過程我覺得還是愛最重要。有愛才有勇氣才有希望。我是真的愛寫程式碼。從小學就開始愛,到現在快三十年了也還愛。
《沉澱》是雲棲社群展示專家風采的人物欄目。它呈現每個專家獨一無二的人生經歷、認識和感悟的同時,也能幫助你沉澱技術,收穫對技術和人生的判斷。我們的想法是:“若你想精進為一個很厲害的人,不妨細細品味這些技術牛人背後的沉澱。”如果你想了解這些雲棲專家更多分享時,請點選雲棲專家頻道,當然我們也歡迎你往前走一步,成為我們的雲棲專家(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 上。
雲棲社群:你對分散式計算平臺的中介軟體、架構以及趨勢有哪些看法?
李睿博:MaxCompute 是離線批量計算平臺出身,但是這個平臺會越來越往準實時、實時方向靠攏。離線和實時分散式系統之間的界限會越來越模糊,兩邊都會嘗試侵佔對方的地盤。
新硬體也給我們的分散式系統提出了更多的挑戰,比如 CPU 作業和 GPU 作業混合排程,頻寬提升導致的儲存和計算的分離成為可能等等。
雲棲社群:不論是一開始在日企做網路中介軟體、阿里雲成立之初做搜尋,還是跟隨集團All In戰略做移動開發,乃至當下做大資料的分散式計算平臺,你的每次轉型跨度都挺大的,而且也都挺成功的,能否談談轉型心得?其次,眾多技術中,你最喜歡哪門技術(語言)?為什麼?
李睿博:也不能算成功吧,拼了老命,沒有臉著地摔很慘罷了。整個過程我覺得還是愛最重要。有愛才有勇氣才有希望。我是真的愛寫程式碼。從小學就開始愛,到現在快三十年了也還愛。
做自己喜歡做的事情,還有錢賺,這麼奢侈的事情,我已經很知足了。
語言寫過很多,不過我用的多的似乎最後都消亡了。最喜歡的語言麼,Perl 算一個(也式微了,汗),因為實現同樣的功能,程式碼能寫的短。
雲棲社群:如果給你一個選擇的機會,你會繼續這樣繼續不斷跨領域,還是會在某個領域持續紮根?為什麼?對應著選擇(重新來過後),你又會怎麼去做?
李睿博:如果真能選擇的話,還是會去買套房吧(玩笑)。
重新來過也還會是一樣,我其實是個挺執拗的人,會堅持做自己認為對的事情,即使有時候明知道會吃虧——小時候一幫小朋友一起玩,弄壞了鄰居的財物,大家一鬨而散,只有我覺得這麼跑掉是不對的,愣是站在原地沒動,最後責任都成了我一個人的。
認知水平、眼界不到的時候,估計我也會非常堅持自己並不成熟的想法,就算是未來的自己去勸也沒有用。可能這就叫性格決定命運?
雲棲社群:擁有這麼多豐富的經歷,你有沒有想過去創業?請你談談對創業的理解。
李睿博:我比較喜歡的兩個描述生活狀態的詞,一個叫隨遇而安,一個叫無欲則剛。我這樣的性格,除非有個強力發動機型的人拉著我一起,是不太會去獨自去創業。
另外,我覺得創業要有足夠的衝動,衝動可能來自強烈的價值認同。拉我出去創業的朋友也有過,到目前為止我看到的因為隔行導致盲目樂觀以及功利的成分居多。
雲棲社群:你平時喜歡做什麼?為什麼?請分享一個你特別認可的格言或一句話,並敘述下原因。
李睿博:平時追番,打遊戲,看書,攝影,偶爾寫寫部落格。因為我讀過的人文書籍比較少,所以不太敢說任何或者欣賞格言。只說一個喜歡的吧:“此心光明”,希望能夠作為自己的墓誌銘。
為什麼是此心光明呢?因為我們是處在一個劇烈變革的時代裡。我上中學的時候家裡裝一部固定電話還要交幾千塊的安裝費,我念大學的時候還在用尋呼機。我研究生畢業的時候大家都在炒 Web,然後是移動網際網路,然後是大資料,然後是人工智慧,眼花繚亂,飛速迭代。
我也經常感嘆很多事情自己其實看不懂,看不清楚。年輕的時候,覺得做自己認為對的事情就好。但是在這樣的時代裡,個體非常容易迷失自我,我做的事情是不是對,並非一目瞭然,經常是要經過時間檢驗。在這樣的時代裡,某個具體時點上,能指引、規範個體行為的,或許只有價值觀。Google 憋了半天,搞出來個“don't be evil”,我覺得是同樣的表達。工程師可能也就這個文案水平,不如王陽明先生“此心光明”來得積極向上(文/我是主題曲哥哥)。
-
《沉澱》第十一期:【[沉澱]阿里高階專家應答:各種資料在一個統一計算平臺上的融合,才能產生更大的價值】阿里巴巴這種超大資料體量上才會遇到的獨特挑戰,讓應答在技術上有了更清晰的認識,一定要夯實分散式系統的基礎。“只有把基礎夯實了,才能支援上層各種計算場景在大體量上的實現,讓各種新的演算法在‘阿里體量’上真正發揮潛力。”
-
《沉澱》第十期:【[沉澱]雲架構師前(錢)景這麼好,我們該如何轉型?這有兩位阿里云云架構總監多年心得】雲架構師任職都有什麼要求?他們的日常是什麼樣的?相關人員如何向雲架構轉型?就此,雲棲社群就此採訪了阿里雲兩位資深專家:阿里云云架構總監Danny Liu和阿里雲國際業務部雲架構總監王宇德。
-
《沉澱》第九期:【[沉澱]“快的那個,會被慢的拖死”,記不斷奔跑、看著阿里雲產品管控慢慢長大的那個人——尹書威】傳統運維人要從Ops走向DevOps,從專案走向產品,從資源走向應用。
相關文章
- Startbbs YouBBS等輕論壇程式折騰過程
- 談談自己學習設計模式的過程設計模式
- 折騰ChatGLM的幾個避坑小技巧
- Linux折騰Linux
- 折騰日記
- waydroid折騰
- 小白折騰伺服器(九):一步一步搭個自己的 Composer 包伺服器
- 你走過最長的路 ,就是機器學習過程中的彎路機器學習
- 鵝廠女專家:用“愛折騰”實現跨界之美
- Hackintosh (黑蘋果) 折騰蘋果
- 折騰樹莓派樹莓派
- 不要太折騰程式
- UGNX折騰筆記筆記
- 折騰oracle的em3Oracle
- 折騰oracle的em2Oracle
- 折騰oracle的em1Oracle
- 不僅僅是前端er——折騰伺服器武裝自己前端伺服器
- 【折騰】github+jekyll搭建靜態網站(還沒折騰完),折騰不下去了,求解救Github網站
- 每一個企業的流程都是一種折騰
- React 折騰記 – (2) 實現路由動效過渡,並解決過程中奇奇怪怪的問題React路由
- React 折騰記 - (2) 實現路由動效過渡,並解決過程中奇奇怪怪的問題React路由
- 機器學習業務實踐之路-李博-專題視訊課程機器學習
- nvim 折騰筆記 2筆記
- 家庭路由/閘道器 網路配置折騰日記路由
- 部落格折騰記——tranquilpeak主題個性化UI
- 由sqlplus中的一個小細節所做的折騰SQL
- laravel 5.5 折騰 node 15 的經歷Laravel
- VS Code折騰記 - (1)扯淡
- hexo fluid主題折騰HexoUI
- Java程式碼編譯和執行的整個過程Java編譯
- 簡單上手SpringBean的整個裝配過程SpringBean
- 記一次 PHP-FPM 可以建立慢日誌,但是卻不能寫入內容的折騰過程PHP
- Vue 折騰記 - (9) 寫一個挺靠譜的typeahead元件Vue元件
- Vue 折騰記 – (9) 寫一個挺靠譜的typeahead元件Vue元件
- Vue 折騰記 - (5) 寫一個不大靠譜的selectSearch元件Vue元件
- Vue 折騰記 – (5) 寫一個不大靠譜的selectSearch元件Vue元件
- Vue折騰記 - (3)寫一個不大靠譜的typeahead元件Vue元件
- 生命在於折騰,寫一個前端資訊推送服務前端