阿里為什麼要拿下Flink?
如果這不是因為阿里新年消費的第一個大單,更多人知道Flink或許還會晚一點。據歐洲外媒Deutsche Startups報道,阿里巴巴集團以1.033億美元(9000萬歐元)的價格收購了總部位於柏林的初創公司Data Artisans。此訊息之後得到了多家媒體從阿里處的證實。
由於Data Artisans擁有著一種代表當今大資料流處理引擎的前沿技術,讓阿里這一收購舉動引起了相關業界不小的反響。尤其是,在阿里集團剛剛進行一次大規模組織架構調整後,需要依靠更加智慧化的雲端計算技術融合到阿里系更為多元化的發展格局中,收購Data Artisans不失為面向新戰略的一次有力佈局。
阿里的Flink血液
不熟悉的Data Artisans的讀者,會很容易錯過那些因標題為“阿里巴巴收購德國資料公司”這種平淡表述下的很多資訊。即使那約1億美元的收購額表述,在有著近4000多億美元體量的的阿里賣賣賣的歷程中,對比之前收購餓了麼的95億美元、36.7億美元拿下優酷土豆等等,也實在是難入法眼。
但其實,Data Artisans手裡握著一項當今大資料流處理引擎為數不多的前沿技術,叫做Flink。Flink核心是一個流式的資料流執行引擎,其針對資料流的分散式計算提供了資料分佈、資料通訊以及容錯機制等功能。企業依託Flink技術體系建立的大資料流處理引擎解決方案,可以更合理更快速地獲得計算結果投入到企業決策。Data Artisans在2015年初將Flink貢獻給Apache社羣併成為該社羣的頂級專案,Data Artisans此後持有多個並行流的data Artisans Platform成為Flink的商業版本。
據Data Artisans官網介紹,其dA平臺由Apache Flink和dA Application Manager組成,“包括與容器編排、持續整合/持續交付(CI/CD)、日誌記錄、度量指標和狀態儲存整合的隨時可用的功能,為公司客戶提供了單一檢視,以便了解所有的資料流處理應用。”其客戶包括阿里巴巴、荷蘭國際集團(ING)、Netflix、優步、Lyft、、eBay、yelp、華為和Capital One等。
在Data Artisans的客戶名單裡我們輕而易舉的發現了阿里,其中他每年雙十一時讓我們在阿里總部盯著的那個大螢幕上顯示實時成交數字,其背後就是依賴Flink技術。那塊螢幕顯示的數字,需要通過巨大的網路流量彙總各個地方的報表、資料庫等的資料,並需要在毫秒級別的時間延遲之內進行計算,並將計算結果彙總為單一的檢視,即我們可以通過一塊螢幕觀察到的結果,這樣的技術實現正是大資料流處理引擎技術在當今成為AI時代頂樑柱的核心原因。
如果說Flink建立的技術體系對AI時代是強需求,對阿里就是核心需求。為此,阿里在Flink引入內部團隊後打造了Blink。據透露,目前阿里巴巴所有的業務,包括阿里巴巴所有子公司都採用了基於Flink搭建的實時計算平臺。另外,阿里巴巴集團副總裁周靖人之前宣佈,阿里巴巴內部 Flink 版本 Blink 將於 2019 年 1 月正式開源,這就意味著阿里未來將會主要以Blink的身份來投入Flink 的社羣貢獻了。
阿里巴巴集團副總裁周靖人
可以說,一路下來,對Flink的投入,阿里已經證明了自己在大資料計算領域的戰略眼光。
首先,阿里較早地看到了業務發展需要在大資料時代裡需求解決方案。有著十年服務中國企業雲端計算從業歷史的阿里,已經在第一線看到了大資料量爆發帶給企業的業務壓力,需要有高吞吐、低延遲的大資料計算解決方案服務自己的大規模資料業務場景。早在2004的時候,谷歌自己就放棄了自己創立的大資料離線計算鼻祖,PB規模資料同時計算是MapReduce難以逾越的瓶頸。此後Spark發展至今,用批處理方式將大資料計算帶入分鐘級的反應延遲。如今,流式主導的分散式計算正在主導大資料計算引擎將企業帶入近乎實時資料環境。為此,阿里巴巴計算平臺事業部資深技術專家莫問在雲棲大會上指出,2014年Flink憑藉高吞吐、低延遲等其它高階功能而在開源大資料引擎界展露頭角,在2015年則將Flink引入團隊研發,期望將來可服務於自己的超大規模資料業務場景。
第二,阿里認識到Flink的開源技術基因與自己業務融合的落地空間。作為Apache的頂級大資料流式計算引擎,Flink並不孤獨。這兩年穀歌支援的Beam、DataTorrent支援Apache Apex都成了開源在這領域裡的佼佼者。同時,來自twitter的Storm、LinkedIn的Samza也憑藉獨特的優勢各領風騷。對此,阿里看到了其可以在Flink上發展的“非共識”空間,莫問認為使用者需要有一套統一的大資料引擎技術,只需要根據自己的業務邏輯開發一套程式碼,在各種不同的場景下,不管是全量資料還是增量資料,亦或者實時處理,一套方案即可全部支援。“這就是阿里選擇Flink的背景和初衷。”莫問表示。
第三,將Flink引入阿里全線業務,從而用場景優勢拓展了Flink技術棧前進空間。Flink最高成就顯然是以其在阿里的應用為佈局的。關於Flink在阿里巴巴的大規模應用,莫問披露,Flink最初上線阿里巴巴只有數百臺伺服器,目前規模已達上萬臺,此等規模在全球範圍內也是屈指可數;基於Flink,內部積累起來的狀態資料已經是PB級別規模;如今每天在Flink的計算平臺上,處理的資料已經超過萬億條;在峰值期間可以承擔每秒超過4.72億次的訪問,最典型的應用場景是阿里巴巴雙11大屏。
Flink技術支援了阿里雙十一購物節大屏顯示的海量實時計算結果
第四,阿里將Flink帶到前沿戰場,創新聚焦在真正變革上。在阿里著手改造Flink之前,Flink針對“一套統一的大資料引擎技術”已經初露端倪。大資料計算引擎在批處理與流式計算之間,最大的不在於資料進入計算引擎後,駐留快取的時間方式的不同,批處理取決於駐慢快取空間之後落地長期儲存,而流式計算旨在規定的時間或是容量內會將資料傳送到下一節點。Flink較同期方案,如Spark、Storm等,優勢就在於可以同時兼顧兩種方案計算於一套計算引擎,但無法“統一”為一個堆疊。為此,阿里巴巴在Flink上提出了新的統一API架構,採用DAG(有限無環圖)API。“整個拓撲是可以融合批流統一的語義表達,整個計算無需區分是流計算還是批計算,只需要表達自己的需求。”
Flink的未來,已經決定這阿里的技術基因走向。莫問在雲棲大會上提出了Flink的未來三個方向:首先,讓Flink在更多的場景下落地,成為一種主流的批計算引擎。然後進一步在流和批之間進行無縫的切換,流和批的界限越來越模糊。其次,讓Flink的生態上有更多語言的支援,不僅僅是Java,Scala語言,甚至是機器學習下用的Python,Go語言。還有,完善上層Flink的Machine Learning演算法庫,同時Flink往上層也會向成熟的機器學習、深度學習場景整合。
不難看出,Flink的技術優勢讓阿里看到了符合自己大規模業務場景支援的預期,未來深度學習場景的構建需要從現有批流融合,發展為更加開放和智慧的落地場景,不斷拓展Flink的生態。
阿里需要拓寬技術護城河
Flink專案是大資料處理領域最近冉冉升起的一顆新星。有關其技術優勢我們在《程式設計師》雜誌的《深入理解Flink核心技術》,以及阿里團隊發表在其雲棲社羣的兩篇文章《Flink已經足夠強大了嗎?阿里巴巴說:還不夠》和《阿里巴巴為什麼選擇Apache Flink?》中已經有了非常詳盡的解讀。
總結來看,Flink在2015年之前穩定性、安全性方面廣受質疑,阿里投入研發後,通過架構變革、創新中間業務層、整合計算流程、開發融合適配介面等等,Flink可以說迎來脫胎換骨的巨大發展優勢。
完成對Data Artisans的收購,阿里無疑可以進一步整合Flink的整個生態資源,作出更有利於Flink發展的規劃。不過,隨著Flink的一些競爭對手也陸續實現了阿里在技術上的領先優勢,Flink在帶給阿里未來強化大資料事實計算領先地位上,也充滿諸多未知數。
首先,收購前Flink有獨立供應商Data Artisans支援,開源貢獻使其技術發展路線容易符合更廣大使用者的預期。收購後阿里對Flink發展的擁有絕對權,其對社羣貢獻的參與積極性或相對減弱。
我們看到,這幾年Samza在LinkedIn開源後缺乏重量級使用者的加持而發展的舉步維艱。早在2014年成為頂級Apache流處理框架專案的它,在久前才進入自己的1.0階段,而此時Flink已經歷多次迭代到了1.8版本。LinkedIn的Sam Samza團隊負責人Samarth Shetty為此在Samza 1.0的釋出會上表示,當他們第一次找尋流處理時,現有的流處理框架很少能夠處理他們在LinkedIn上的規模或技術問題,“例如,我們必須在Samza中構建增量檢查點和主機關聯性等功能。當時在Apache Flink等框架中無法使用這些功能。”顯然,阿里在Apache Flink社羣貢獻已經改變了這一局面。如今,阿里掌控Flink一家獨大,對於平衡Flink的商業版和社羣之間的貢獻,或許會有新的變化。
再者,當下大資料流式計算技術突破競爭過於聚焦,阿里的技術護城河還需要有新的突破。例如,即使阿里當前得益於自己已經在YARN上實現了API的連線得以將其執行在資源管理器上,Samza則直接作為庫嵌入到應用程式中並在任何資源管理器上執行,從而讓計算引擎相對底層服務更加透明。除此之外,SQL支援現在成為流媒體的主戰場,Kafka和Spark都有了,致力於支援用SQL建立互動式shell。
第三,隨著大資料流式計算可以提供更快的資料決策,使用者針對傳統批處理模式正在加速向實時資料場景遷移,為此流式計算技術在做好創新架構突破的同時也要注意對傳統資料資產的有效銜接。諸如,Flink已經在其分散式的流式計算框架中實現了事物的ACID操作,有效解決的事物的分散式儲存環境的快取一致性和分散式鎖的概念。Data Artisans聯合創始人兼執行長Kostas Tzoumas表示,他們正為這一技術申請專利,“我們允許公司擺脫他們真正昂貴和複雜的Oracle資料庫,這些資料庫目前為他們提供ACID交易,並轉向允許您擴充套件的新技術,允許您實施自定義程式碼,”他同時表示:“但存在一些明顯的侷限性,例如Flink與Oracle資料庫不相容API。”
在這方面,Spark因為未能及時支援Spark結構流和高階會話處理的新API,從而讓Netflix的高階資料工程師Arora決定Netflix批量作業遷移選擇了Apache Flink的流式操作。
第四,阿里在獲得Flink商業所有權後,需要更為清晰且落地的Flink商業規劃。在這方面,Apex似乎是個很好的例子。DataTorrent將其RTS平臺的核心處理引擎在兩年前開放給Apache,當時其已經可以利用YARN實現按需規模伸縮且通過HDFS實現容錯能力。那是的Flink依舊顯得稚嫩呢。不過在隨後的發展中,DataTorrent表越來越激進,諸如DataTorrent執行長Guy Churchward宣佈DataTorrent標記的主要新功能包括通過與Druid整合擴充套件支援SQL和分析,通過Python和PMML實現更多機器學習和AI功能,通過與Drools整合支援複雜事件處理規則,以及儲存和重放以記錄和重放來自一個時間點等諸多功能,從平臺方向到應用軟體的創新讓DataTorrent的發展陷入一種混亂。在2018年2月,在Guy Churchward宣佈其將提供流媒體資料應用程式來實現顛覆性技術和顛覆性商業模式的90天后,DataTorrent破產了。顯然,由於流式計算和批處理在當下依然有著較為明確的作用場景,阿里極力致力於批流一體化的實現還需要有明確的場景支撐才會更有說服力。
第五,作為阿里雲最為有利的兩個競爭對手,Amazon或是微軟早已經實現託管的高速實時流分析服務,顯然阿里雲的流式計算堆疊Flink還需進一步完善。例如Amazon Kinesis可以從前端的應用伺服器(例如Web伺服器)或者移動的客戶端(手機等移動裝置或者IoT裝置)直接注入流式資料,資料可以通過EMR進行流式處理和計算(例如基於Spark Stream的EMR計算框架),並將資料儲存於Amazon DynamoDB或者物件儲存S3之上。
根據MarketInsightsReports的資料,預計到2025年全球流媒體分析市場將達到477.5億美元,從2017年到2025年將增長34.98%。而在IDC在一份新白皮書中表示,到2025年,將近30%的所謂“全球資料球”將成為實時資訊。而當下,大資料、AI、物理網正在加速推動流式計算整合到機器學習、人工智慧框架中。阿里巴巴基於 Flink 搭建的平臺於 2016 年正式上線,並從阿里巴巴的搜尋和推薦這兩大場景開始實現。目前阿里巴巴所有的業務,包括阿里巴巴所有子公司都採用了基於 Flink 搭建的實時計算平臺。可以相信,接下來, Flink將在阿里豐富的場景下,有著更快的發展。
去年的時候,馬雲在談到傳位於CEO張勇的時候,馬雲期望張勇可以帶給阿里更多技術基因,讓整個阿里在人們心中的定位更多有技術商業化的色彩。
對此,一直對這方面技術和投資動態有深入研究的國科嘉和基金執行董事吳一洲認為,這次併購是阿里在技術上的一個認真的思考和佈局,批流結合有其特定場景,公有云或者私有云都可以打包 flink 作為批/流平臺,能看出阿里對技術儲備的戰略意圖。同時,吳一洲也認為,這次併購更深遠的影響可能在於,之前公有云廠商薅開源羊毛,若持續吸收控制開源平臺,那麼未來開源軟體在公有云上的授權策略可能會發生變化。第三,再看遠一點,她認為很可能是大平臺儲備技術籌碼的開始,對未來雲服務的生態和格局會帶來影響。
更多精彩內容,關注鈦媒體微訊號(ID:taimeiti),或者下載鈦媒體App