每日最新頭條.有趣資訊

阿里為什麽要拿下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較同期方案,如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 作為批/流平台,能看出阿里對技術儲備的戰略意圖。同時,吳一洲也認為,這次並購更深遠的影響可能在於,之前公有雲廠商薅開源羊毛,若持續吸收控制開源平台,那麽未來開源軟體在公有雲上的授權策略可能會發生變化。第三,再看遠一點,她認為很可能是大平台儲備技術籌碼的開始,對未來雲服務的生態和格局會帶來影響。

獲得更多的PTT最新消息
按讚加入粉絲團