天天看點

實時計算 Flink 與你相約阿裡雲|學習筆記

開發者學堂課程【《實時計算Flink 版産品入門與實操》:實時計算 Flink 與你相約阿裡雲】學習筆記,與課程緊密聯系,讓使用者快速學習知識。

課程位址:

https://developer.aliyun.com/learning/course/334/detail/3735

實時計算 Flink 與你相約阿裡雲

内容簡介:

一、曆史回顧

二、選擇理由

三、産品介紹

四、未來可期

衆所周知阿裡雲的 slogan 為計算是為了無法計算的價值,計算的實體其實就是資料,但随着時間的推移,資料的價值是逐漸遞減的,如何從資料産生開始就盡早的去發掘它的最大價值是實時計算不懈的追求。

随着技術的發展,Flink 已經成為實際計算的工業标準,越來越多的公司使用Flink作為自己實時計算的工具。

在實時計算領域,阿裡雲不斷探索推出了實時計算 Flink 的産品。

一.曆史回顧

1)實時計算發展概要

早在 2013 年,阿裡巴巴内部就在上線實時計算的場景,包括當時的搜尋中心。

在 2015 年,建設了實時計算的平台,并在内部上線,同年雙 11 上線 GMV 大屏等相關業務,從此開啟了實時計算 Flink 在阿裡巴巴的發展。

在 2016 年七月,實時計算 1.0 版本開始公測,開箱即用一站式開發平台 Galaxy(基于 storm )引擎開發,打通了雲上環境,flink的公測基本早于其他的實時計算。

在 2017 年 十月,基于 blink 的實時計算 2.0 版本上線,該版本是全托管,但是當時的計算不能與不同的使用者的環境打通,是以隻能運作 SQL。

在 2018 年十月推出了 2.0 的獨享模式,SQL(UDF)能力與使用者 VPC 無縫連接配接,使得使用者的多個作業模式得以運作。

在 2019 年九月,因為中德公司的合作和許多大使用者的掌控需求,阿裡巴巴又推出了基于Flink引擎的半托管模式,也就是實時計算 3.0,3.0 是中德共建一站式平台VVP,并且支援了 Yam 和 K8S 兩個主流的排程引擎,使用者可以自助登入 Yam 或K8S 去管控自己的任務,同時也能享受到阿裡巴巴提供的增值服務。

相較于 2.0 版本來說,3.0 版本推出了全新的全托管模式。由于 2.0 版本下當使用者資源不足時,使用者擴容需要擴整台 ecss 機器,缺點是速度比較慢,另一方面 ecss機器過重,使用不夠靈活,在資源的彈性上存在一定的缺陷。而推出的 3.0 版本運用全新的全托管模式,基于 Flink 引擎,同時既能跟使用者的VPC打通,又能夠做到充分的隔離,保證使用者運作 SQL,UDF,data stream 等作業,這給運維帶來了良好的條件,不用單獨維護使用者的資料。此模式是業界在實時計算領域内的先行者。

2)大事件——中西合璧

在 2019 年,我國和德國在合作之後統一了方向,都基于統一的基礎引擎 Apache Flink,并在上面添加增值插件,同時在阿裡雲上的産品是以 realtime compute

作為産品推出給使用者,這樣做是為了共建一套核心引擎,通過增值的插件來提升商業化的能力,打造全球的技術品牌 Ververica,在阿裡雲上繼續使用原來的産品形态RealtimeCompute。

3)社群/企業/産品良性循環

Apache Flink 是發展的土壤,基于 Apache Flink 阿裡雲做了許多企業的增值,比如 connector 和 SQL 的一些優化,這就作為商業的核心增值能力。在具有這些核心增值能力的同時,将它産品化到阿裡雲上,産生了 RealtimeCompute,随着RealtimeCompute 的使用者接觸,使用者回報一些性能、功能上的問題,這就豐富了商業化的基本功能。

将這些功能進行進一步的抽象,再回饋到社群裡,進而讓社群更加的繁榮,形成了社群/企業/産品的良性循環。

阿裡雲的技術斷言為“做最好的實時計算”,産品的Slogan為“實時,即未來”。

4)多樣的深度使用者

從 2015 年開始,阿裡雲在雲上積累了很多不同的業務領域、場景,包括實時大屏場景、實時機器學習、實時ETL場景、實時數倉場景;同時也培育出了各個領域的典型使用者,分别在網際網路娛樂、線上教育、新零售、交通出行、金融财富等領域都有标杆客戶。

這些客戶既擴大了對 Flink 的使用,同時他們回報也促使将 Flink 做的更好。

二.選擇理由

1)選擇雲上實時計算

雲上的實時計算 Flink 有先天的雲上優勢,避免了使用者自己建設基礎設施的成本,在其他軟體上是多個産品的組合,使用者不可以自主選擇,但是在雲上使用者可以按需選擇産品,擴充性好,資源池化,水準擴充,不會造成資源浪費,有彈性優勢。

雲上實時計算是官方出品,跟德國中西合璧,同時産品完全相容社群,使用者的回報可以快速返還社群,可以迅速修複問題,而且還在 Apache Flink 的基礎之上提供了豐富的增值能力,這些能力既避免了使用者自己去建設周邊的打通,同時也有資源上的優化,避免資源浪費。這些增值能力是給使用者帶來的價值。

雲上實時計算有着豐富的經驗,阿裡巴巴使用實時計算 Flink 已經近十年的時間,在這期間積累了大量的經驗和業務場景,避免了使用者花費漫長的人力和時間的培養。實時計算Flink也經曆過多次雙11等實戰大考,而不隻是平常的簡單業務中。

雲上實時計算提供了豐富的企業增值,主要展現在多、快、好、省幾個方面,讓使用者用的放心,買得舒心。

2)多快好省

多展現在産品輸出形态多,使用者想要那種形态就可以提供那種形态。比如說使用者想要關注自己的業務發展,可以選擇全托管,若是使用者有較強的技術訴求,可以選擇半托管。根據使用者的體量大小,推出了混合雲上企業版和靈活版。對某些可以可以實時軟體化輸出和對需要經驗的客戶提供專家服務。

上下遊對接 Connector 非常多,基本上覆寫了目前阿裡雲上所存在所有資料存儲,包括開源的和商業化的,而這在社群遠少于企業版。提供了垂直領域的函數,可以讓使用者開箱即用。

系統/業務監控名額多,讓使用者更直接的看到系統情況,無縫對接阿裡雲運維體系,比如日志對接 sls/oss,名額對接 ARMS 等報警系統。

快展現在 Apache Flink 基礎之上,自研 StateBackend,該性能平均優于開源性能 2倍以上;SQL/Table API 算子單獨優化,部分性能領先開源 3 倍以上;實時計算版本更新快,由 Flink 創始團隊主導版本開發,部分性能先于社群體驗,使用者不用擔心部分功能在阿裡雲上有而在社群沒有;同時是企業級的産品,有 24 小時的服務,在規定時間内響應使用者回報,及時處理客戶的問題;版本 Bugfix 快,先于社群釋出。

好展現在雲基礎設施內建度高(包括賬号權限、計算 /VM、存儲 /OSS、監控、告警、日志鍊路等等);對于 Yam 和 K8S 做了深度的優化,對于作業的送出時間以及大量作業的排程能力都做了深度的優化,達到生産級可用;同時對雲産品提供了開發運維控制台,一站式開發/調試/運維服務,使用者可以操縱自己的作業;

提供了全鍊路的智能診斷工具,提供智能化、自動化運維診斷,不需要使用者自己查資料;提供了 OpenAPI,以便于使用者二次開發,供各類業務場景調用;内置中繼資料內建,且與 HMS 等外界中繼資料系統打通,這個功能會盡快推出;雲計算提供了 SQL e2e 開發體驗,使用者可以自主編輯、調試和運作 SQL;內建 Alink 的能力,和Alink 無縫打通,由 Flink 創始團隊提供專業技術服務。

省展現在雲計算提供了單作業 AutoPilot 功能,自動彈性擴縮容,解決業務波峰波谷資源成本問題;不光單資源,而且細力度,全托管支援按量付費,彈性擴縮容,使用者需要多少資源就申請多少資源,節省機器成本;全托管同時提供 7*24 小時的免運維服務,使用者人力成本節省達數十萬一年;半托管提供專業技術支援,包括問題定位、給出解決方案等;提供全鍊路作業開發、運維管理系統,有完整的任務生命周期管理,為使用者節省開發人員業務實作成本。

三.産品介紹

1)産品技術棧

整個産品技術棧分為四個部分,最底下的是 Computing Resources,包括 Physical Macheine、Virtual Machine 等等,其次 Flink 的運作需要一套分布式檔案系統(DFS),而這些檔案系統主要運用 OSS、HDFS 等分布式檔案系統實作;對于排程系統(Scheduler),雲計算最主要支援了目前熱門的 Yam 和 K8S,充分滿足了不同排程體系運用的需求;

基于這些系統,上層提供了 Ververica Platform

第一就是基于 Apache Flink 做了增值插件,

第二在任務管控層面采用微服務的架構,給使用者提供了整個作業生命周期的管理,WP 的開發和檢視,SQL 的開發以及 Auto-Pilot 的能力,最終通過 get way 的方式傳給使用者,雲計算做了更多的任務管理上的增值和優化去開發更多的功能,目标是實作一套基于 Apache Flink 的企業化版本,提供一站式的處理能力和更多的插件。

2)公上産品形态

全托管形态适用于隻關心業務發展,不關心叢集運維的使用者。全托管分為 Blink 和Flink 兩種形态。Blink 主要是在豐富 SQL 上比較完備,Flink 隻要提供 CU 力度的收費,并且細力度彈性,使用者按需即用,按量付費,在SQL領域會盡快與Blink補齊。

半托管形态是将整個 Ververica Platform 部署到使用者的環境中,使用者的環境可以是Yam 也可以是 K8S,半托管的兩款産品已商業化并且隻收取 ECS 費用。

3)實時打通上下遊

打通使用者的上下遊尤為重要,讓資料總線、日志服務、消息隊列等流表可以流進Flink,讓表格存儲、關系型資料庫、分布式資料庫等等作為維表。同時對于一些大型存儲,比如 MaxCompute、Hbase、OSS 在資料量較小的情況下也可以作為維表加載進來,能夠輸出到使用者的各種存儲系統中。整個實時計算 Flink 是将使用者的存儲計算作為上遊,使用者的另一些存儲作為維表,再輸出到使用者的作業環境中。無需資料搬移,自動和使用者的環境打通,完成複雜的計算。

四.未來可期

1)産品功能持續推出

·更完備的 SQL 支援

·更豐富的 Connector 連接配接

·更智能的 AutoPilot 能力更高效的運作性能

·更易用的産品互動 /SDK

·更實用的 debug/troubleshooting 能力

·更有效的監控告警

2)産品介紹持續更新

入門篇

·實時計算 Flink 與你相約阿裡雲

·實時計算典型應用場景及産品概念介紹

·如何開通實時計算 Flink

實操篇

·如何跑通第一個 DataStream 作業

·如何跑通第一個 SQL 作業

·如何使用 AutoPilot 對作業自動調優。

·如何将實時計算 Flink 與自身環境打通

·如何平遷 Flink 任務到實時計算

·實時計算典型應用場景實操之實時數倉

進階篇

·如何做實時計算 Flink 的 troubleshooting

·如何更有效地配置 Flink 任務的記憶體