開發與維運

阿里巴巴飛天大數據平臺實時計算Flink on Kubernetes最新特性

Flink產品介紹

目前實時計算的產品已經有兩種模式,即共享模式和獨享模式。這兩種模式都是全託管方式,這種託管方式下用戶不需要關心整個集群的運維。其次,共享模式和獨享模式使用的都是Blink引擎。這兩種模式為用戶提供的主要功能也類似,

  1. 都提供開發控制檯;
  2. 開發使用的都是Blink SQL,其中獨享模式由於進入了用戶的VPC,部署在用戶的ECS上,因此可以使用很多底層的API,如UDX;
  3. 都提供一套的開箱即用的metric收集、展示功能;
  4. 都提供作業監控和報警功能。
  5. 最後,在收費模式上,共享模式和獨享模式用戶所承擔的都是硬件加軟件(獨享模式是軟件(VPC))的費用。

Flink on Kubernetes模式介紹及對比

在共享和獨享這兩種模式的基礎上,阿里雲實時計算團隊於2019年9月中旬會推出一個新的模式,Flink on K8S,其與前兩種模式區別主要在於:
• 託管模式:集群以半托管模式部署在用戶ECS和K8S上,用戶對該集群用完全的掌控能力。
• 引擎版本:直接使用開源Flink版本
• 提供功能:提供開發控制檯支持用戶提交併控製作業;支持Flink 1.6/1.7/1.8等版本;也提供metric收集、展示、作業監控、報警功能;提供其他可插拔的增值功能。
• 收費模式:Flink on K8S模式下軟件(VPC)是完全免費的,用戶只需要支付ECS的費用就可以免費試用Flink產品。
各種模式對比如下:
image.png

引擎方面,Blink是由阿里雲實時計算團隊於2016年從Flink 1.5.1拉出來的分支,在這之後的三年多的時間裡,該分支被進行了一系列的改造:1)SQL優化器和執行器的改造,目前有更完善的SQL支持,提供了Unified SQL;2)在Runtime上,提供了統一高效的算子框架、更加靈活的chaining策略和自定義調度插件;3)提供增量Checkpoint。
2019年1月份,阿里巴巴決定將Blink的所有優化功能貢獻給社區,經過六個多月的改造,Blink的部分基本功能已經合併到Flink 1.9.0中,與此同時,阿里也收購了Flink創始團隊成立的公司dataArtisans。在此之後,兩個團隊將共同維護一個新的品牌Ververica,該品牌推出新的界面平臺Ververica Platform來為用戶提供服務。
image.png

Why Flink+Kubernetes

Flink之所以選擇K8S來作為底層的資源管理來為用戶提供服務主要原因有以下幾點:
• Flink特性:首先Flink是大數據類應用,與傳統大數據應用如Spark、Hadoop、MapReduce以及Hive等不同的是,Flink是常駐進程,其類似於在線業務的App,作業發佈後修改頻率比較低,,這就要求執行作業的worker長時間穩定運行。另外,與其他批處理作業相比,流作業任務一般應用於實時風控和實時推薦的業務場景下,其重要度更高,穩定性要求也更高。
• K8S優勢:K8S設計的初衷是為在線應用服務,目標是為了幫助在線應用更好地發佈和管理,實現資源隔離;其次,目前K8S具備一定的生態優勢,目前很多用戶已經開始或嘗試開始使用K8S來管理在線應用;K8S可以很好地集成其他集群維護工具,如監控工具普羅米修斯,同時在資源彈性方面,K8S可以很方便地進行擴縮容。
image.png

Ververica Platform介紹

Ververica Platform平臺所包含主要功能模塊如下圖所示:
• K8S集群:需要用戶在阿里雲上創建ACK集群(阿里雲官網搜索ACK進入產品主頁瞭解詳情)。
• 可插拔組件:1) APP Manager。用戶可通過APP Manager界面對作業進行提交和管理;2)開箱即用的指標收集、展示及報警組件,該組件集成了Prometheus的功能。3)日誌收集、分析、展示組件
• 增值功能:首先是Libra智能調優系統。熟悉Flink的用戶可能都知道,目前Flink的調優比較麻煩,尤其在開源Flink中,用戶需要多次預估波峰流量來設置Flink作業的資源,否則在波峰的時候可能會出現作業延時。而所推出的Libra智能調優系統功能會根據波峰波谷的特點來自動調整Flink資源,在沒有人為干預的情況下提高資源利用率,同時降低波峰時的作業延時。除此之外,平臺還將提供Alink機器學習組件、Gemini等增值功能。
image.png

總體而言,Ververica Platform的特點是免費、開源、增值和易用。首先用戶只需要支付ECS的費用便可以使用Ververica Platform平臺的所有功能;其次Flink Core是開源的,用戶無需的擔心其兼容性和因為被某個平臺綁架而產生的問題,並且開源Flink的功能可以無縫遷移到該平臺上;此外,Ververica Platform提供了一系列增值功能,整個平臺易用性較高。
下圖是Ververica Platform的平臺界面,通過該界面用戶可以創建並提交一個Flink作業。用戶可以設置Flink作業的名稱、初始化狀態、Flink版本(目前支持1.6/1.7/1.8)、Jar包地址以及開源資源配置(如併發度、Job Manager的CPC內存等),點擊提交後可以很方便地在K8S上運行一個Flink作業。
image.png

下圖展示了一個已經在K8S上運行的作業,用戶可以瀏覽整個作業的配置信息、拓撲圖、在K8S上的Events、Jobs、Savepoints的狀態·
image.png

用戶還可以在界面上直觀地查看作業默認的metrics和logs信息,從而簡化作業問題排查的複雜度。此外,該平臺還支持直接顯示Flink Web UI。目前的平臺功能比較簡潔,後續會將平臺自動調優、Alink 機器學習等方面的功能納入進來。
image.png

以上是阿里雲Flink on Kubernetes產品形態的新功能,歡迎大家試用體驗。試用的具體流程是:阿里雲提交工單,工單選擇實時計算產品,標明“希望試用實時計算Flink on Kubernetes產品形態”,之後便可以等待阿里雲相關工作人員聯繫進行試用。

Leave a Reply

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