天天看點

【雲栖大會】阿裡雲唐洪:飛天,向世界要一個答案

在剛剛結束的2016杭州·雲栖大會上,阿裡雲首席架構師唐洪以《飛天作業系統:中國科技的創新理論》為題進行了主題演講。雷鋒網科技記者史中會後對他進行了專訪。

你知道向左是燈紅酒綠,向右是滄海青山,卻無法知道向哪裡走會最終給你更好的未來。你知道應該單膝下跪向心愛的人求婚,卻不知道今後的每一個日夜要如何相處,才能和她最終厮守一生。每一條岔路都通向更多的岔路,每一個選擇都帶來更多的選擇。我們站在原地,憑着自己知道的“很多道理”,妄圖“過好這一生”,恐怕會惹上帝發笑。

這就是我們每個人面對的困境,我們精密的大腦可以在簡單的邏輯裡做出最有利于自己的判斷,但在無數疊加的抉擇面前,卻無力地像随風浪迹的沙塵。因為這世界上的選擇和它們通向的答案,比宇宙的星辰還要多。我給你成千上萬形狀不一的小石塊,讓你填滿身上的背包。請你告訴我,你如何才能知道哪些石塊的組合才能讓背包裝得最滿?唐洪,阿裡雲飛天系統的首席架構師,用這個看似輕描淡寫問題描繪了阿裡雲的終極意義。

【雲栖大會】阿裡雲唐洪:飛天,向世界要一個答案

阿裡雲首席架構師唐洪

理論上來說,窮舉所有石塊組合,就可以得到答案。但事實是,按照圖靈機的計算模型,計算的複雜度和可供選擇的石頭數目成指數關系。每增加一個石塊,計算量就翻一倍。僅僅為這一個答案,所需的計算能力就超出了人類所有計算機的總和。在哲學上,這恰如我們一次次的人生抉擇:除非你嘗試每一種可能,否則無法知道正确答案,而上帝不會給你嘗試每一種可能的機會。這個事實讓人敬畏上蒼。然而,在唐洪眼中,“飛天”——阿裡雲的核心作業系統,正是為這些“終極答案”而來 。

【雲栖大會】阿裡雲唐洪:飛天,向世界要一個答案

在那部經典的科幻電影《2001漫遊太空》中,一個遠古猿人把骨頭奮力抛向藍天,立刻幻化成穿梭在太空中的宇宙飛船。這一幕被譽為科幻電影的經典鏡頭,讓無數人熱淚盈眶。然而仔細想來,把一個宇宙飛船射向太空,原理不就等同于把一個碩大的骨頭扔向更高的天空嗎?

【雲栖大會】阿裡雲唐洪:飛天,向世界要一個答案

一個原始人都會做的動作,當它的體量無限擴大以後,就變成了需要千萬年後的高科技才能實作的壯舉。飛天所做的工作,說到“原子”層面,就是排序、數數。拿淘寶舉例,就是分析商品賣了幾個,分别是什麼時候賣的。而一旦這樣的工作一旦變成大規模,各個資料之間都有關聯,就很難在短時間内得出正确答案。把億萬賣家和買家的資訊進行計算,得到的并不是簡單的商品庫存和銷售情況。

通過資料分析,可以讓使用者用最快的速度搜尋到自己想要的商品。通過資料關聯,可以判斷使用者的性别愛好,進而根據場景做出精準的商品推薦。通過資料整合,可以判斷出一個人是否有信用污點,進而在金融産品中決定給申請者的貸款額度,控制壞賬率。這些我們在淘寶、天貓、螞蟻金服中享受的功能,就是“大規模計算”得到的奇迹。“1+1”的小兒科,不經意間變成了我們敬畏的“大資料”。而把這些“大資料”繼續進行排程,就能産生“上帝之手”的功效。

大規模的任務排程是非常複雜的,例如滴滴打車的計程車規劃、機場的飛機排程,甚至是沃爾瑪的庫存管理,都不是靠人腦可以勝任的。因為每個場景都幾乎有無限種可能和選擇。唐洪說。至此,我們遇到了之前的“背包裝石頭”問題。大家熟知的非對稱安全加密技術,今天熱門的區塊鍊技術,都是基于計算極限問題 (intractability)的假設。飛天當然也不可能突破計算極限。是以我們隻能給出近似解,而不是理論上的最優解。

【雲栖大會】阿裡雲唐洪:飛天,向世界要一個答案

最優解隻有一個,而近似解有無窮多。怎樣在浩如煙海的解中找到最合适的近似解,就是飛天的“刀鋒”所在。“從飛天誕生開始,我們一直在做的就是這件事。”他說。由于不同行業的業務和資料有自己的特點,這就使得“飛天”計算叢集可以把好鋼用在刀刃上。利用模型和算法删除掉一些不可能的“子集”,這樣就可以使得最終的求解範圍在一定程度内縮小。

但即使這樣,所需的運算仍然超越想象。這時就需要另一套規則和模型根據“價值判斷”做出取舍。這就像你身處一個碩大的房間迷宮中,每個房間都有很多門,而打開一扇門之後,又會進入一個新的房間,這個新的房間同樣有很多門。為了找到最終的出口,你需要先排除掉那些肯定不會通往出口的門,然後在這些可能的出口中,挑選可能性最大的那扇門。

【雲栖大會】阿裡雲唐洪:飛天,向世界要一個答案

由于沒有完美的正确答案,是以這些模型和判斷的優化,永無止境。這在某種程度上類似于“進化”。然而,大規模計算所面臨的問題,遠遠不止如上這一個,唐洪為雷鋒網列舉了另外一個重要的問題,那就是自動化的難度。超越人腦的極限的計算,必須用自動化的程式來完成。但是資料體量變大之後,平常看來邊邊角角的問題就成為一個嚴重的情況,那就是如何保證自動化的正常運作。計算錯誤、指令未傳達、系統卡死等等小機率的事件,都會因為資料和計算叢集的龐大而變得幾乎成為必然。

這個時候,就需要對于計算的每一個微小的步驟實作感覺和監控,發現錯誤。但是,對于雲計算每個路徑的各個步驟實作監控,絕非易事。對于計算的跟蹤,需要對每一步進行“染色”,就是做一個标記以便系統進行關聯。這就需要在處理過程中嵌入染色資訊。但是系統運作的每一個步驟都各不相同,需要根據具體的情況來找到最好的嵌入點。更難辦的是,有些步驟根本沒有辦法嵌入資訊。這個時候,就要根據計算周邊的資訊來做推斷。

例如某個程序打開了檔案,作業系統中會用一個描述符來表示這個檔案,通過對描述符的關聯,就可以把在作業系統核心中發生的事件和使用者程序關聯起來了。所有的跟蹤都是具體問題具體解決,可想而知付出的艱辛有多大。他說。

以上這些“坑”,都是唐洪和飛天用了七年時間,一點一點趟出來的。然而,所有的這些微小進化的累積,都是建立在飛天的“算力”基礎之上的。唐洪說,飛天系統就像一個巨大的計算機,隻不過是由全球各地的資料中心,幾十萬台伺服器,通過專線聯系,組成的超大計算叢集。

看到這裡,你可能會恍然大悟,排程全球的幾十萬台伺服器,本身就是一個“背包裝石頭”的巨大挑戰。唐洪給雷鋒網講述了飛天誕生的故事。彼時的阿裡巴巴,某種程度上說站在了危險的懸崖邊上,而還在嬰兒期的飛天,做了一個美麗的夢,名叫“5k”。

王堅,永遠帶着一副笑容,身影高瘦看似弱不禁風。不過,就是這個人,頂住了所有的質疑和壓力,成為衆人心中守護阿裡雲從一顆嫩芽長成參天大樹的英雄。包括唐洪在内的所有人,都把王堅稱為“博士”。當年,正是博士的一通越洋電話,把唐洪從美國“忽悠”了回來。2012年的飛天還在研發的早期階段,隻能支援最大 1500 台機器的叢集,也時常因為一些bug遭受客戶的吐槽。當時,阿裡巴巴的很多資料處理的任務,還是建立在開源軟體 hadoop 的系統之上的,這個叢集大概有 3000-4000 台機器。

【雲栖大會】阿裡雲唐洪:飛天,向世界要一個答案

阿裡巴巴技術委員會主席王堅

但是,hadoop 無論從安全性還是運作邏輯上,都不是為公共雲計算設計的。hadoop 的存儲和計算是一體的,也就是說,如果你需要十台機器的存儲,但不需要十台機器的計算能力,你仍然需要十台機器的叢集,這是一種浪費。雖然可以通過其他方法解決這樣的問題,但是運作效率會大大降低。hadoop 的賬号體系,不是面向網際網路租戶的賬号體系,更多的是面對本地管理者。這就決定了它不能像如今的阿裡雲一樣出售給網際網路級别的使用者。另外,hadoop 高度的靈活性,允許應用層的使用者直接通路底層的檔案,這存在巨大的安全隐患,也不可能直接以多租戶共享的形式跑在公有雲上。

唐洪告訴雷鋒網,以上的一切弊端,都很難通過修修補補的方式,在 hadoop 上規避。而更關鍵的問題在于,阿裡巴巴那時業務的增長速度,已經趨近 hadoop 叢集的計算能力極限。一旦達到瓶頸,就必須被迫降低業務水準,或者主動限制業務規模。在此之前,阿裡巴巴曾經進行過嘗試,用飛天來代替 hadoop,但都以失敗而告終。彼時的阿裡巴巴 cto 王堅對所有阿裡的童鞋說,這個任務還是應該讓飛天來承擔,因為在他心裡有一個計劃,那就是把飛天做成 5000 台伺服器的叢集。

這個當時讓很多同僚取笑的瘋狂想法,就是“5k”。從1500到5000,絕不僅僅是再買3500台機器這麼簡單。唐洪說:摩爾定律注定了計算機硬體性能随時間的指數增長 。從1500台老機器到5000台新機器,計算力增加了8倍到10倍。在短短不到半年時間内實作如此大跨度的軟體能力的更新,對任何一個熟谙軟體工程規律的人來說,都是不可能的挑戰。

但是,飛天真的做到了。世界上買得起五千台伺服器的公司不少,但是真得有自己研發的技術排程這麼大規模叢集的,一隻手都數得過來。 為什麼阿裡雲一定要建設 5000 台機器的叢集呢?唐洪告訴雷鋒網,對于阿裡巴巴來說,很多計算任務是沒有辦法拆解的,必須在一個計算叢集裡完成。如此大量彼此聯系的資料,就需要這麼多機器處在一個叢集中協同分析。

就在2012年底的總裁會上,還有人提出要重新依靠 hadoop。但最終總裁們決定兩條路一起走,既要 hadoop 也要飛天。但是在我看來,這種決策讓技術力量分流了。其實,當時我根據團隊内部的模拟實驗結果,心裡很清楚達到 5k已經不是架構設計的問題,而是一個産品細節打磨的過程了 。

但其他部門的同僚可能并不這麼認為。這樣兩條路一起走就大大分流了技術力量,是以5k能夠早一天做出來,就能早一天終結争論。他說。2013年8月15日,是唐洪脫口而出的日期。這一天,事實宣判了王堅、唐洪和飛天的判斷是對的 。5k 叢集上線,并且是同時上線了兩個 5k叢集。

在阿裡巴巴雲栖小鎮裡,樹立着一尊 5k 的雕像。這尊雕像比想象中要小,卻絲毫不能阻擋它向周圍散發着理想的質感,很多路過的人都會駐足觀看。

【雲栖大會】阿裡雲唐洪:飛天,向世界要一個答案

坐落在阿裡雲栖小鎮的飛天 5k 雕像

唐洪告訴雷鋒網,後來的事實證明,hadoop 叢集在超越4000台機器叢集之後,會遇到不可逾越的瓶頸。如果當時阿裡巴巴選擇依賴 hadoop 系統,如此高的業務增長,将會遇到計算性能的“斷崖”,後果難以設想。就像當年的波音的747飛機、intel的x86晶片、spacex 的火箭一樣,所有的偉大創造,都來自于孤注一擲。唐洪如此感慨。

我記得2012年或者2013年我們進行校招的時候,清華北大的學生來面試的非常少,而且很多同學即使拿到了我們的offer,他們的第一選擇也會是百度和騰訊。唐洪把這個悲傷的事實當作一個段子講給雷鋒網。

在今年的阿裡星面試上,唐洪問同學問為什麼選擇來阿裡雲,得到的回答是“阿裡雲的雲計算技術領先”。他簡單地形容了一下現在的飛天:單叢集萬台,全球總共幾十萬台伺服器,每天資料平台處理的資料超過 1pb。

不過他覺得,這些都不能說明飛天的強大,真正有說服力的,是阿裡巴巴在“吃自己的狗糧”,也就是包括淘寶天貓在内的部分重要業務,包括瞬時并發計算量驚人的“雙十一”,都由飛天來負責雲計算排程。也就是說,阿裡巴巴自己也在使用給其他客戶提供的相同的雲服務,沒有任何特權和差別。我相信國内某些競争者們自己的服務肯定沒有跑在自家提供的雲上。他說。

讓阿裡雲引以為傲的一個資料是:在中國 37% 的網站都建立在阿裡雲之上。我們的預計是,未來全世界可能隻有幾台“計算機”,他們都是由超大規模計算叢集組成的。這個時候,計算力就會被徹底地解放。如果唐洪的預想成真,那時有關“背包裝石子”的計算,将會得出比現在更接近真相的解。也許我們永遠找不到正确的答案,但是毋庸置疑,機器每每向正确答案逼近一小步,都是人的光榮。

每年,阿裡雲都會在大學營杭州舉行雲栖大會,公布阿裡雲和飛天的最新進展。在今年的大會上,馬雲發表了熱情洋溢的演講。原來的機器制造将會變成人工智能,原來機器吃的是電,未來機器吃的是資料。馬雲如是說。

可見,機器學習和人工智能,正是飛天下一步棋。對于人來說,岔路後面的岔路,選擇背後的選擇,讓我們感覺到渺小和恐懼。為了對抗命運的無常,我們發明了雲計算,我們發明了人工智能。無論對于唐洪還是飛天來說,這些無數運轉的晶片,無數網絡中川流不息的電流,都隻有一個目的:向世界要一個答案。

【雲栖大會】阿裡雲唐洪:飛天,向世界要一個答案

感謝 雷鋒網科技 史中 對2016杭州雲栖大會的精彩報道!

繼續閱讀