開發與維運

實時化或成必然趨勢?新一代 Serverless 實時計算引擎

作者:高暘(吾與),阿里巴巴高級產品專家

本文由阿里巴巴高級產品專家高暘(吾與)分享,主要介紹新一代Serverless實時計算引擎的產品特性及核心功能。

一.實時計算 Flink 版 – 產品定位與目標

圖片 1.png

首先,介紹一下實時計算Flink版產品定位與目標。近些年來可以明顯的看到大數據技術整體發展趨勢是“實時化”。

  • 在線應用,越來越多的業務場景和應用都逐漸演變為在線的應用,比如直播、短視頻等都更強調實時化。
  • 在線ML,機器學習也從傳統的離線機器學習向在線機器學習演進。
  • 微服務化,微服務現在也非常流行在算法層面做充分的解耦。
  • 實時風控,如金融風控、內容安全的風控以及純粹安全角度的風控等也在逐步發展為實時化。
  • 實時ETL,實時數據的抽取、過濾、聚合,然後產生結果。
  • 實時數倉,T+1的數據報表已無法滿足客戶當前需求,需要從整體包括實時鏈路增量數據的統一維度來做聯邦查詢,突出統一的報表,隨之衍生出來的實時數倉。

從整個技術棧的發展情況可以看到實時化已經成為大數據技術發展的必然趨勢,Flink主打的也是實時化場景。

其次,Apache Flink已經成為國內實時計算的事實標準。目前,阿里雲實時計算 Flink 版已經在國家相關部門進行國標、院標的申請,如實時計算標準、融合計算標準,包括了流計算、批計算、ML、圖計算等。可以看到很多國內主要的互聯網公司都在使用 Flink 或阿里雲實時計算 Flink 版。傳統的金融公司、大型製造業等隨著在線支付、5G的到來、車聯網的引入,也開始探索引入大數據的實時化,採用 Flink 作為數據計算的核心引擎。

第三,阿里巴巴一直在主導Flink社區,積極推進Flink技術演進並全力投入Flink社區運營。2019年1月,阿里巴巴完成了對 Flink 創始團隊,即Flink商業化母公司Ververica的收購。可以看到從2019年開始阿里雲包括整個阿里集團開始對 Flink社區進行大量的投入。

  • 貢獻代碼300萬+行
  • 舉辦 Flink 社區 Meetup 並引入 Flink 品牌大會 Flink Forward
  • 全球最大的 Flink Committer / PMC 團隊
  • 開源社區的引導者

第四,從當前主流的計算引擎來看,每款開源產品背後都有一家商業化公司為其提供支撐。像Databricks與開源Spark, Confluent與開源Kafka關係類似,阿里雲實時計算Flink版是開源Flink的商業化品牌,為企業及客戶提供一站式實時計算商業化解決方案及雲上SLA保障。

二.實時計算 Flink 版 – 產品功能介紹

圖片 2.png

接下來主要介紹實時計算Flink版的核心產品功能。Ververica Platform源自於德國Apache Flink創始團隊,是一個非常成熟的、穩定的,經過海外多年企業級客戶使用和打磨錘鍊的商業化產品。今年被引入到中國地區做商業化落地,它主要分為三個部分:

1.開發模塊

  • SQL開發平臺:近些年,大數據開發逐漸SQL化,從商業分析師到業務人員都可以通過SQL快速介入到業務邏輯的開發處理,極大提升了效率並且節省了人力。
  • Job作業全生命週期管理:從作業的提交到停止,整個生命週期上傳下載,都可以進行管理。
  • 圖形化 Metrics:開源社區的Flink提供的監控指標相對較少,而商業化產品做了大量的埋點,可以看到很細膩的指標。
  • 豐富的Connectors:支持數據轉變成實時化,充分挖掘數據資產,可以做更多的分析,激活商機促成轉化。

2.運維模塊

  • 全鏈路監控報警:對於公司包括銀行,全鏈路的監控十分重要。尤其是上了生產系統以後,對全鏈路的指標監控報警要求極高,也是 Ververica Platform非常重要的功能之一。
  • OIDC & RBAC:權限認證,從互聯網行業向或傳統行業來看,深度上雲時傳統企業對權限的管控、訪問管理要求嚴格,OIDC & RBAC可完全匹配金融或者銀行、保險公司的要求。
  • 智能化配置調優:配合SQL開發平臺,使用智能化調優的功能可自動通過內置的規則引擎幫助客戶調整一些主要配置參數,使作業的資源配置或資源消耗達到最優性價比。 既能夠省資源,又能夠高效地完成作業。
  • 彈性資源管理:從作業task manager到job manager,做資源的彈性管理,即客戶負載較高的時候,可以申請更多資源;負載低的時候可以釋放多餘的資源,提高資源利用率,節省成本。

3.性能

  • SQL引擎優化:與開源 Flink 相比,商業版的SQL更加強大。
  • 執行引擎的優化:專業的 Runtime 團隊對網絡和shuffer部分進行持續優化。
  • 存儲引擎優化:商業版的Gemini存儲引擎在一些標杆的客戶現場的做過驗證和測試,整體上商業版Flink的性能是開源Flink性能的三倍。

4.底座

實時計算Flink版可以基於整個阿里雲計算平臺的EMR平臺,也可以基於K8S容器平臺,包括最新的按量計費Serverless底座等,基於安全容器隔離,彈性伸縮能力更強。

三.實時計算 Flink 版 功能使用詳解

1.SQL 集成

圖片 3.png

大數據處理的交互界面,當前業界普遍的共識或傾向是SQL。SQL整體更簡單,門檻更低,數據分析師、業務人員可以快速上手,大幅度提高人效和開發效率。

上圖綠色界面,是德國團隊開發的Ververica Platform,整體界面風格簡潔直接,沒有過多繁雜冗餘的交互。目前Ververica Platform提供豐富的SQL語義支持,包括支持DML及DDL等完整的SQL語義。

2.DataStream 作業管理

圖片 4.png

Ververica Platform支持各種作業提交方式。有標準模式及高級模式。在提交的過程中可以靈活選擇各種參數及配置。目前Ververica Platform支持各種內核,既可以支持開源內核(例如:開源Flink v1.10、Flink v1.11以及未來的開源版本),也支持商業化內核(例如: Ververica Runtime) 。當然商業化內核在性能和功能上有更多的插件化增強,可實現對客戶作業的完美兼容。

圖片 5.png

這部分主要是參數配置:資源配置和日誌配置,還有作業管理。

3.自動調優Auto-Pilot

圖片 6.png

Auto-Pilot可以針對SQL、DataStream的作業,自動打開Auto-Pilot功能,可以在系統中自動幫客戶調整併發度、CPU使用量、內存使用量等。

4. UDF管理

圖片 7.png

通常情況下UDF配合SQL可以實現客戶80%的場景。當然客戶可能還有其他比較複雜的場景(例如:自定義窗口,自定義connector等),需要通過基於DataStream API的代碼開發作為補充。

5. Metrics監控

圖片 8.png

Metrics監控是很多客戶關注的部分,尤其在生產環境中。在線業務越敏感,對指標的監控要求更高。Ververica Platform 的監控提供了非常豐富的維度,包括Overall監控、Checkpoint監控、Watermark監控、網絡監控、CPU監控、JVM監控、IO監控等。

6.豐富的上下游支持

圖片 9.png

實時計算Flink版支持豐富的上下游,包括Stream Message、Dimension Data、Data Storage、Data Sink。阿里雲實時計算Flink版是中間的計算環節。目前,實時計算 Flink 版對雲上的 Data Source、Data Sink以及開源的 Data Source、Data Sink都支持的比較好,使用起來都很方便。

四.實時計算 Flink 版 – 半托管及全託管服務介紹

圖片 10.png

全託管服務、半托管服務其實顧名思義指是否有端到端的產品服務。包含產品服務的為全託管服務,不包含全部售後服務或技術支持服務的被稱為半托管服務。現在兩種產品形態阿里雲實時計算 Flink 版都提供。

Flink的全託管服務和半托管服務的區別可以從五個維度對比,分別是適用場景、功能特性、運維管理、彈性擴展及性能效率。整體來看全託管服務TCO更低,性價比更高,同時還可以享受到原廠的高SLA服務。

五.實時計算 Flink 版 – 通用業務場景

圖片 11.png

阿里雲實時計算主打的通用業務場景主要有四個:

  • 實時ETL & 索引構建, 主要通過實時計算完成數據的實時抽取、數據的實時聚合、清洗。比如:實時監控平臺或實時大屏場景。
  • 實時的統計和分析,比如:實時數倉場景。
  • 實時機器學習。隨著用戶紅利結束,傳統T+1離線推薦引擎轉化率效果越來越差,推薦引擎也在向實時化演進,通過實時樣本拼接及實時增量模型提升轉化率。
  • 實時事件處理,主要是實時監控、風控場景。比如說在金融領域在線信貸實時金融風控場景;安全領域基於態勢感知的大數據實時安全風控場景。

以下為目前阿里雲實時計算 Flink 版一些比較典型的客戶及行業分佈。

圖片 12.png

以下將介紹一些典型的實時計算應用場景及案例。

1. 實時計算 Flink 版 – 實時大屏場景

圖片 13.png

實時大屏是阿里雲實時計算 Flink 版的典型場景,也是阿里巴巴集團內部從16年到至今一直在去跑的,2019年雙11,實時計算 Flink 版巔峰處理的消息到達了每秒25億條,數據吞吐量是2.63TB每秒。實時大屏數據鏈路主要分為兩部分,一部分是用戶的交易數據,一般都會存在傳統關係數據庫;另一部分是行為數據或行為日誌(例如:用戶瀏覽或點擊日誌),一般會存在ECS的日誌系統裡。通過Kafka及類CDC的數據抽取工具,將數據實時推送到Flink做實時的數據處理、聚合及清洗,然後實時存儲結果數據做實時數據可視化展示。

實時大屏場景的應用非常廣泛,比如 VIPKID的在線教育大屏,中央電視臺春晚的大屏、去年國慶節的雲上閱兵實時展示,包括58到家的生活大屏,以及建設銀行、民生銀行使用弗林克斯在做的中控平臺的整個交易電路的的監控大屏等。

2. 實時計算 Flink 版 – 實時ETL數據處理場景介紹

圖片 14.png

第二個是實時的ETL場景。例如:在線教育場景,在線教室1對1或1對多課堂中的學生行為,甚至家長在網站上的瀏覽購物行為,這些日誌通過DataHub或Kafka傳給Flink做實時的清洗、聚合。然後存儲到諸如Elasticsearch的搜索平臺裡,客戶、營銷人員做一些搜索,或者由系統運維人員對整個鏈路做監控和報警。

圖片 15.png

VIPKID主打在線一對一視頻課程,巔峰時可能每小時開課數量答3萬多節,去年開始使用了實時計算Flink版,做到了將不同部門的日誌通過MQ隊列都抽取到實時計算Flink中,然後由統一部門進行計算、數據清洗,並將最終結果存儲到不同的業務部門供其消費。

3.實時計算 Flink 版 – 在線機器學習場景介紹

圖片 16.png

實時計算的在線機器學習應用場景,圖中底部所示是傳統的離線機器學習的處理鏈路:通過離線日誌,做離線的樣本生成,然後離線訓練,然後再提供離線推薦服務。這是傳統機器學習鏈路。隨著業務的發展,用戶(月活或者日活)到達一定數量級後,推薦的轉化率就很難提高,就需要從時間維度去挖掘模型的價值。比如希望更快速的給客戶推薦一些符合需求的結果,因此需要增加實時的在線機器學習處理鏈路。

圖片 17.png

以某社交媒體頭部客戶為例,目前為止該平臺在線機器學習應用在多個業務場景,每天處理30億到100億條數據,計算的場景也比較複雜,如多流join,甚至有多媒體的計算。可以看到在整個在線機器學習中,使用實時計算 Flink版作為計算引擎後轉化率效果提升明顯,在線的模型效果比離線的模型效果提升了8%左右。

4. 實時計算 Flink 版 – 實時數倉場景介紹

圖片 18.png

隨著離線數據及實時數據不斷的積累,實時數倉是當前的熱點場景。很多互聯網公司,包括很多的傳統企業(例如:銀行、保險公司)都有實時數倉的訴求。客戶不僅想看到離線的數據的報表和結果,同時需要查看到實時寫入數據的報表結果。如何解決數倉大併發實時寫入,實現流批一體、行列混合存儲及存儲計算分離架構,如何基於聯邦查詢提供one service的企業級統一出口是近期行業內技術演進的焦點。

六.實時計算 Flink 版 – 實時數據處理鏈路 Demo

圖片 19.png

互聯網公司的數據天生具有“實時化”的屬性,本能的會將數據、日誌通過類Kafka的消息引擎做收集然後通過實時計算Flink版做處理。但傳統企業(例如:車企、製造商、零售企業),早期的數據資產都存儲在關係型數據庫中,數字化轉型,業務在線化或實時化的過程中,如何激活這部分海量數據,把這部分所謂的靜態數據實時化,充分挖掘企業海量數據資產的價值,就成了關鍵。

今年可以看到很多傳統企業通過數據中臺項目做數據源的改造(本質是為了實時化做準備)。本Demo主要展示了從數據源到數據抽取(激活靜態數據)再到數據的實時處理(雙流Join及流表Join)然後再到實時數倉的落地和交互分析查詢及實時數據可視化展示,端到端的鏈路來演示全鏈路的實時數據處理的流程和場景。

七.Serverless 全託管 Flink – 免費測試

圖片 20.png

目前基於全託管Flink正在做免費測試,大家都可以去公測地址免費申請。一般客戶使用雲上服務有幾個顧慮。

  • 第一、覺得半托管沒有服務、沒有兜底、沒有保障,全託管服務其實都可以解決。
  • 第二、覺得雖然全託管服務解決了售後的問題,但是可能價格有時候偏貴。

利用serverless最新技術,按量計費和彈性擴展模式,既可以保證客戶對性價比的要求,也可以保證客戶對兜底的訴求。希望有更多的客戶,更多感興趣的開發者可以去長期試用。大家可以體驗一下,發現問題也可以及時反饋,我們會不斷的改進和優化。

免費測試申請地址:
https://realtime-compute.console.aliyun.com/#/dashboard/managed/ack

實時計算 Flink 版產品交流群

實時計算交流群.png

阿里雲實時計算Flink - 解決方案:
https://developer.aliyun.com/article/765097
阿里雲實時計算Flink - 場景案例:
https://ververica.cn/corporate-practice
阿里雲實時計算Flink - 產品詳情頁:
https://www.aliyun.com/product/bigdata/product/sc

Leave a Reply

Your email address will not be published. Required fields are marked *