傅和安
“從開源中來,到開源中去”,這種近乎烏托邦式的技術理念,支撐國際開源走過30年發(fā)展歷程。放眼國內(nèi),中國開源起步較晚,但也有20年歷史。
起初,中國開源軟件并不受重視,開發(fā)者在社區(qū)的地位很低,很多人甚至認為中國開發(fā)者奉行的都是“拿來主義”,索取多貢獻少。的確,在很長一段時間里,中國基礎軟件依賴國外開源軟件生態(tài)而生存,包括操作系統(tǒng)、數(shù)據(jù)庫和編程語言等。但隨著中國開源力量的崛起,中國開發(fā)者的身影不僅出現(xiàn)在Linux、MySQL、Python等基礎應用領域,在以大數(shù)據(jù)、云計算為核心的世界頂尖級項目上,也同樣具備話語權,甚至已占據(jù)領導者地位。
前不久,開源大數(shù)據(jù)引擎Flink社區(qū)公布最新數(shù)據(jù),F(xiàn)link的Github Star數(shù)和貢獻者人數(shù)每年正以超30 %的速度增長,Github Star數(shù)超20 000個,已有上千名貢獻者(contributors)加入,月下載量峰值突破1 400萬次,連續(xù)兩年蟬聯(lián)Apache基金會財年報告最活躍項目。
看似平淡無奇的2022年,開源生態(tài)卻在悄然布局。數(shù)據(jù)顯示,F(xiàn)link有20萬開發(fā)者關注,超過100家國內(nèi)外知名公司參與代碼貢獻,已形成了龐大的用戶和開發(fā)者生態(tài)。有意思的是,中國開發(fā)者已成為Flink全球化社區(qū)的中堅力量,阿里巴巴、騰訊和字節(jié)跳動等中國企業(yè)貢獻了超過一半的代碼。其中,阿里巴巴對Flink核心代碼貢獻最大。
可以說,F(xiàn)link能有今天的發(fā)展,和阿里的全力推進密切相關。在核心技術方面,阿里巴巴主導了211個FLIP,貢獻了Flink 70 %以上的核心改進。人才培養(yǎng)方面,阿里聯(lián)合Ververica累計培養(yǎng)了近70位Flink核心貢獻者(含項目管理委員會PMC成員和活躍貢獻者committer),占比超過70 %。社區(qū)運營方面,阿里在2018年把Flink社區(qū)官方技術大會Flink Forward引入亞洲。在2019-2022年間,阿里連續(xù)舉辦了4屆FFA大會(Flink Forward Asia);同時還不定期舉辦各種類型線下Meetup,已累計上百場。應用落地方面,阿里云基于Flink推出了實時計算Flink云產(chǎn)品和全球統(tǒng)一的Flink企業(yè)版平臺Ververica Platform,推動Flink走向各行各業(yè)。
作為Flink的最早一批“忠粉兒”,阿里為之傾注的心血最多,甚至不惜把“自己的孩子”拱手相送,把Blink內(nèi)核并入到Flink中。2016年,基于Flink搭建的平臺正式上線,并率先應用于阿里的搜索和推薦兩大場景。2019年,阿里將內(nèi)部研發(fā)的Flink分支Blink正式開源,為Flink貢獻了超過百萬行代碼;同年,阿里收購Flink母公司Data Artisans(后更名為Ververica),成為Flink社區(qū)最大的推動者。
如何更好地滿足大促期間的實時大數(shù)據(jù)更新?在追求數(shù)據(jù)處理速度這條道路上,阿里從未停止探索!所以,當Flink誕生,阿里很自然地成為了那個“敢吃螃蟹”的人。只不過,最初Apache Flink版本的體驗并不友好,使用起來非常不方便,有些復雜功能不能用SQL直接實現(xiàn),同時在規(guī)模和應用方面還缺少實踐的檢驗。為了讓Flink快速走進實際業(yè)務場景,阿里巴巴在性能和穩(wěn)定性方面做了諸多優(yōu)化,除了供企業(yè)內(nèi)部使用,還通過阿里云向整個開發(fā)者生態(tài)提供基于Flink的云產(chǎn)品支持,這便是早期的Blink。
說白了,F(xiàn)link能成為阿里的“專寵”,成為大數(shù)據(jù)領域最火爆的開源項目,根本原因只有一個,那就是流批一體趨勢的推動。
大數(shù)據(jù)的高速發(fā)展已走過10年,未來會強調(diào)從計算的規(guī)?;呦驍?shù)據(jù)流動的實時化。以“雙11”為例,通過大屏實時展示交易額、成交額,并實現(xiàn)毫秒級更新,已成為業(yè)務場景的“剛需”。包括在銀行、證券等核心的金融業(yè)務場景,實時計算可以更好地監(jiān)控交易行為,進行反作、弊反洗錢等行為的探測。
實時計算能夠支持日常生活中涉及的各個場景,背后需要一套極其強大的大數(shù)據(jù)計算能力,F(xiàn)link在此種背景下應運而生。因為傳統(tǒng)的Hadoop、Spark等計算引擎,本質(zhì)上是批計算引擎,只能對有限的數(shù)據(jù)集進行數(shù)據(jù)處理,延時性不能保證。而Flink從設計之初就從流計算開啟,可以實時查閱生產(chǎn)場景中的數(shù)據(jù),并對數(shù)據(jù)進行實時分析,讓數(shù)據(jù)在第一時間發(fā)揮價值。憑借強大一致性的計算能力、大規(guī)模的擴展性、整體性能卓越等特性,F(xiàn)link瞬間贏得廣大用戶的青睞。
Flink最早應用于國內(nèi)外的互聯(lián)網(wǎng)場景,除了國內(nèi)的阿里巴巴、騰訊和字節(jié)跳動等企業(yè),國外的Apple、Capital One、eBay、Ericsson等全球知名公司也在使用Flink處理實時數(shù)據(jù)。從社區(qū)的活躍度來看,F(xiàn)link大有取代傳統(tǒng)計算引擎的趨勢,很多企業(yè)不僅把Flink應用于流式的數(shù)據(jù)分析,還擴展到流式的數(shù)倉、數(shù)據(jù)庫。
問題是,流的場景問題解決了,那批的計算場景怎么辦?Flink也有更多考慮,那就是通過“流”來模擬“批”。Flink的核心API最初是針對特定的場景設計的,盡管針對流處理和批處理已經(jīng)實現(xiàn)了統(tǒng)一API,但用戶在使用較底層的API時,仍然需要在批處理(DataSet API)和流處理(DataStream API)之間進行選擇。鑒于批處理是流處理的一種特例,社區(qū)朝著流批統(tǒng)一的DataStream API邁出了第一步,全面支持高效的批處理。在Apache Flink1.12版本推出時,流批一體真正統(tǒng)一運行。
正如阿里巴巴開源委員會副主席、阿里云開源大數(shù)據(jù)平臺負責人王峰所言,F(xiàn)link擊敗Storm成為新一代流計算引擎的關鍵點在于,它是一款有狀態(tài)的流計算,除了低延遲、高吞吐的流計算能力,它能將流計算和狀態(tài)存儲進行有機融合,從而在框架層支持整個流計算狀態(tài),確保數(shù)據(jù)的精準以及一致性體驗。
而從實際業(yè)務角度來看,F(xiàn)link流批一體架構(gòu)的推出,不只是簡單的技術架構(gòu)革新,而是從根本上解決了實際場景的生產(chǎn)可用性問題。以小米為例,引入Flink之前,小米的實時計算主要以SparkStreaming為主,少部分是Storm,離線以Spark為主。2019年以后,小米將Flink廣泛應用于信息流搜索推薦、廣告實時樣本和實時ETL等場景,逐步替換了原來的SparkStreaming。基于Flink架構(gòu)的各種優(yōu)勢,極大地滿足了業(yè)務需求,提升了資源的使用率。2020年,企業(yè)開始使用FlinkSQL,用于實時數(shù)倉建設和實時ETL開發(fā),讓整個數(shù)據(jù)鏈路由T+1降到秒級。2021年,企業(yè)開始接入數(shù)據(jù)湖Iceberg,通過Flink和Iceberg構(gòu)建流批一體的實時數(shù)據(jù)倉庫解決方案。小米今天實時的業(yè)務響應能力說明,流批一體架構(gòu)在開發(fā)效率提升、數(shù)據(jù)鏈路簡化等方面擁有絕對的優(yōu)勢。
很明顯,作為全球最受歡迎的開源軟件之一,F(xiàn)link已經(jīng)占據(jù)新一代流計算的霸主地位,但實時計算的創(chuàng)新并不會止步于此。Flink正在通過流批一體的SQL、流批一體的存儲以及全鏈路的流式數(shù)倉(Streaming Data Warehouse)不斷提升用戶體驗。
從發(fā)展淵源來看,互聯(lián)網(wǎng)領域是Flink誕生的“搖籃”。根據(jù)不完全統(tǒng)計,使用Flink的非互聯(lián)網(wǎng)企業(yè)占比已超過30 %。在互聯(lián)網(wǎng)用戶的帶領下,傳統(tǒng)行業(yè)也在加入Flink實時計算的浪潮。目前,F(xiàn)link已在政務、金融、制造、零售、交通出行、傳媒、游戲和科技等行業(yè)大規(guī)模應用,幫助上千家全球企業(yè)更高效地進行實時業(yè)務升級。
如今,F(xiàn)link已更新到1.16版本,部分子項目已更新到2.1.0版本,不管在易用性、穩(wěn)定性和性能方面,都得到全方位的改進,常被用戶詬病的多個痛點問題也得以解決。同時,F(xiàn)link社區(qū)也在一步步地推動Streaming Data Warehouse從概念變?yōu)楝F(xiàn)實,并走向成熟。
針對Flink未來發(fā)展,阿里巴巴將秉承初心,積極擁抱開源,貢獻開源、引領開源。另外,流批一體將會是Flink未來主攻的一個重要方向。
“Flink是阿里代表性開源項目之一,未來會持續(xù)對其進行投入。我們會繼續(xù)朝著Streaming Data Warehouse的方向努力,真正意義上完成流批一體計算與存儲的融合,讓數(shù)倉的數(shù)據(jù)流動起來,為全球的用戶提供更優(yōu)質(zhì)的服務與支持?!蓖醴灞硎?。
總之,滾滾歷史洪流中,有爭議、有吵鬧,有憤懣不平的由開源到閉源,但整體趨勢向好。Flink今天的成功,再次證明開源對社會的發(fā)展、對技術創(chuàng)新帶來的推動作用,有目共睹。這種免費、靈活、安全和可靠的服務形式,使得諸多用戶得以更加經(jīng)濟、高效地使用軟件,進而快速邁向數(shù)字化轉(zhuǎn)型征程中。尤其,當開源軟件與云計算、云原生技術相互促進、交匯發(fā)展,使技術創(chuàng)新浪潮再次迸發(fā),中國開發(fā)者開始以更加積極的心態(tài)擁抱開源,并成為開源世界的中堅力量。