在Flink橫空出世之前,上一代流式計算引擎的名字叫Storm。Flink取而代之的關鍵在于它是一款有狀態(tài)的流計算,而Storm沒有。換句話說,除了低延遲、高吞吐的流計算能力,Flink還能夠將流計算與狀態(tài)存儲進行有機融合,從而在框架層支持整個流計算狀態(tài)的精準數據一致性。正因為如此,Flink很快擊敗Storm,受到開發(fā)者青睞,迅速成為Apache頂級項目。

不過,Flink真正的爆發(fā)始于2019年。彼時,Flink技術路線最早的擁躉之一——阿里收購了Flink背后的公司,成為Flink社區(qū)最大的推動者;同年,阿里將內部自研并演進多時的Flink分支Blink開源,一舉為Flink貢獻超百萬行代碼。特別是Stream SQL的注入,使得Flink社區(qū)也有了一套非常易用的Stream SQL,開發(fā)者們無需再寫高難度的Java代碼,大幅降低了開發(fā)門檻。

自那以后阿里在核心技術、人才培養(yǎng)、社區(qū)運營以及應用落地等維度持續(xù)發(fā)力,中國開發(fā)者大量涌入,推動Flink全球化生態(tài)實現爆發(fā)式增長。數據顯示,Flink迄今已有超過20萬開發(fā)者關注、超過100家國內外知名公司參與代碼貢獻,月度下載量峰值已突破1400萬次,形成了龐大的用戶和開發(fā)者生態(tài)。其中2022年阿里、騰訊、字節(jié)跳動等中國企業(yè)貢獻了超過一半的代碼;Flink社區(qū)在Github上產生的Pull Request有45%來自于中國開發(fā)者,表明中國開發(fā)者已經成為Flink全球化社區(qū)的中堅力量。

在中國開發(fā)者力量的大力驅動下,Flink從2020年開始已成為全球范圍內大數據實時計算業(yè)界的事實標準。如今只要想到實時流計算,基本上都會選擇Apache Flink。其應用也從早期的互聯(lián)網行業(yè)逐步擴展到政務、金融、制造、零售、交通出行、傳媒、游戲、科技等更多行業(yè)。短短數年間,Flink完成了一個開源項目從技術領先到生態(tài)領先的蛻變之旅!

從使用者到主導者,阿里引領Flink社區(qū)快速演進

眾所周知,開源社區(qū)是開源生態(tài)發(fā)展壯大的根基。中國不缺開發(fā)者,但長期以來在開源軟件領域的形象是世界開源大國,而不是開源強國,其中最顯著的標志是缺乏擁有主導權的開源社區(qū),無法定義和掌控核心項目的走向。近些年在政策及市場需求的驅動下,領先企業(yè)紛紛邁出了構建具有主導權的開源社區(qū)的步伐。阿里之于Flink社區(qū),正是其中的典型。

熟悉阿里業(yè)務的都知道,大數據實時計算可謂是阿里最顯著的標簽之一。比如每年雙11我們看到天貓交易大屏幕上顯示的那些跳動的實時成交數字,就是實時流計算的結果。那些瞬息變化的數字,需要匯總各個地方的海量報表、數據庫等數據,在毫秒級別的時間延遲內進行計算,并將計算結果匯總為單一的視圖呈現。此外諸如實時廣告、推薦、欺詐檢測、服務質量監(jiān)控等等,背后都有實時流計算的身影。

所以早在2015年阿里就開始調研Flink,并于2016年在雙11搜索推薦場景中首次使用,隨后利用Flink實現了搜索推薦和在線學習全鏈路實時化。2017年,Flink成為阿里集團內實時計算的標準解決方案。

2018年,阿里將Flink上云,開啟阿里云上基于Flink的商業(yè)化產品供給,以更好地為中小企業(yè)服務。同年,阿里將Flink的標桿大會Flink Forward引入中國并連續(xù)舉辦,讓廣大中國開發(fā)者與這個大數據領域的頂級技術大會零距離接觸,加速了Flink社區(qū)在中國的滲透。

然后是關鍵的2019年,阿里收購Flink背后的公司,并開源自己在Flink技術路線上潛心打造的Blink回饋社區(qū),以超百萬行代碼的貢獻在Runtime、SQL、PyFlink、ML等多個維度大幅提升了Flink的表現,隨后開始主導推進Flink的版本發(fā)布,攜手中國開發(fā)者力量開啟全球化社區(qū)建設之旅。同年阿里云推出全球統(tǒng)一的Flink企業(yè)版平臺Ververica Platform,持續(xù)在開源產品化方面發(fā)力。

2020年,阿里將“壓箱底”的Blink內核也合并到Flink內核中,同時發(fā)起Apache Flink中文社區(qū),全面支持開源社區(qū)的全球化發(fā)展。當年雙11,Flink包攬了阿里集團內部所有的全鏈路實時化解決方案,規(guī)模達到百萬級CPU Core,實時數據處理峰值創(chuàng)下40億條記錄/秒的新紀錄。自那時起,隨著阿里云的產品和內部服務都基于開源的Flink內核來實現,AWS、Cloudera等云計算和大數據廠商均將Flink內置為標準的云產品,Flink成為事實上的全球實時計算標準!

數據顯示,截至目前阿里與Ververica共同主導了211個FLIP,貢獻了Flink 70%以上的核心改進;累計培養(yǎng)了近70位Flink核心貢獻者 (含項目管理委員會PMC成員和活躍貢獻者committer),占比超70%;連續(xù)舉辦了4屆FFA大會 (Flink Forward Asia)及各種開發(fā)者活動,大力推廣Flink生態(tài);通過阿里云上的Flink云產品和Flink企業(yè)版平臺Ververica Platform,推動了Flink在各行各業(yè)的規(guī)模落地……可以說在方方面面都發(fā)揮了關鍵推手的作用。

至此,阿里從使用開源、貢獻開源到主導開源,蹚出了一條構建具有主導權的開源社區(qū)的成功路徑,向世界證明了中國的技術、人才和應用生態(tài)不僅可以和世界開源社區(qū)接軌,而且還能引領全球化開源社區(qū)的快速演進、蓬勃發(fā)展。

向“流式數倉”演進,加速“流批一體”時代到來

當然必須意識到,開源世界的技術更迭是無比迅捷的。從Hadoop、Hive到Storm再到Spark、Flink,從批處理到流計算再到“流批一體”,技術架構與市場需求總是在做雙向選擇,稍不留神就有可能被“后浪”拍死在沙灘上??傮w來看,如今無論是批處理還是流計算出生的技術架構,都在將流批一體作為努力方向,力爭以一套引擎同時滿足實時和離線計算需求。

有鑒于此,阿里在2019年將Blink代碼貢獻給Flink后,便著手從1.9版本開始主導推動Flink流批一體融合,包括在API層面實現SQL與DataStream的流批統(tǒng)一,用戶只需寫一份代碼即可運行在流模式或是批模式;在架構層面實現一個作業(yè)同時處理有限數據集和無限數據集,并且同時對接流式存儲和批式存儲,一套代碼處理兩套數據源;在運行層面做到一套調度框架同時適用于流和批的作業(yè)……

在阿里巴巴開源委員會副主席、阿里云開源大數據平臺負責人、Flink中文社區(qū)發(fā)起人王峰看來,下一階段Flink社區(qū)新的機會點是繼續(xù)提升一體化的體驗,解決存儲層割裂的問題,來實現一套實時數據鏈路。通過Flink流批一體的SQL和流批一體的存儲,構建一套真正一體化體驗的流式數倉 (Streaming Warehouse)。

而實現流式數倉的關鍵在于打造生產可用的流批一體存儲,同時支持高效的流讀、流寫、批讀、批寫,讓數倉的數據流動起來。為此阿里在2022年發(fā)起Flink Table Store (現已更名為Paimon)項目,旨在實現流批一體的存儲能力,推動Flink從流式計算走向流式數倉,使得用戶在整個全鏈路的開發(fā)過程中都可以擁有全增量一體化的開發(fā)體驗,以及統(tǒng)一的數據存儲和管理體系,實現“終極”的流批一體。

毋庸諱言,以流式數倉為代表的流批一體時代一旦到來,將不僅意味著業(yè)務開發(fā)效率和計算性能的進步,也會讓計算集群的資源利用率得到進一步提升。畢竟,批和流一套引擎,運行在一套資源底座上,不僅會節(jié)省開發(fā)和運維成本,同時也會大幅節(jié)省計算所耗的資源成本——這在算力昂貴的數智經濟時代別提有多重要。阿里引領下的Flink社區(qū)以此為演進目標,足見背后的雄心壯志。

小結:

“中國開發(fā)群體走向哪里,哪里就有可能成為制高點?!敝袊茖W院院士王懷民在2022開放原子開源峰會上指出,“中國開發(fā)者在世界開源領域所扮演的角色,正在從項目主要參與者演變?yōu)橐恍┚哂写硇缘拈_源項目的發(fā)起者和主導者?!睆腇link這個阿里代表性的開源實踐案例看,這一論斷正在被現實驗證,崛起的中國開發(fā)者推動了Flink的狂飆,正在全球開源舞臺扮演更重要的角色!

深究這一切發(fā)生的底層邏輯,正如開篇所說,商業(yè)巨頭主導是推動開源項目生態(tài)繁榮的關鍵。當云與開源在新的計算時代互相吸引,浪潮之巔的云巨頭有能力也有責任構建具有主導權的開源社區(qū),將先進的開源技術以更低的門檻推向更廣闊的市場。事實也表明,領先的云廠商正在成為開源的引領者,以云+開源構筑數字世界的根基,支撐各行各業(yè)開發(fā)者擁抱云與開源,加速邁向數智未來。

分享到

崔歡歡

相關推薦