傅和安
“從開源中來,到開源中去”,這種近乎烏托邦式的技術(shù)理念,支撐國際開源走過30年發(fā)展歷程。放眼國內(nèi),中國開源起步較晚,但也有20年歷史。
起初,中國開源軟件并不受重視,開發(fā)者在社區(qū)的地位很低,很多人甚至認(rèn)為中國開發(fā)者奉行的都是“拿來主義”,索取多貢獻(xiàn)少。的確,在很長一段時(shí)間里,中國基礎(chǔ)軟件依賴國外開源軟件生態(tài)而生存,包括操作系統(tǒng)、數(shù)據(jù)庫和編程語言等。但隨著中國開源力量的崛起,中國開發(fā)者的身影不僅出現(xiàn)在Linux、MySQL、Python等基礎(chǔ)應(yīng)用領(lǐng)域,在以大數(shù)據(jù)、云計(jì)算為核心的世界頂尖級(jí)項(xiàng)目上,也同樣具備話語權(quán),甚至已占據(jù)領(lǐng)導(dǎo)者地位。
前不久,開源大數(shù)據(jù)引擎Flink社區(qū)公布最新數(shù)據(jù),F(xiàn)link的Github Star數(shù)和貢獻(xiàn)者人數(shù)每年正以超30 %的速度增長,Github Star數(shù)超20 000個(gè),已有上千名貢獻(xiàn)者(contributors)加入,月下載量峰值突破1 400萬次,連續(xù)兩年蟬聯(lián)Apache基金會(huì)財(cái)年報(bào)告最活躍項(xiàng)目。

看似平淡無奇的2022年,開源生態(tài)卻在悄然布局。數(shù)據(jù)顯示,F(xiàn)link有20萬開發(fā)者關(guān)注,超過100家國內(nèi)外知名公司參與代碼貢獻(xiàn),已形成了龐大的用戶和開發(fā)者生態(tài)。有意思的是,中國開發(fā)者已成為Flink全球化社區(qū)的中堅(jiān)力量,阿里巴巴、騰訊和字節(jié)跳動(dòng)等中國企業(yè)貢獻(xiàn)了超過一半的代碼。其中,阿里巴巴對(duì)Flink核心代碼貢獻(xiàn)最大。
可以說,F(xiàn)link能有今天的發(fā)展,和阿里的全力推進(jìn)密切相關(guān)。在核心技術(shù)方面,阿里巴巴主導(dǎo)了211個(gè)FLIP,貢獻(xiàn)了Flink 70 %以上的核心改進(jìn)。人才培養(yǎng)方面,阿里聯(lián)合Ververica累計(jì)培養(yǎng)了近70位Flink核心貢獻(xiàn)者(含項(xiàng)目管理委員會(huì)PMC成員和活躍貢獻(xiàn)者committer),占比超過70 %。社區(qū)運(yùn)營方面,阿里在2018年把Flink社區(qū)官方技術(shù)大會(huì)Flink Forward引入亞洲。在2019-2022年間,阿里連續(xù)舉辦了4屆FFA大會(huì)(Flink Forward Asia);同時(shí)還不定期舉辦各種類型線下Meetup,已累計(jì)上百場。應(yīng)用落地方面,阿里云基于Flink推出了實(shí)時(shí)計(jì)算Flink云產(chǎn)品和全球統(tǒng)一的Flink企業(yè)版平臺(tái)Ververica Platform,推動(dòng)Flink走向各行各業(yè)。
作為Flink的最早一批“忠粉兒”,阿里為之傾注的心血最多,甚至不惜把“自己的孩子”拱手相送,把Blink內(nèi)核并入到Flink中。2016年,基于Flink搭建的平臺(tái)正式上線,并率先應(yīng)用于阿里的搜索和推薦兩大場景。2019年,阿里將內(nèi)部研發(fā)的Flink分支Blink正式開源,為Flink貢獻(xiàn)了超過百萬行代碼;同年,阿里收購Flink母公司Data Artisans(后更名為Ververica),成為Flink社區(qū)最大的推動(dòng)者。
如何更好地滿足大促期間的實(shí)時(shí)大數(shù)據(jù)更新?在追求數(shù)據(jù)處理速度這條道路上,阿里從未停止探索!所以,當(dāng)Flink誕生,阿里很自然地成為了那個(gè)“敢吃螃蟹”的人。只不過,最初Apache Flink版本的體驗(yàn)并不友好,使用起來非常不方便,有些復(fù)雜功能不能用SQL直接實(shí)現(xiàn),同時(shí)在規(guī)模和應(yīng)用方面還缺少實(shí)踐的檢驗(yàn)。為了讓Flink快速走進(jìn)實(shí)際業(yè)務(wù)場景,阿里巴巴在性能和穩(wěn)定性方面做了諸多優(yōu)化,除了供企業(yè)內(nèi)部使用,還通過阿里云向整個(gè)開發(fā)者生態(tài)提供基于Flink的云產(chǎn)品支持,這便是早期的Blink。
說白了,F(xiàn)link能成為阿里的“專寵”,成為大數(shù)據(jù)領(lǐng)域最火爆的開源項(xiàng)目,根本原因只有一個(gè),那就是流批一體趨勢的推動(dòng)。
大數(shù)據(jù)的高速發(fā)展已走過10年,未來會(huì)強(qiáng)調(diào)從計(jì)算的規(guī)模化走向數(shù)據(jù)流動(dòng)的實(shí)時(shí)化。以“雙11”為例,通過大屏實(shí)時(shí)展示交易額、成交額,并實(shí)現(xiàn)毫秒級(jí)更新,已成為業(yè)務(wù)場景的“剛需”。包括在銀行、證券等核心的金融業(yè)務(wù)場景,實(shí)時(shí)計(jì)算可以更好地監(jiān)控交易行為,進(jìn)行反作、弊反洗錢等行為的探測。
實(shí)時(shí)計(jì)算能夠支持日常生活中涉及的各個(gè)場景,背后需要一套極其強(qiáng)大的大數(shù)據(jù)計(jì)算能力,F(xiàn)link在此種背景下應(yīng)運(yùn)而生。因?yàn)閭鹘y(tǒng)的Hadoop、Spark等計(jì)算引擎,本質(zhì)上是批計(jì)算引擎,只能對(duì)有限的數(shù)據(jù)集進(jìn)行數(shù)據(jù)處理,延時(shí)性不能保證。而Flink從設(shè)計(jì)之初就從流計(jì)算開啟,可以實(shí)時(shí)查閱生產(chǎn)場景中的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)分析,讓數(shù)據(jù)在第一時(shí)間發(fā)揮價(jià)值。憑借強(qiáng)大一致性的計(jì)算能力、大規(guī)模的擴(kuò)展性、整體性能卓越等特性,F(xiàn)link瞬間贏得廣大用戶的青睞。
Flink最早應(yīng)用于國內(nèi)外的互聯(lián)網(wǎng)場景,除了國內(nèi)的阿里巴巴、騰訊和字節(jié)跳動(dòng)等企業(yè),國外的Apple、Capital One、eBay、Ericsson等全球知名公司也在使用Flink處理實(shí)時(shí)數(shù)據(jù)。從社區(qū)的活躍度來看,F(xiàn)link大有取代傳統(tǒng)計(jì)算引擎的趨勢,很多企業(yè)不僅把Flink應(yīng)用于流式的數(shù)據(jù)分析,還擴(kuò)展到流式的數(shù)倉、數(shù)據(jù)庫。

問題是,流的場景問題解決了,那批的計(jì)算場景怎么辦?Flink也有更多考慮,那就是通過“流”來模擬“批”。Flink的核心API最初是針對(duì)特定的場景設(shè)計(jì)的,盡管針對(duì)流處理和批處理已經(jīng)實(shí)現(xiàn)了統(tǒng)一API,但用戶在使用較底層的API時(shí),仍然需要在批處理(DataSet API)和流處理(DataStream API)之間進(jìn)行選擇。鑒于批處理是流處理的一種特例,社區(qū)朝著流批統(tǒng)一的DataStream API邁出了第一步,全面支持高效的批處理。在Apache Flink1.12版本推出時(shí),流批一體真正統(tǒng)一運(yùn)行。
正如阿里巴巴開源委員會(huì)副主席、阿里云開源大數(shù)據(jù)平臺(tái)負(fù)責(zé)人王峰所言,F(xiàn)link擊敗Storm成為新一代流計(jì)算引擎的關(guān)鍵點(diǎn)在于,它是一款有狀態(tài)的流計(jì)算,除了低延遲、高吞吐的流計(jì)算能力,它能將流計(jì)算和狀態(tài)存儲(chǔ)進(jìn)行有機(jī)融合,從而在框架層支持整個(gè)流計(jì)算狀態(tài),確保數(shù)據(jù)的精準(zhǔn)以及一致性體驗(yàn)。
而從實(shí)際業(yè)務(wù)角度來看,F(xiàn)link流批一體架構(gòu)的推出,不只是簡單的技術(shù)架構(gòu)革新,而是從根本上解決了實(shí)際場景的生產(chǎn)可用性問題。以小米為例,引入Flink之前,小米的實(shí)時(shí)計(jì)算主要以SparkStreaming為主,少部分是Storm,離線以Spark為主。2019年以后,小米將Flink廣泛應(yīng)用于信息流搜索推薦、廣告實(shí)時(shí)樣本和實(shí)時(shí)ETL等場景,逐步替換了原來的SparkStreaming?;贔link架構(gòu)的各種優(yōu)勢,極大地滿足了業(yè)務(wù)需求,提升了資源的使用率。2020年,企業(yè)開始使用FlinkSQL,用于實(shí)時(shí)數(shù)倉建設(shè)和實(shí)時(shí)ETL開發(fā),讓整個(gè)數(shù)據(jù)鏈路由T+1降到秒級(jí)。2021年,企業(yè)開始接入數(shù)據(jù)湖Iceberg,通過Flink和Iceberg構(gòu)建流批一體的實(shí)時(shí)數(shù)據(jù)倉庫解決方案。小米今天實(shí)時(shí)的業(yè)務(wù)響應(yīng)能力說明,流批一體架構(gòu)在開發(fā)效率提升、數(shù)據(jù)鏈路簡化等方面擁有絕對(duì)的優(yōu)勢。
很明顯,作為全球最受歡迎的開源軟件之一,F(xiàn)link已經(jīng)占據(jù)新一代流計(jì)算的霸主地位,但實(shí)時(shí)計(jì)算的創(chuàng)新并不會(huì)止步于此。Flink正在通過流批一體的SQL、流批一體的存儲(chǔ)以及全鏈路的流式數(shù)倉(Streaming Data Warehouse)不斷提升用戶體驗(yàn)。
從發(fā)展淵源來看,互聯(lián)網(wǎng)領(lǐng)域是Flink誕生的“搖籃”。根據(jù)不完全統(tǒng)計(jì),使用Flink的非互聯(lián)網(wǎng)企業(yè)占比已超過30 %。在互聯(lián)網(wǎng)用戶的帶領(lǐng)下,傳統(tǒng)行業(yè)也在加入Flink實(shí)時(shí)計(jì)算的浪潮。目前,F(xiàn)link已在政務(wù)、金融、制造、零售、交通出行、傳媒、游戲和科技等行業(yè)大規(guī)模應(yīng)用,幫助上千家全球企業(yè)更高效地進(jìn)行實(shí)時(shí)業(yè)務(wù)升級(jí)。
如今,F(xiàn)link已更新到1.16版本,部分子項(xiàng)目已更新到2.1.0版本,不管在易用性、穩(wěn)定性和性能方面,都得到全方位的改進(jìn),常被用戶詬病的多個(gè)痛點(diǎn)問題也得以解決。同時(shí),F(xiàn)link社區(qū)也在一步步地推動(dòng)Streaming Data Warehouse從概念變?yōu)楝F(xiàn)實(shí),并走向成熟。
針對(duì)Flink未來發(fā)展,阿里巴巴將秉承初心,積極擁抱開源,貢獻(xiàn)開源、引領(lǐng)開源。另外,流批一體將會(huì)是Flink未來主攻的一個(gè)重要方向。
“Flink是阿里代表性開源項(xiàng)目之一,未來會(huì)持續(xù)對(duì)其進(jìn)行投入。我們會(huì)繼續(xù)朝著Streaming Data Warehouse的方向努力,真正意義上完成流批一體計(jì)算與存儲(chǔ)的融合,讓數(shù)倉的數(shù)據(jù)流動(dòng)起來,為全球的用戶提供更優(yōu)質(zhì)的服務(wù)與支持?!蓖醴灞硎?。
總之,滾滾歷史洪流中,有爭議、有吵鬧,有憤懣不平的由開源到閉源,但整體趨勢向好。Flink今天的成功,再次證明開源對(duì)社會(huì)的發(fā)展、對(duì)技術(shù)創(chuàng)新帶來的推動(dòng)作用,有目共睹。這種免費(fèi)、靈活、安全和可靠的服務(wù)形式,使得諸多用戶得以更加經(jīng)濟(jì)、高效地使用軟件,進(jìn)而快速邁向數(shù)字化轉(zhuǎn)型征程中。尤其,當(dāng)開源軟件與云計(jì)算、云原生技術(shù)相互促進(jìn)、交匯發(fā)展,使技術(shù)創(chuàng)新浪潮再次迸發(fā),中國開發(fā)者開始以更加積極的心態(tài)擁抱開源,并成為開源世界的中堅(jiān)力量。
