從“少林寺”畢業後,我當上了開源社群“區長”

從“少林寺”畢業後,我當上了開源社群“區長”

· 「名人堂」

Alluxio

範斌 ·

本期名人堂我們有幸邀請到了Alluxio創始成員兼開源社群副總裁範斌先生。範斌先生講述了自己的求學、工作、加入開源社群的經歷,以及對未來十年資料編排發展的展望,和對開發貢獻者的一些建議。

問題 1:

範斌老師您好,很榮幸有機會採訪到您,請先介紹一下您自己?

大家好,我是Alluxio的創始工程師以及開源社群副總裁(VP of Open Source)。我本科畢業於中科大計算機系,隨後分別在香港中文大學計算機科學工程系和卡內基梅隆大學計算機系取得碩士和博士學位。博士期間我在分散式系統演算法和系統實現等方向發表多篇包括SIGCOMM, SOSP, NSDI等頂級國際會議論文,包括提出了Cuckoo Filter演算法。加入Alluxio前, 我在Google從事下一代大規模分散式儲存系統的研究與開發。

問題 2:

您從大學本科到博士都是學的計算機專業,而且橫跨了大陸、香港和美國三地,為什麼會這麼著迷於計算機呢?

我算是從很小的時候就開始接觸計算機了。小學三年級的時候,我參加了學校組織的計算機興趣班,系統地學習了BASIC語言程式設計。我至今仍記得在老師指導下,編寫的第一個BASIC程式“打印花布”,實現在電腦螢幕上反覆輸出同一個符號“#”,如同在一匹布上打印出好看的花紋。當時我一下子就被這個程式迷住了,覺得編寫計算機程式,按照自己的想法去做這樣或那樣有趣的事情實在太好玩了。這就是我入門的經歷,從此就非常專心地開始學習計算機程式設計。

小時候我只是覺得計算機是一個有意思的玩具,可以打遊戲也可以編寫遊戲。唸完大學、讀完博士以後,非常深刻地認識到這是一個非常了不起的行業,它深刻的改變了整個人類社會的執行方式,所以我很自豪一直投身在計算機科學行業當中。

問題 3:

在CS領域TOP4的卡內基梅隆大學計算機系攻讀計算機博士是什麼體驗?對加入Alluxio開源專案和創業公司有什麼影響?

我在2007年進入了卡內基梅隆大學攻讀計算機博士學位,方向是分散式系統,主要是分散式網路系統和分散式儲存系統等課題。這一期間,我非常有幸能和很多世界級的專家、學者以及一流的同學一起共事,這個寶貴的經歷使得我的專業水平以及對領域的認識都得到了相當大的提升。特別是讓我近距離觀察到最優秀的學者是如何認識問題、研究問題和解決問題的。我們當時具體解決了什麼問題可能相對沒有那麼重要,而關鍵是收穫了一套方法論,這樣後面再做很多類似的事情都會非常得心應手,可以說這是我在整個博士階段最大的收益之一。

因為同樣做的是計算機分散式系統的一些研究,所以我去加州大學伯克利分校訪問的時候,認識了當時正在那裡攻讀博士學位的李浩源博士。當時他的博士專案就是Tachyon,後來改名叫做Alluxio。也是因為這樣的機緣,後來我就選擇從Google離職加入這家創業公司。

問題 4:

您博士畢業後即進入谷歌並在核心儲存基礎設施團隊負責構建分佈儲存系統的開發,這段經歷有什麼樣的收穫?

我在攻讀博士期間學習和養成了一套好的方法來研究和解決一些系統難題,但真正的工程實踐能力還沒有得到最好的鍛鍊。這是因為這一時期作為一個博士生我專注目標是發表好的論文。而為這些論文寫的程式碼也就是俗稱的研究程式碼(research code),追求的是把一些好的想法快速實現原型,展現給同行看,但並不要求達到生產標準(production ready)。這是從學校裡做系統研究的一個常見問題。你也可以理解為學術界和工業界的分工是不一樣的。

我在加入谷歌工作的兩年裡最大的收穫是拓寬了視野以及培養了良好的工程習慣。我一直覺得Google就像是計算機江湖裡的少林寺,整個大資料以及AI領域裡的各種各樣的技術,其實很大一部分最早都是發源於Google的。在這樣的平臺,你可以見證很多技術的發展脈絡,並提前五到十年看到下一個時代的技術趨勢。這個對於開闊我的眼界是非常有幫助的。

問題 5:

作為Alluxio最早的初創者,為什麼會選擇加入Alluxio?有哪些吸引你的地方?對比谷歌這樣的大廠光環,你怎麼看待加入startup公司能夠帶給你的收穫?

其實我在卡內基梅隆大學念博士的時候就立下了一個決心,會去參與一個初創公司。我一直就沒有什麼大廠情節,始終覺得在小公司尤其是初創公司裡面做事會更有趣,節奏更快,更有挑戰性。對我來說, 我只是一直在等一個合適的機會,能夠找到一個我喜歡並願意為之付出的團隊和專案。

問題 6:

Alluxio起源於開源專案,目前逐漸商業化,在越來越多的行業被客戶認可並使用,是否可以舉幾個典型例子,Alluxio如何給客戶帶來巨大價值?

這是一個非常好的問題,我在不同的客戶環境下會看到大家使用Alluxio的不同方法。不過總體而言,大部分用例都是透過更快的把資料呈現給計算,幫助客戶更高效地管理、使用資料,使他們能夠更快的從資料之中挖掘價值。舉個例子,比如說在中國聯通這樣的場景下,透過使用Alluxio可以使他們對於類似Spark這樣的任務環境有更好的資料管理效果,以及更好的資料輸出速度。這樣就可以使中國聯通大資料平臺上的工程師更有效率地完成他們的工作內容,同時更快速的去迭代演算法的開發以及一些不同業務邏輯的開發。這帶來的是生產效率的巨大提升。再比如新加坡的星展銀行,東南亞最大的銀行之一,他們有一些關鍵的業務跑在Alluxio之上。以上例子都表明了我們所提供的這套資料服務對我們廣大使用者的巨大價值。如果這套服務出了問題,不工作了,那給相關企業帶來的麻煩也是巨大甚至是致命的。正因如此,我感覺我們的工作責任重大,同時也對我們的成就非常自豪。

問題 7:

展望未來十年,您覺得資料編排將在整個大資料領域扮演什麼樣的角色?

我覺得資料編排會成為一個預設的資料層。無論什麼時候,不論你是想獲取資料,還是想要做大量的資料處理和計算,你都會習慣於從資料編排這層提取資料。它會成為一個大家預設的資料層,也會成為工業界裡面的一層工業標準。有了這層標準之後,提供計算的廠商和使用者都可以輕鬆自如地做他們想要做的事情,而不用去關心具體的資料是怎麼獲得的,或者它是在一個什麼樣的服務裡邊怎樣設定的。屆時,這種相對底層或是比較繁瑣的事情就交給資料編排層去處理了,我覺得這會是生產力的一個巨大的進步,會讓社會的生產效率達到一個更高的層面。

問題 8:

作為Alluxio開源社群的PMC Co-chair對開源社群發展有何期望?有哪些想對開發貢獻小夥伴們說的話,您有什麼tips可以讓大家快速的玩轉開源社群嗎?

好的,首先非常歡迎大家加入Alluxio開源社群。我在讀博士的時候就已經做了一些專案,然後開源了出來,但當時並沒有意識到這其實只是開源的程式,一個原始碼並不是真正的開源社群。開源社群是人和人之間的組織,社群內的人和人之間會有很多活動和聯絡,而開源某個專案僅僅是把你的程式碼放到Github上或者是類似的服務上託管出去,和真正去做開源社群有很大的不同。

我作為Alluxio開源社群的co-chair,我的任務是如何把這個社群裡的使用者、程式碼修改的貢獻者以及有能力去做整個專案演進的資深開發者很好的組織起來,使大家都能各取所需,並在專案中充分發揮自己的作用。在這個過程中會有很多非常優秀的朋友參與進來,而我們在結交新朋友的同時自己也會學習到很多寶貴的經驗。

如果說要給開發者一些tips的話,我覺得是儘可能多的參加社群活動,瞭解社群裡面的人都在做什麼事情,提前思考自己期望得到哪些方面的指導,然後多跟社群裡的人做分享交流。這樣做會比自己盲目摸索的效率高很多。

我們社群成員主要集中在Slack channel和微信群中,如果大家對這方面有興趣的話,歡迎直接加入我們的Slack channel或者聯絡微信小助手,和我們的contributor或maintainer做一個溝通,相信會有事半功倍的效果。

推薦閱讀

十年死磕,從一線工程師到CEO

從“少林寺”畢業後,我當上了開源社群“區長”

TAG: Alluxio開源社群博士資料