當前位置:
首頁 > 知識 > 沉澱|阿里高級專家應答:各種數據在一個統一計算平台上的融合,才能產生更大的價值

沉澱|阿里高級專家應答:各種數據在一個統一計算平台上的融合,才能產生更大的價值

《沉澱》是雲棲社區展示專家風采的人物欄目。它呈現每個專家獨一無二的人生經歷、認識和感悟的同時,也能幫助你沉澱技術,收穫對技術和人生的判斷。我們的想法是:「若你想精進為一個很厲害的人,不妨細細品味這些技術牛人背後的沉澱。」如果你想了解這些雲棲專家更多分享時,請點擊雲棲專家頻道,當然我們也歡迎你往前走一步,成為我們的雲棲專家(https://yq.aliyun.com/expert),與技術大牛一起「煮酒論英雄」。



「這個沒啥好講的,找XX和XX技術Leader吧?」

「為什麼挑中我?」

「時間點再考慮下吧,要不要等……」

……

當雲棲社區發出雲棲專家風采展示邀請時,應答沒有直接答應。進一步溝通,你會發現推脫的背後,卻是一位實實在在技術大牛的低調和謙遜。

沉澱|阿里高級專家應答:各種數據在一個統一計算平台上的融合,才能產生更大的價值

應答認為,分布式系統架構設計為了滿足20%高級用戶的需求,有可能要提供80%的介面(原因見完整對話)

應答是阿里巴巴技術平台事業部架構與專家諮詢的高級專家。架構與專家諮詢究竟是什麼樣的一個崗位?應答做了剖析:本質上他們也是一線的開發工程師,只不過寫代碼之餘可能會花更多一點時間來思考——怎樣讓系統架構在滿足當前需求的同時,同時具備一定的技術前瞻性,能夠在將來的較長一段時間內保持技術領先性。

這位身處一線的「開發工程師「求學經歷頗為完美。本科中科大,碩士在世界著名的常青藤大學布朗大學,而博士則在研究型學府理海大學完成。在保送到中科大的時候,這位學霸頗為霸氣地選擇了電子工程專業,之所以說他霸氣,是因為他選擇電子工程專業的原因讓人多少有點吃驚——竟然是因為專業分數線最高,聽起來高精尖。

求學和畢業後,應答也在世界一流會議SIGMOD等以及一流期刊Transactions on Computer Systems等處發表多篇文章和論文,Google Scholar 上則有500多個citations。他對其中的一篇文中特別印象深刻,那篇文章介紹了在通常的分布式系統的資源調度器(比如YARN 或者 Mesos)之上,怎麼提供一個開發分布式應用的通用框架,讓各種各樣的分布式應用或者服務能盡量避免與底層分布式基礎設施打交道,同時通過這種隔離,使得其在不同的分布式框架上均可以運行。探究印象深刻的背後,是應答對研究能夠真正轉化成生產力的成就感。

走上工作崗位後,他先是作為微軟Azure機器學習平台(AzureML)服務的核心開發人員。接著,參與了微軟開源大數據框架Apache REEF項目從最初的微軟內部項目到Apache incubator,再到成為Apache top level project的過程。作為PMC,在談到開發Apache REEF過程中的挑戰,他說主要是在早期一些方向的選擇上,因為早期每一步的方向都決定了將來很長一段時間是在向正確的方向邁進,還是在錯誤的道路上越走越遠。

後來,他加入阿里,參與搭建了超大規模數據和參數上的分布式學習的高效平台。進入計算平台架構組後,應答又參與了阿里自研的核心計算平台MaxCompute的更新換代。「新的計算平台在更加易擴展的架構上,實現了性能的成倍提升,以及功能的豐富和計算數據生態的外擴。」一位阿里同事這麼積極評價這些工作。

阿里巴巴這種超大數據體量上才會遇到的獨特挑戰,讓應答在技術上有了更清晰的認識,一定要夯實分布式系統的基礎。「只有把基礎夯實了,才能支持上層各種計算場景在大體量上的實現,讓各種新的演算法在『阿里體量』上真正發揮潛力。」

對於如何夯實,他無私地分享了自己的寶貴經驗:底層系統的設計,一定要走在用戶前面,且越往底層走,這麼做的重要性就越高。這要求系統架構設計時要做到先發性和預見性,而做到這點,除了需要長期積累經驗,還要主動去了解上層用戶各種各樣的使用模式。應答強調:「系統的開發和架構不能只局限在自己熟悉的領域,也不能只局限在單一用戶場景上。」

在分布式系統架構設計上,他指出穩定是分布式系統的最基本要求。在滿足穩定要求後,在分布式系統靈活和易用的兩者關係上,他非常認同二八原則。什麼樣的二八?三點,第一用20%的介面實現80%用戶的需求;第二80%的系統要為20%的介面服務;第三,為了能滿足另外20%高級用戶的需求,我們可能要提供80%的介面(筆者註:至於為什麼,請見下面對話)。他表示,介面的「收」與「放」都是需要精心考量的。

對於分布式系統架構的未來,應答有兩個思考:

  • 第一個是怎樣在一個統一的計算平台上,滿足用戶多種多樣的計算需求:這包括兩個方面,一個是多種的計算模式,比如離線大規模運算,流計算,圖計算等;另外一個是處理多樣的數據格式,比如關係式數據,文本數據,音視圖數據,甚至是用戶自定義特殊數據,比如基因,天氣數據等。

  • 第二是多種硬體的使用以及統一:怎樣在一個集群上實現多種硬體的混部,來滿足一個系統上的多種計算需求,這會是一個很有意義的問題。

總結過去的技術生涯,應答說:「近幾年在阿里其實整體的是一個逐步在系統堆棧上往下做的過程,從一開始的偏機器學習應用,逐漸轉移到分布式系統基礎架構方面的工作。」他解釋,這個過程也是在堆棧上層開發中,能越來越切實的感受到底層分布式系統的穩定性和靈活度的重要性,從而往下探索的一個經歷。

在溝通的最後,筆者問起眼前的這位技術專家有什麼格言時,他說了一個覺得挺有道理的一句話——「people will choose to believe what he wants to believe.」

「為什麼覺得它有道理?」

連續追問,他說出了自己的想法:「我們不要動不動就想說服別入。從技術角度來看就是:做一個系統/產品,不要老是想著要說服別人用你的,很多時候每個人是有一個預判的,也只會做出選擇符合他預判的決定。要讓別人相信你,首先要解決人家的問題,一個系統解決了用戶在其他地方解決不了的問題,用戶才會『想要』相信你,在這種預判下,才會更客觀的來審查整個系統方方面面的優勢。」

至此,筆者也明白,為什麼當發起雲棲專家風采展示時,應答是推卻的,因為他知道行動和拿到結果是最好的專家風采展示。

好一個低調和謙遜的技術大牛!

以下是更為精彩的內容:

雲棲社區:請介紹下自己以及所從事的工作(架構與專家諮詢具體幹什麼)。

應答:虛一點來講,架構和專家諮詢組從負責上來說是計算平台整體技術走向和大的架構設計。但是實際上,我們本質上也都是一線的開發工程師,只是寫代碼之餘可能會花更多一點時間來思考:怎樣讓我們系統架構在滿足當前需求的同時,同時具備一定的技術前瞻性,能夠在將來的較長一段時間內保持技術領先性。尤其是在預期、在數據規模不斷增長和計算模式日益多樣化的趨勢下,怎樣做到上面幾點。

當然思考只停留在腦子裡和PPT里是沒有用的,只要架構沒有實現都是空中樓閣。所有的想法最後需要轉化成包括我們自己和團隊每一行代碼的實現,功能的設計,與團隊的Code Review交互以及開發計劃討論等等……

雲棲社區:你的求學經歷包括中科大、美國布朗大學(Brown University), 理海大學(Lehigh University),能否談下這三段求學生涯里,分別有哪些讓你難忘或記憶深刻的事。

應答:選擇科大是因為從初中起就對其嚴謹樸素學風的嚮往,當時是保送到中科大電子工程系。對於選擇電子工程這個專業,老實說,反而還是比較懵懂的,基本上就是覺得分數線最高,而且聽起來比較高精尖。不過回頭來看這個選擇,那個時候對專業一知半解,也並沒有產生什麼不好的後果,因為更重要的是,選擇學校的過程是理性的和有針對性的。我個人覺得學校選對了,具體的專業反而不是那麼重要了。在科大的求學過程中,印象深刻的事情已經不好羅列了。大部分時間都在學習,上自習,感覺沒有太多波瀾。當時很多事情,我們都覺得是平平淡淡。反倒是臨近畢業以及畢業以後,有了更多和來自其他學校的朋友交流的機會,才能體會到一些學校的不同。比如最近在微信上刷屏的關於科大機智地為貧困學生提供生活餐卡補助的事情,這個其實是在我畢業後才大規模實行的,但是作為科大畢業生,我們看起來覺得學校會這樣做其實是非常自然的。在科大大家都習慣了學生第一,學習第一,也相對單純一些,像補助學生這樣的事情,都覺得是理所當然的。另外還有,比如學校是淮河以南第一個為學生提供冬季供暖的,而學生宿舍的供暖也早於教工宿舍,現在回想起來都有點身在福中不知福的味道。

到美國的第一站是布朗大學,其所在的Providence也是我到美國後居住的第一個城市。印象深刻的事情很多,很多時候是體會另外一個文化不同的地方。布朗是常青藤里一個相對小的學校,但也因為小,所以系和系之間的邊界就沒有那麼嚴格清楚,很多本科生都是滿學校到處選課,而研究生也能有機會接觸到許多本專業以外的東西。印象比較深的是在各種研究生課程上做過的各種各樣的project。比如當時選的高級信號處理課,期末的project是生物信息學中的信號處理,概括點說就是通過把怎麼基因數據中ATCG鹼基看待成一串時序信號,然後映射成一些時空域信號空間上的點,在這個基礎上做信號的頻譜分析。一個很有趣的觀察就是在頻譜上的突出點,對應的信息如果轉換回時域,往往對應的就是基因裡帶有遺傳信息的基因段。頻譜轉換和分析其實都是本科在科大都學過的內容,但是把這些信號處理的知識,具體應用到基因數據分析上,還是蠻有趣的。我覺得這段經歷對於以後自己從更加開闊的方向去思考問題也很有幫助。

後來到了裏海完成了博士學業。博士期間的訓練和本科就有比較的的區別了。從研究方向上也有了更大的自由度。當然更大的自由也意味著更多的未知性,也要為自己的選擇負責。讀博士期間,有拍腦袋想到一個想法最後變成很不錯的paper的經歷,也有仔細研究了半年的想法,結果最後真正搭建和模擬的時候,才發現結果不盡人意。但在探索的過程中,不管是成功還是失敗,其實都是很有益的經歷。這不只是像雞湯文里說的「失敗能避免下一次犯錯」,我覺得更重要的是有一些不成功的經歷,能讓人對處理各種工作學習生活的各種不確定性有更豐富的經驗。

雲棲社區:你在世界一流會議SIGMOD等以及一流期刊Transactions on Computer Systems等上均有發表文章,Google學術搜索里有500多個引用……在這麼多文章或論文中,你對哪個最為看重,請介紹下它,以及說明下看重的原因。

應答:最看重的應該是在畢業後在工業界時,發在SIGMOD等處的文章。雖然這些文章並沒有我在學校發的一些文章引用來得多,但不同的是它並不只是學術上的探討,而是對工作中研發系統的整理和總結。

這個文章介紹了在通常的分布式系統的資源調度器(比如YARN 或者 Mesos)之上,怎麼提供一個開發分布式應用的通用框架,讓各種各樣的分布式應用或者服務能盡量避免與底層分布式基礎設施打交道,同時通過這種隔離,使得其在不同的分布式框架上均可以運行。另外在此基礎上,分布式應用的實現可選的編程語言也可以與底層框架解耦。比如微軟的流計算服務ASA(Azure Streaming Analytics)就是一個搭建在我們的框架之上使用.NET開發的計算服務,但是底層其實是基於Java的YARN集群。我們的中間框架使得ASA可以完全不用考慮這些區別。

基於我們的框架搭建的類似服務還有很多,我覺得這些都是真正轉化成生產力的工作,所以也覺得有些成就感。

雲棲社區:加入阿里之前,作為Apache REEF的PMC,你在微軟大數據事業部工作,並經歷了從立項到成為Apache top level project的過程,能否聊聊這段經歷里都遇到哪些挑戰,都是怎麼解決的?

應答:挑戰主要都在早期,怎麼把一個適用於各種分布式系統的中間框架搭建起來,介面上設計怎樣選擇才是合理的,如何避免行差踏錯。因為早期每一步的方向都決定了將來很長一段時間,是在向正確的方向邁進,還是在錯誤的道路上越走越遠。

除了仔細調研設計以外,我們找了同樣在設計開發初期的Azure Streaming Analytics(ASA) 團隊,和他們一起開發,直到最後上線。當然現在回頭看這個項目,還是有不少不滿意的地方,今天如果重新再來做的話,我可能會做得更好。

雲棲社區:加入阿里後,你搭建了超大規模數據和參數上的分布式學習的高效平台,你在開發中主要負責哪塊?另外,這與你之前在微軟負責開發的Azure機器學習平台服務相比有什麼不同?

應答:加入阿里的時候,其實參數伺服器的開發第一版已經有了模樣了,也在集團內部的一些場景中用了起來。但是具體實現和單個業務場景和單個演算法都綁定得比較緊,所以擴展新演算法上會遇到一些挑戰。我和團隊一起基本上重新設計和實現了整套系統,讓其對介面、對多種演算法更加友好,同時也支持更多維度上的性能的改進;另外抽象出了SDK讓平台的開發也更加開放:能讓我們的用戶也進來參與新演算法的開發。

這個分布式機器學習平台和我在微軟做過的Azure機器學習平台服務還是很不一樣的。一個最顯著的區別是規模。事實上Azure機器學習平檯面對的是微軟外部的中小企業用戶,而這些用戶需要處理的數據和演算法模型,在規模其實都是比較有限的,這和阿里幾個實際業務場景的體量完全不在一個量級上。在阿里實現的基於參數伺服器的分布式機器學習平台,面對的百億級別的特徵,千億級別的數據。這種量級的分布式學習,很多普通的中小型公司現在還沒有太多機會接觸到,所以針對中小公司以及針對阿里量級數據場景的分布式機器學習平台,要解決的問題可能是完全不一樣的。在AzureML的工作可能更多的集中在整體框架靈活性搭建,以及很多安全,生態開發等方面。而在阿里,處理「阿里體量」的數據是第一要務,在這個基礎上才有下一步在靈活性等方面的擴展,從時間點上的優先順序別的不同,對於一個系統開發的計劃和設計也會有不同的考慮。

雲棲社區:接著,你加入計算平台架構組,參與了阿里自研的核心計算平台MaxCompute的更新換代,在這個過程中,你有沒有遇到「轉型」的壓力?又是如何解決的?

應答:其實沒有什麼「轉型」的壓力。不同的分布式系統設計有很多共通的地方。當然會有一些之前沒有做過的東西,但是學習新的東西對我來說應該是比較常態了。

當時有這個變化,主要是在做分布式機器學習平台的過程中,感覺一些更普遍的大數據分析功能,在當時的計算平台上還有不少可以再進一步改進的空間,而把底層系統夯實了,對上層的各種應用都會是一個有益的正反饋。

雲棲社區:據說新的計算平台MaxCompute在更加易擴展的架構上,實現了性能的成倍提升,以及功能的豐富和計算數據生態的外擴,就你經驗來看:一個穩定、靈活的分布式系統架構設計該如何做?應該遵守哪些原則?

應答:我覺得穩定是分布式系統的最基本要求,任何一個分布式系統從設計的第一天開始就應該把穩定放在第一位。

其實這裡我更想聊一下一個分布式系統靈活和易用兩者的關係。這個其實也不是我自己的原創,但在分布式系統的設計上,我非常認同「二八原則」。這有好幾個點,第一是應該能夠用20%的介面實現80%用戶的需求,介面的收斂,往往能帶來簡單易用。這能方便大部分用戶上手。現實中,大部分用戶都會需要用到相對小的一部分基礎功能,這也是一個系統需要花大精力把做好。這就涉及到第二點,那就是80%的系統要為20%的介面服務。這也就是說分布式系統就像一個冰山,或者像一個金字塔一樣,底層大量的實現(包括對性能的優化,以及對各種失敗的處理)就是為了把上層用戶看得到的幾個主要功能,做到各種場景上的最優。第三點,是為了能滿足20%高級用戶的需求,我們可能要提供80%的介面。這一點爭議可能比較大,但我想說的是這一點上比較適用的是底層的系統設計,也就是說如果你設計的是一個分布式系統底層的介面,你的直接用戶可能是另一個」系統「的開發者,這時候提供靈活的介面和功能是非常重要的。反而是越到上層靠近終端普通用戶,介面可能越少會越好。介面的「收」與「放」都是需要精心考量的。

雲棲社區:從你的這幾年技術生涯來看,不論是微軟Azure機器學習平台(AzureML)服務開發,還是阿里的分布式學習的高效平台、MaxCompute的更新換代,你都是在做更加深入的事情——在系統堆棧上逐步往下做,能否具體聊聊在過程中遇到的獨特挑戰。

應答:一個重要的挑戰就是一個系統,不論是機器學習平台,還是底層分布式系統,怎樣才能走在用戶的前面。這一點越往底層走重要性就越高。因為只有系統走在用戶的前面,在用戶需要的時候,才能直接用得上。尤其是對於設計一個系統,不可能說用戶有什麼需求都是現改現做,用戶很多情況下是等不起的。一個系統沒準備好,導致的後果要麼就是用戶走路,不使用這個系統;要麼就是用戶會在系統有限的功能上加上各種各樣的hack,對你現在不成熟的介面綁定上強依賴。而這就可能導致系統的發展被捆上了手腳,因為系統的發展是需要有延續性的,不能說我今天升級系統,用戶現有的功能就被break。要避免這種情況,就要求底層系統的設計,要有一定的先發性和預見性,這個除了需要長期積累經驗,還需要主動去了解上層用戶各種各樣的使用模式,系統的開發和架構不能只局限在自己熟悉的領域,也不能只局限在單一用戶場景上。我覺得系統開發中遇到一些比較開心的事情就是我們自己設計研發的一些新功能,剛剛上線還沒有對外宣傳的時候,用戶就提出了這樣的需求。這個時候我們就可以說「功能已經有了,直接用就完全滿足你的需求」 。當然了,雖然這個時候會很有滿足感,但是也往往意味要開始準備補文檔了。

最後從另外一個角度來看,一個好的系統,也有引導用戶正確使用的責任,讓用戶更高效的在系統平台上實現自己的處理邏輯。

雲棲社區:你認為未來分布式系統架構還會有哪些變化或趨勢?

應答:我覺得分布式系統架構在經歷了一開始從無到有,從有到百花齊放的過程,現在在大數據分析處理上,正在逐漸進入下一個階段:也就是從百花齊放再慢慢收斂。

之前一段時間有許多新的分布式系統框架被開發出來,而每一個新的系統,都往往會針對比較特殊場景。也一定程度上造成了用戶如果要支持多樣需求,可能要維護多個系統的問題。現在一個值得我們每個做分布式系統的同學考慮的問題,是我們怎樣在一個統一的計算平台上,滿足用戶多種多樣的計算需求。這裡的計算需求包括兩方面:一方面是多種的計算模式(比如離線大規模運算,流計算,圖計算等),另一方面是處理多樣的數據格式(比如關係式數據,文本數據,音視圖數據,甚至是用戶自定義特殊數據,比如基因,天氣數據等等)。這些方面的統一,除了能讓用戶減小維護多系統的代價,也能帶來多種數據在一個系統上真正的融合,讓數據產生更大的價值。

系統架構的另外一個趨勢就是多種硬體的使用以及統一。很長一段時間內,分布式集群通常以CPU為主,而現在隨著包括GPU, FPGA等針對特定計算需求差生的新硬體的發展,由新硬體組成的集群也有很大的需求。現在的這個階段可能CPU集群, GPU集群以及FPGA集群還處在一個分開部署的階段,也就是還在「百花齊放」的過程中。但是接下來,怎樣在一個集群上實現多種硬體的混部,來滿足一個系統上的多種計算需求,也是一個很有意義的問題。而這樣子的混部環境中,在系統層面將異構硬體的區別在分布式系統層面,做好向上層應用的屏蔽,都是很有意思的挑戰。在這方面我們也已經在阿里開始一些嘗試。

雲棲社區:如果初學者想在大數據分布式系統領域紮根,你能給一些由淺入深的學習路徑或建議嗎?

應答:分布式系統的學習,我覺得在看看基本入門的書之餘,去看代碼具體實現是很重要的。當然如果能自己搭建一個環境來玩一玩,會有更深入的體會。最理想的是能有實戰的環境,因為很多分布式系統的問題,在大的集群規模上才會遇到,也才會有更深刻的體驗。

所以我們歡迎大家來投簡歷加入阿里的計算平台團隊,在這裡能看到在上萬台機器的集群規模,以及在這個大型計算平台上解決的其他地方看不到的問題。我們杭州,北京,西雅圖都在招人 。

雲棲社區:最後請你聊聊,生活中都喜歡做什麼事情、讀什麼書以及什麼格言?為什麼?

應答:我應該算是比較典型的技術男。業餘也就喜歡看書,打籃球(其實現在打得也少了)。

書的話比較雜,武俠、科幻、傳記、社會小說都會涉及。格言這種東西我其實是不太信的,因為我覺得大部分格言都必須在一定場景上才有適用性,有點假。如果一定要說的話,那就是我覺得這麼一句話挺有道理的:people will choose to believe what he wants to believe,不知道怎麼翻,大家意會一下就好。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雲棲社區 的精彩文章:

深度學習中的奇怪循環 你知道幾個?
螞蟻金服李小龍:「人工智慧+金融」機遇與挑戰並存,螞蟻金服都做了什麼?
MaxCompute與OSS非結構化數據讀寫互通(及圖像處理實例)
基於HybridDB for MySQL的企業ODS方案
5個步驟 & 7個提示|一份開啟Kaggle競賽征途的初學者指南

TAG:雲棲社區 |

您可能感興趣

融合最強的的4大怪獸,第一個貝利亞融合,最後一個制裁人類!
這4個超強的奧特曼,前兩個都需融合奧特兄弟,最後一個本體無敵
盤點:那些靠融合來變強的奧特曼,召喚器一個比一個玩具化!
曾嚴重威脅中國的三個勢力,一個被打消失,一個被融合,一個還在
黑科技軟體來襲,多種軟體融合,毫無相干的APP還能一起這樣玩?
漫威漫畫中能融合「超能力」的4個超級英雄,最後一個無敵
AI、IoT、區塊鏈這些技術與大數據融合,大數據基礎軟體乾貨不容錯過
文旅融合:對於康養項目的一個誤區,三大模式,四大格局
佛教道教修行的差異,一個貫通一切,一個捨棄所有,最後能融合嗎
融合是實現5G價值的關鍵
展現多種元素融合的魅力,給你不一樣的家居體驗
將電氣設計和機械設計融合在一起能給客戶帶來哪些價值
龍珠:悟空有三種實力暴漲的方法,超神水上榜,最後一種超越融合
易經:吸收不同的觀點,融合成自己的見識,你就是一個集大成的人
斗羅大陸:最強五大武魂融合技盤點,每一個都堪比神技
首款融合區塊鏈技術的智能手機開啟預購,售價比vivo X20還要高!
兩千多年來,中國人都長得啥樣?文化與相貌融合在一起,變化太快
影視劇里最有名的四位公主,最後一位為民族的融合做出了貢獻
斗羅大陸:武魂融合技一出,場上還站著的只有4個,唐三藏得最深
新中式和灰的融合,造就了不一樣的魅力!