頂燈閃爍,笛聲響徹。
救護(hù)車載著病人,沖向茫茫車海,在時間的賽道上狂奔。
高德地圖、GPS 衛(wèi)星導(dǎo)航、路面磁感線圈、1300 個路口攝像頭同時開動,為這輛救護(hù)車勘探最快路線;
GPS 傳回實(shí)時數(shù)據(jù),后臺根據(jù)輔助數(shù)據(jù)糾偏,錨定救護(hù)車每一刻的精確位置;
救護(hù)車將要經(jīng)過的沿途,車輛情況被實(shí)時計算。確保路口綠燈提前亮起,在救護(hù)車通過之前,剛好所有社會車輛已經(jīng)行駛一空。
這不是演習(xí),這是杭州城市大腦每天都在執(zhí)行的任務(wù)。依靠計算,一輛救護(hù)車到達(dá)醫(yī)院的速度,平均縮短了 50%。在這座城市,靠鳴笛和闖紅燈開道的悲壯徹底成為歷史。
說人同螻蟻,其實(shí)并不為過。兩百多萬輛車奔跑在城市里,他們的行蹤像風(fēng)里的落葉一樣叵測。但通過對 1300個路口的攝像頭的實(shí)時計算,城市大腦就可以精確地預(yù)測出未來十五分鐘、未來半小時哪個路段將會擁堵,從而第一時間指揮路口信號燈“變換姿勢”。
計算在幫人類追趕時間。
中哥今天要說的,就是這個精致而堅固的“大數(shù)據(jù)實(shí)時計算引擎”。
你可能從未聽說過這個引擎,甚至在此刻之前都不知道它的存在,但你很可能早已成為這個引擎服務(wù)的一員:
一年一度的雙11,無數(shù)人涌進(jìn)天貓,每個人都能用 0.1 秒搜索到自己理想的商品,在智能推薦中發(fā)現(xiàn)適合的寶貝,背后正是依賴這個引擎;
雙11慶典現(xiàn)場,大屏上那個跳動的總成交量數(shù)字,只是背后所有數(shù)據(jù)的冰山一角。幾十億種商品的實(shí)時庫存、價格、優(yōu)惠數(shù)據(jù)得以分秒不慢地同步給屏幕前的你,也同樣依賴這個引擎。
從某種意義上來說,只要給這個計算引擎足夠的資源,無論面對多么龐大復(fù)雜的系統(tǒng),我們都可以用幾乎忽略不計的時間看到真相——這大大快于人類最聰明的大腦。
這是我們親手創(chuàng)造的“先知”。
重器難成。為了這個先知一般的“大數(shù)據(jù)實(shí)時計算引擎”,阿里巴巴最核心的技術(shù)人,已經(jīng)耗費(fèi)了將近五年時間。
讓人感慨的是,這個承載了一個個城市的交通,扛起了一條條生產(chǎn)線,擔(dān)負(fù)了一個國家十幾億人購物的強(qiáng)大引擎之所以的誕生在阿里巴巴,最初并不是為了滿足什么需要,而僅僅是因?yàn)樗?ldquo;看上去很美”。
這是一個鮮為人知的故事。
(1)
1999年,阿里巴巴在杭州成立。
同樣在1999年,蔣曉偉正在美國攻讀理論物理博士。作為一個初三就立志要探索宇宙秘密的年輕人,到目前為止他的人生堪稱完美。
就在一個嶄新的物理學(xué)家即將出爐的時候,命運(yùn)開始展現(xiàn)它的波云詭譎。蔣曉偉突然被自己的導(dǎo)師“忽悠”到了一家非常有希望的互聯(lián)網(wǎng)初創(chuàng)公司。理由是:“在30歲之前先財富自由,以后愛怎么學(xué)物理就怎么學(xué)物理。”
一年之后,互聯(lián)網(wǎng)泡沫破裂。然而,蔣曉偉卻留在了這片戰(zhàn)場。2002年,他加入微軟,2010年他加入 Facebook。彈指揮間,直到回國加入阿里巴巴之前,他已經(jīng)從物理學(xué)家成功轉(zhuǎn)型成為數(shù)據(jù)庫和計算資源調(diào)度系統(tǒng)專家。
他還記得,自己加入阿里的時間是 2014年12月29日。這是一年中可以辦理入職的最后一天。
“為什么選最后一天?”
“因?yàn)榭瓷先ケ容^有美感。”
“。。。”
目測,蔣曉偉是我見過的第一個用物理公式般的美感對待人生的人。甚至,他給自己的花名都想叫做“量子”,后來思考了一下,覺得量子不太像個人名,才改為諧音“量仔”。
蔣曉偉
蔣曉偉入職的是阿里巴巴集團(tuán)搜索團(tuán)隊。你可能會問:納尼?阿里巴巴還有搜索團(tuán)隊?當(dāng)然有,而且還極其重要。舉個搜索引擎的日常:
當(dāng)你在淘寶搜索框里輸入“杜蕾斯”的時候,搜索引擎就馬上行動,從億萬賣家出售中的寶貝里幫你找到合適的 TT(及其他產(chǎn)品),然后按照推薦順序排列在搜索結(jié)果里。
注意,有趣的硬核要來了:
如果,商家的 TT 價格永遠(yuǎn)不改,庫存永遠(yuǎn)無限,優(yōu)惠促銷方案永遠(yuǎn)不變,那么搜索團(tuán)隊只需要做一個最簡單的查詢系統(tǒng)就行了。
但是,現(xiàn)實(shí)中商家會隨時調(diào)整價格和優(yōu)惠,某一款激情大顆粒也可能因?yàn)樘軞g迎,上架十秒就賣到缺貨。在淘寶網(wǎng)上,你會發(fā)現(xiàn)真實(shí)的狀態(tài)是:每時每刻都有無數(shù)賣家的產(chǎn)品參數(shù)在改動。
所以,搜索引擎的挑戰(zhàn)就是,要根據(jù)每時每刻最新的數(shù)據(jù)庫來瞬間算出最適合呈現(xiàn)給你的搜索結(jié)果。
相信我,只有用最新鮮的數(shù)據(jù)算出的結(jié)果,才能讓屏幕對面的你露出心滿意足的表情:
面對這種現(xiàn)實(shí),一個最穩(wěn)妥的方式就是,搜索引擎用把現(xiàn)在的數(shù)據(jù)庫全部算一遍,給出結(jié)果。
但是,這會耗費(fèi)大量的計算力。畢竟這一秒相對于上一秒來說,可能發(fā)生參數(shù)變動的寶貝只有十個,而沒有參數(shù)變動的寶貝有十萬個。
那么,你自然會想:“有沒有一種方法,讓我只計算改動的部分,再通過特別的數(shù)學(xué)運(yùn)算和之前的結(jié)果融合,就能達(dá)到和計算全量數(shù)據(jù)一樣的效果呢?”
有的,這就叫“流式計算”。
打個最簡單的比方:
你負(fù)責(zé)把椰汁平分給10個妹紙。剛開始你有10瓶椰汁,于是你一人分了一個。后來,你又得到了10瓶椰汁,這時候椰汁的總數(shù)變成了 20 瓶,平均每個妹紙應(yīng)該得到兩個。
但你沒有必要把之前分給妹紙的椰汁收回來,重新每人給兩個;而是可以讓每個妹紙手上拿著之前的那瓶椰汁的基礎(chǔ)上,每人再補(bǔ)發(fā)一瓶。
通過這個例子,我猜你已經(jīng)感受到了“流式計算”的激蕩。當(dāng)然,實(shí)際的數(shù)據(jù)庫運(yùn)算比“分椰汁”復(fù)雜得多。
需要說明的是,當(dāng)時在阿里巴巴內(nèi)部,并不是沒有流式計算引擎,各部門都根據(jù)自己的需求研發(fā)了特定的流式計算引擎,只不過,大多引擎只用來解決各自部門的問題,沒有通用性。
很多業(yè)務(wù)都開發(fā)了
各自的流式計算引擎
但蔣曉偉突然發(fā)現(xiàn),流式計算背后隱藏著一個神奇的事實(shí):
既然只計算增量,就能得知全量的結(jié)果;那么就可以永遠(yuǎn)用計算增量的方式來表達(dá)計算全量。
也就是說:增量計算等效于全量計算;流式計算等效于批處理計算,實(shí)時計算等效于離線計算!
也就是說,如果按照這個構(gòu)想做出一套完整功能的“流式計算引擎”,就可以一統(tǒng)江湖,運(yùn)轉(zhuǎn)在阿里巴巴所有的技術(shù)底層。這可是一份不小的產(chǎn)業(yè)啊!
蔣曉偉越想越雞凍。
然鵝,讓他激動的最主要原因竟然是:“這個引擎太完美了!”他發(fā)現(xiàn),其實(shí)自己身體里的那個“物理學(xué)家”一直都在。物理追求的終極就是“大一統(tǒng)理論”——用一套機(jī)制解決所有問題。沒想到人生峰回路轉(zhuǎn),在計算機(jī)領(lǐng)域也給發(fā)現(xiàn)了一個“大一統(tǒng)”的機(jī)會。
老實(shí)說,蔣曉偉老濕傅這個想法有點(diǎn)危險。危險在哪呢?
首先,如果把當(dāng)時搜索業(yè)務(wù)需要的流式計算比作汽車發(fā)動機(jī)的話,蔣曉偉想要研制的發(fā)動機(jī),是豪華到可以用到下一代宇宙飛船上的“核能發(fā)動機(jī)”。自己團(tuán)隊支持的這攤子業(yè)務(wù)目前根本不需要這么好的引擎。
其次,研究這個引擎的基本動力居然是“美感”。出于美感開發(fā)一個計算引擎,這種動機(jī)天然就有一種理想主義氣質(zhì)。。。能不能研究成,那只有天知道。
再說,面對這么宏大的任務(wù),手下能用來做研發(fā)的團(tuán)隊,只有五個人。況且這五個兄弟還有日常的任務(wù),人手極度短缺。
“但馬老師不是說了么,夢想還是要有的,萬一實(shí)現(xiàn)了呢?”
剛剛加入阿里的蔣曉偉倒是決心已定。
(2)
蔣曉偉“能用”的團(tuán)隊,全員都在北京。
這個小分隊的老大叫做王峰。王峰是個老阿里了,2006年加入阿里巴巴,在阿里北京的雅虎中國團(tuán)隊做搜索,后來又做過一淘和淘寶搜索。此時此刻,他和北京的幾個兄弟主要負(fù)責(zé)一個開放搜索項目的離線系統(tǒng)。
聽到蔣曉偉對于“流式計算引擎”的描述,王峰內(nèi)心驚呼“*”。對于一個合格技術(shù)宅來說,一個好的技術(shù)構(gòu)想比萌妹子更能讓他動心。
蔣曉偉和王峰一合計,事情很簡單:腳踩兩只船,那基本沒戲。要么就趁早死心,放棄新引擎研發(fā);要么就大家就把舊工作完全交出去,破釜沉舟干票大的。
王峰的決定是,干!
現(xiàn)在的王峰,
笑起來一幅波瀾不驚,
當(dāng)年內(nèi)心也是慌得一批。
王峰回憶,領(lǐng)導(dǎo)們覺得很不可思議。因?yàn)榻怀鲈械臉I(yè)務(wù),北京這個小團(tuán)隊相當(dāng)于“失業(yè)”了。而新的研究——流式計算引擎——當(dāng)時只是個構(gòu)想,連技術(shù)方向也沒有,代碼更是一行都還沒寫。對于王峰來說,這相當(dāng)于一次破釜沉舟的內(nèi)部創(chuàng)業(yè),前途未卜,兇險異常。
事實(shí)也證明,別人的擔(dān)心都是對的。一開始團(tuán)隊努著勁兒寫了三個月代碼,仍然沒辦法達(dá)到蔣曉偉理想中的通用性,連他本人都有點(diǎn)心虛。
“我剛來阿里巴巴,就忽悠兄弟們把之前的項目都放棄了,要是最后證明我的構(gòu)想是個坑,那不是害了別人么。。。”他想。
焦急之中,已經(jīng)到了 2015 年夏天,蔣曉偉突然在業(yè)內(nèi)著名的大數(shù)據(jù)峰會 Hadoop Sumit 的論壇上看到有人發(fā)表了一個驚悚的評論:感覺 Flink 出來之后,Hadoop 就顯得不怎么需要了。。。
Hadoop 是當(dāng)年最火的大數(shù)據(jù)分布式架構(gòu),這個 Flink 是個神馬,根本沒聽過啊。但是當(dāng)蔣曉偉、王峰和團(tuán)隊研究完技術(shù)資料之后突然發(fā)現(xiàn),這種“用流式計算來等效一切計算”的理念不就和我們想開發(fā)的那套引擎一模一樣嗎?
蔣曉偉仰天長嘯:
真是天助我也!既然已經(jīng)有開源的技術(shù),那么我們只要在此之上繼續(xù)開發(fā)流計算引擎就好了?。?/p>
這里多介紹一句。Flink 是一個流式計算的開源框架,2010 年誕生于德國研究中心和柏林工業(yè)大學(xué),2014年被捐贈給 Apache 基金會,并由創(chuàng)始公司 DataArtisans 繼續(xù)運(yùn)營。
Flink 的 Logo 是一只眼神里有故事的松鼠。
簡單來說,2015年的時候,F(xiàn)link 剛剛“出道”一年,幾乎沒有人知道,更沒有人大規(guī)模使用。就像一個剛剛畢業(yè)的大學(xué)生,看上去很有潛力,但“穩(wěn)定性”和“實(shí)用性”都缺乏事實(shí)驗(yàn)證。
就這樣,這幫阿里巴巴的技術(shù)專家,成為了全球第一批使用 Flink 框架做大數(shù)據(jù)引擎研發(fā)的人,蔣曉偉一瞬間就給自己的引擎起好了名字——“Blink”。這是英文眨眼的意思。”一眨眼,所有東西都計算好了!“
2015年底,搜索部門要向阿里巴巴 CTO 行癲匯報。每人20分鐘時間,結(jié)果蔣曉偉上去講 Blink,沉浸在對這個“完美引擎”的想象中,一下就說了40分鐘。
作為阿里巴巴所有核心技術(shù)的掌門人,行癲素來對新技術(shù)很敏感。他聽懂了蔣曉偉的技術(shù)路線,內(nèi)心也覺得相當(dāng)靠譜。但這畢竟是搜索團(tuán)隊自己“偷偷”搞的項目,這幫兄弟究竟可以堅持走多遠(yuǎn),行癲心里也沒底。于是鼓勵蔣曉偉說:“那就等你們明年做出來,我們再看!”
阿里巴巴 CTO 行癲 張建鋒
(3)
說到底,Blink 是一個通用引擎。它就像一個萬能發(fā)動機(jī),可以裝載到轎車、卡車、飛機(jī)、火箭任何地方。
蔣曉偉手握這臺“萬能發(fā)動機(jī)”的1.0版本,到處去找車實(shí)驗(yàn)。他盯上的“第一批車”,就是搜索業(yè)務(wù)中的使用場景。
簡單科普一下:
搜索業(yè)務(wù)的機(jī)器學(xué)習(xí)平臺內(nèi)部代號叫“保時捷”(還真是一輛車。。。),可以根據(jù)你瀏覽商品的時間和動作,實(shí)時判斷出你可能會對什么感興趣,從而在下一秒就能給你智能推薦可能喜歡的商品。這是阿里巴巴非常有技術(shù)含量的一個應(yīng)用。
實(shí)際上,機(jī)器學(xué)習(xí)平臺當(dāng)時已經(jīng)“心有所屬”,配有一臺流式計算引擎——之前王峰帶領(lǐng)搜索團(tuán)隊自研的 iStream。iStream 是專門為搜索設(shè)計的,雖然目前可以很好地完成任務(wù),但結(jié)構(gòu)簡單,不具有特別強(qiáng)的通用性。
機(jī)器學(xué)習(xí)算法團(tuán)隊的一位負(fù)責(zé)人仁基,技術(shù)思想非常超前,非常巧的是,他同樣是個執(zhí)著于“美感”的人。他相信,未來 Flink 很可能會成為下一代機(jī)器學(xué)習(xí)算法重要的底層計算框架,于是在 Blink 系統(tǒng)研發(fā)的早期,就把團(tuán)隊里一百多位算法工程師的力量都用來配合蔣曉偉。
“一兩百人的團(tuán)隊,被我一個人折騰。”回憶到這里,蔣曉偉露出了羞赧的表情。
說得很美好,結(jié)果真拿來 Blink 一用,動不動就躺尸。。。說實(shí)話,算法工程師沒有義務(wù)為 Blink 的技術(shù)問題買單。畢竟算法工程師是“生產(chǎn)汽車的”,而 Blink 這個“發(fā)動機(jī)”質(zhì)量不穩(wěn)定,導(dǎo)致人家的汽車備受詬病,可以說相當(dāng)冤枉了。
所以那幾個月一百多位算法工程師的日常就是各種吐槽“瘋子”蔣曉偉。
后來蔣曉偉才知道,這些吐槽,全都被仁基扛下來。仁基盡自己一切所能,在保護(hù)著這個弱小的 Blink。
終于,2016年5月,第一個基于 Blink 的機(jī)器學(xué)習(xí)小功能“A/B Testing”上線。雖然還存在一些青澀的小毛病,但所有的技術(shù)人都看到了,Blink 已經(jīng)像會呼吸的小獸一樣,泛出誘人的引擎光澤。
最激動的,當(dāng)然是蔣曉偉本人。
他把自己在 Flink 上成功的應(yīng)用作為一個演講,投給了當(dāng)年的 Hadoop Sumit 大會。非常巧,F(xiàn)link 的創(chuàng)始人 Kostas 和 Stephan 也在同一個大會上有一個演講。他們兩撥人實(shí)際是那次 Hadoop 大會上唯二的 Flink 演講。
Kostas 提前看到了議程,頓感相見恨晚,于是主動聯(lián)系了蔣曉偉,希望他能用團(tuán)隊研究的成果影響社區(qū)。
“本來之前是想自己玩玩的,我們連阿里都不敢影響,還敢影響社區(qū)?”蔣曉偉說。但是 Kostas 和 Stephan 覺得這群阿里人的嘗試簡直不要太酷,特別支持。
蔣曉偉深受感動,“從那時候開始就覺得,我們不僅得把阿里內(nèi)部的業(yè)務(wù)做好,還要為 Flink 社區(qū)做貢獻(xiàn),把 Flink 社區(qū)做好。”
就這樣,蔣曉偉和團(tuán)隊就跟組織“接上了頭”,成為了 Flink 社區(qū)的核心成員。
(4)
在搜索團(tuán)隊內(nèi)部證明了 Blink 能力,又得到了 Flink 社區(qū)的認(rèn)可,蔣曉偉終于有資格正視自己的“野心”了。
他提出要讓 Blink 支撐“雙11”上的實(shí)時機(jī)器學(xué)習(xí)任務(wù),對方同意了。
也就是說,雙11當(dāng)天,數(shù)億人在淘寶天貓搜索商品,他們的每次查看,點(diǎn)擊,都會影響個性化的智能推薦,在下一秒就能看到為自己量身定做的寶貝推薦。而這背后的實(shí)時計算,都要由 Blink 來支撐。
然而抬眼一看,夏天已經(jīng)到了,距離雙11只有不到半年了。
整個九、十月份,Blink 和機(jī)器學(xué)習(xí)系統(tǒng)的聯(lián)調(diào)都處在各種花式崩潰之中。Blink 還小,壓根就沒見過雙十一這種“人類狂歡”的陣仗。出現(xiàn)了一個死結(jié):一旦超大規(guī)模數(shù)據(jù)進(jìn)來,Blink 的性能立刻大幅下降。
要知道,在 AI 領(lǐng)域,性能就是功能。性能大幅下降的 Blink 分分鐘就把人工智能坑成“人工智障”。
老程序猿都知道,數(shù)據(jù)規(guī)模是對一個系統(tǒng)最大的考驗(yàn)。一個系統(tǒng)承受不住大規(guī)模的數(shù)據(jù)浪潮,有可能證明這個架構(gòu)就是無解的。如果真是架構(gòu)缺陷,那么解決方案只有一個:放棄。
帶領(lǐng)團(tuán)隊攻堅的王峰回憶,那幾天“自己已經(jīng)崩潰了”。
十一假期,所有團(tuán)隊的人都從北京沖到了杭州,別說休假,連覺都不睡了。六七個人就在工位上吃住,尋找究竟是哪個節(jié)點(diǎn)出了問題。即使是面對這樣的情況,蔣曉偉、王峰,還有其他同事都完全相信,F(xiàn)link 架構(gòu)是完美的,問題一定是局部的可解的,只是我們還沒找到它。
終于,問題找到了!是不同層級算子之間的調(diào)度模式需要優(yōu)化。解決這個問題之后,系統(tǒng)能處理的數(shù)據(jù)量立刻躍升。十月中旬,Blink 正式切上線。本以為劫波渡盡,沒成想又是一大堆系統(tǒng)配合的問題接踵而來。
蔣曉偉記得,將近11月,Blink 還有一些問題沒搞定。這邊基礎(chǔ)引擎不搞定,算法團(tuán)隊就沒辦法在它的基礎(chǔ)上調(diào)優(yōu)雙11的算法。到最后,算法團(tuán)隊的老大都直接找到蔣曉偉,著急地質(zhì)問:“你們究竟是怎么回事???”
現(xiàn)在想想,他的意思可能是想讓我別折騰,直接換回去年的舊系統(tǒng)。但我的情商低,當(dāng)時沒聽明白。就是一門心思地組織大家調(diào)優(yōu) Blink。。。
蔣曉偉回憶。
終于趕在11月前,Blink 完成了聯(lián)調(diào)。原則上,從11月1日開始,雙11的系統(tǒng)就要封閉代碼,誰都不能動了。但是,這是 Blink 第一次承擔(dān)這么重大的任務(wù),為了萬無一失,相關(guān)團(tuán)隊又提了很多冗余性的建議。
王峰記得很清楚,一直到11月10日,還有幾個小時雙11就開始了,代碼還最后改了幾行,最終封閉。
人事已盡,唯聽天命。
11月11日,巨大的數(shù)據(jù)像海嘯一樣涌向 Blink,蔣曉偉和王峰都捏了一把汗。然而,這個年輕的引擎應(yīng)對自如。
第二天,Blink 在阿里巴巴一炮而紅。
2016年“雙11”
交易額定格在1207億
(5)
你以為故事結(jié)束了么?*。緊隨而來的 2017 年對于蔣曉偉來說,簡直不要更刺激。
意識到大數(shù)據(jù)引擎這么重要,阿里巴巴集團(tuán)決定調(diào)整組織架構(gòu),集全公司之力發(fā)展大數(shù)據(jù)引擎,由原阿里云的首席科學(xué)家周靖人組建計算平臺事業(yè)部,在流式計算方面,把公司發(fā)展最好的三個引擎團(tuán)隊合三為一。
周靖人
他也是阿里巴巴達(dá)摩院的“禪師”之一
這三個引擎分別是:阿里中間件團(tuán)隊的 JStorm、阿里云的 Galaxy、阿里巴巴搜索團(tuán)隊的 Blink。
得知大牛周靖人負(fù)責(zé)整合三個團(tuán)隊,正在美國參加 Flink 官方大會 Flink Foward 的蔣曉偉和王峰內(nèi)心有點(diǎn)波瀾。他們知道,三個隊伍合并之后,很可能在三條技術(shù)路線之中選擇一條。
蔣曉偉當(dāng)然覺得自己的開源技術(shù)路線技術(shù)前景最好。但平心而論,Galaxy 的框架同樣非常優(yōu)秀。更關(guān)鍵的問題在于,Galaxy 一直是周靖人團(tuán)隊的成果。雖然在阿里巴巴不會出現(xiàn)因?yàn)橛H疏遠(yuǎn)近而偏袒某個技術(shù)路線,但不可否認(rèn)周靖人一定對于 Galaxy 更為熟悉。
那時的蔣曉偉,和這個即將成為新領(lǐng)導(dǎo)的周靖人完全不熟悉,他完全無法預(yù)測將會發(fā)生什么。
我擔(dān)心,不會一回到國內(nèi),就沒工作了吧。。。。
蔣曉偉回憶。
回國之后,周靖人來找蔣曉偉,蔣曉偉的心已經(jīng)快跳到嗓子眼了。周靖人說:“我想把整合之后的團(tuán)隊交給你來負(fù)責(zé),你們?nèi)艘黄鹕塘课磥淼募夹g(shù)路線,你覺得怎么樣?”
這意味著,蔣曉偉突然擁有了80人的豪華陣容。那一瞬間他在心里默念:“穩(wěn)了!”只要不是強(qiáng)制采用某個技術(shù)路線,他就有信心說服 Galaxy 和 JStorm 的負(fù)責(zé)人。技術(shù)擺在這里,孰優(yōu)孰劣是能講得清道理的。
蔣曉偉回憶,三個技術(shù)負(fù)責(zé)人的“談判”整整維持了一周。
大家都知道,這次技術(shù)路線的抉擇,將會影響阿里巴巴未來十年甚至更遠(yuǎn)的技術(shù)發(fā)展,誰都不敢掉以輕心。
談到最后,爭奪的焦點(diǎn)就集中在 Blink 和 Galaxy 之間。
Flink 的開源生態(tài),最終說服了Galaxy 的支持者。此時的 Flink 已經(jīng)不像兩年那樣鮮有人問津,而是已經(jīng)形成了巨大的社區(qū),中國已經(jīng)有騰訊、滴滴、美團(tuán)等公司開始用 Flink 建造自己的流式計算引擎。
在這個社區(qū)里,會有無數(shù)國內(nèi)外大牛對 Flink 的代碼做貢獻(xiàn)。建立在這個開源基座上的架構(gòu),也會發(fā)展得更快速。
至此,Blink 正式成為了阿里巴巴計算引擎的王牌軍。
(6)
王牌軍可不是白當(dāng)?shù)摹?/p>
2017年雙十一,Blink 領(lǐng)到了自己的艱巨任務(wù)——支持全集團(tuán)(阿里巴巴、阿里云、菜鳥)的流式計算任務(wù)。
王峰告訴我,其實(shí)2016年雙11 Blink 承擔(dān)的搜索任務(wù),已經(jīng)是一個重頭戲,有過這個經(jīng)歷墊底,再適配很多系統(tǒng)的時候只不過是麻煩一點(diǎn)而已。唯獨(dú)有一樣:Blink 要接管后臺所有的交易數(shù)據(jù)的實(shí)時計算任務(wù)。
交易數(shù)據(jù)計算,是淘寶天貓業(yè)務(wù)的最核心。也是支撐背后支付、物流的核心依據(jù)。
很多其他的計算都要基于訂單數(shù)據(jù)的結(jié)果。這就像面包店的面粉一樣,無論你做什么蛋糕,都需要面粉。如果面粉的供應(yīng)出問題,那整個面包店就要關(guān)門了。所以無論面臨多大的訂單量,交易數(shù)據(jù)計算必須穩(wěn)定、快速、實(shí)時。一旦出現(xiàn)錯誤,損失無可估量。
每年雙十一狂歡晚會上的那塊大屏幕上顯示的實(shí)時成交數(shù)字,也是由訂單數(shù)據(jù)匯總而成的。也就是說,如果 Blink 當(dāng)天掛掉,不僅對淘寶天貓的運(yùn)轉(zhuǎn)影響巨大,還會導(dǎo)致一個略為明顯的結(jié)果:成交量大屏一直維持“0”,一秒把人丟到全球無死角。
2014、2015、2016 這三年,這個核心任務(wù)都是由兄弟引擎 Galaxy 來承擔(dān)的。
所有人都想到一個穩(wěn)妥的方案:2017年“雙11”讓 Blink 和準(zhǔn)備退役的 Galaxy 來個雙備份,如果 Blink 臨時廢掉,還可以用 Galaxy 作為備份頂上,至少不會丟人。
然鵝,2016年雙11的成交量是1207億元,按照歷年經(jīng)驗(yàn)推測,2017年的成交量八成是會超過1500億的(事實(shí)證明確實(shí)如此,達(dá)到了1682億)。而根據(jù) Galaxy 的技術(shù)架構(gòu),如果不做大量繁瑣的優(yōu)化,很可能頂不住。
初出茅廬的 Blink,就這樣成為 2017 年雙11媒體大屏“全球指定唯一必須頂上不干不行合作伙伴”。。。
雙11 當(dāng)天,兩條 Blink 鏈路互為備份。“雖然成功率基本是100%,但萬里有一,假設(shè) Blink 本身設(shè)計存在未知的缺陷,或者兩條備份鏈路的機(jī)器硬件同時壞掉,都可能導(dǎo)致災(zāi)難。”蔣曉偉回憶。
在雙11到來前一周,王峰帶領(lǐng)兄弟們已經(jīng)把 Blink 引擎調(diào)整到無以復(fù)加的好狀態(tài)。蔣曉偉想了想,又派同樣是 Facebook 回來的大牛工程師大沙去天竺法喜寺燒了一炷香。。。
2017年11月11日零點(diǎn)??駳g現(xiàn)場。
時鐘敲響零點(diǎn),然后出現(xiàn)五秒倒計時。按照流程,留給 Blink 的計算時間只有這五秒。也就是說,00:00:05 的時候,無論如何大屏幕都會切到 Blink 給出的雙11前五秒交易總額。
這五秒,幾乎是蔣曉偉人生當(dāng)中最漫長的五秒。
1、2、3。。。
第三秒的時候,蔣曉偉面前的監(jiān)視器跳出了實(shí)時成交數(shù)據(jù)!再兩秒之后,實(shí)時交易數(shù)據(jù)被投上大屏,穹頂之下,歡聲雷動。
蔣曉偉知道,現(xiàn)場觀眾并不一定理解大屏運(yùn)行原理,內(nèi)心也并沒有特地把一份掌聲送給幕后的流式計算引擎團(tuán)隊。
但那一刻,他熱淚盈眶。這幾年兄弟們付出的努力值了。
168,269,635,159。每一個數(shù)字,對蔣曉偉和兄弟們都意味著歲月和付出。
(7)
經(jīng)過兩年雙11的考驗(yàn),已經(jīng)沒人懷疑 Blink 是阿里巴巴最強(qiáng)悍的計算引擎之一。
所以,不僅阿里巴巴集團(tuán)所有用到流式計算的場景都會選用 Blink,Blink 還開始對外提供服務(wù)。雖然在蔣曉偉看來,各個場景的計算都可以用 Blink 來解決,但目前被應(yīng)用最多的場景有如下幾個:
1、實(shí)時統(tǒng)計分析。
在電商行業(yè),尤其是促銷的場景中,巨大的網(wǎng)絡(luò)流量涌來,形勢變幻莫測。每一秒的庫存統(tǒng)計、訂單報表,都能揭示出用戶的行為規(guī)律。對這些數(shù)據(jù)進(jìn)行實(shí)時分析,就能隨時調(diào)整促銷策略。
2、在線機(jī)器學(xué)習(xí)。
用戶的行為會展現(xiàn)出他的性格和偏好,用機(jī)器學(xué)習(xí)分析一個人瀏覽商品的姿勢,就能為他精準(zhǔn)推薦可能感興趣的商品。
但是,可能一個用戶只瀏覽一分鐘,如果在這個時間段內(nèi)沒有能夠吸引他的商品,它就會退出。所以必須在一秒鐘之內(nèi),對他剛才的動作進(jìn)行實(shí)時學(xué)習(xí),才能保證他第一時間看到感興趣的寶貝。
3、實(shí)時金融風(fēng)控。
在金融領(lǐng)域,技術(shù)就是金錢。每成功阻斷一次欺詐交易,就等于挽回了真金白銀。通過對一個賬戶實(shí)時行為的分析,就可以知道現(xiàn)在它有沒有進(jìn)行危險交易,從而在第一時間阻斷。
4、IoT 邊緣計算。
在工廠中,每臺生產(chǎn)線都會隨時產(chǎn)生數(shù)據(jù),如果可以實(shí)時對這些數(shù)據(jù)進(jìn)行分析,就可以減少生產(chǎn)線的損壞幾率,提高產(chǎn)品的良品率。
根據(jù)參數(shù)實(shí)時調(diào)整生產(chǎn)線
如此,才有了開頭一幕所說:阿里云承建的城市大腦,可以利用 Blink 來預(yù)測道路擁堵,為救護(hù)車開拓生命道路。
根據(jù)阿里云首席科學(xué)家閔萬里博士的介紹:
2018年,城市大腦第一次出國,被部署在馬來西亞吉隆坡,把救護(hù)車到達(dá)現(xiàn)場的時間縮短了 48.9%。
借助工業(yè)大腦,流式計算實(shí)時判斷生產(chǎn)線的健康狀況,幫助世界第一大光伏企業(yè)協(xié)鑫光伏提高了良品率1%,每年可以節(jié)省上億元的無謂浪費(fèi)。
2018年12月20日,阿里巴巴將 Flink 的旗艦會議 Flink Foward 第一次引入中國,現(xiàn)場座無虛席。蔣曉偉、王峰和流式計算團(tuán)隊的每一個人,在過去的三年都親眼見證了 Flink 從踽踽獨(dú)行到集結(jié)成軍。
為了感謝社區(qū)的幫助,在這次會議上周靖人宣布,在未來會把基于 Flink 修改的 Blink 流式計算引擎開源。從2019年1月開始,所有人都可以查閱這個支持了雙11、支持了城市大腦、支持了工業(yè)IoT等無數(shù)頂級計算的引擎代碼。
也就是在這一年,王峰正式接替蔣曉偉,成為流式計算的新掌門。而蔣曉偉則朝著他的“完美夢想”更進(jìn)一步,帶著一幫兄弟在此基礎(chǔ)上研究“帶有流式計算引擎的數(shù)據(jù)存儲系統(tǒng)”——交互式查詢系統(tǒng),讓這個引擎能夠解決更多通用的計算問題。
帶有流式計算引擎的數(shù)據(jù)存儲系統(tǒng),聽起來有些不知所云。其實(shí),這個世界上最經(jīng)典的這類系統(tǒng),其實(shí)就是我們的大腦。
我們一生中會接受各種信息,這些信息共同構(gòu)成大腦的資料庫,幫助我們預(yù)測未來。每當(dāng)有新的信息進(jìn)來,我們都會根據(jù)這一點(diǎn)點(diǎn)信息增量微調(diào)我們對于未來的預(yù)測。
這種調(diào)整,毫無疑問是實(shí)時的。我們的祖先不小心觸摸野火,從那一刻開始就會告訴自己和家人小心火焰。
我們依靠對世界的萬億次反饋,發(fā)現(xiàn)了萬有引力,發(fā)現(xiàn)了相對論,發(fā)現(xiàn)了量子力學(xué)。
正是千萬人實(shí)時更新的預(yù)測能力,構(gòu)成了我們的文明,也書寫了我們的歷史。
以前,所有關(guān)于未來的預(yù)測都在我們的腦海里,如今,我們終于有機(jī)會在軀體之外,利用人類的武器——計算力——建造起一個碩大的預(yù)測引擎。
角落里,這些技術(shù)英雄笑起來安靜而羞澀。但正因他們存在,人類面對未來,再也不是手無寸鐵。
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!