1. 程式人生 > 其它 >應對 Job 場景,Serverless 如何幫助企業便捷上雲

應對 Job 場景,Serverless 如何幫助企業便捷上雲

簡介:函式計算作為事件驅動的全託管計算服務,其執行模式天生就與這類 Job 場景非常契合,對上述痛點進行了全方面的支援,助力“任務”的無伺服器上雲。

作者:馮一博

任務(Jobs),是網際網路服務的一種常見場景。在諸如 AI 訓練、直播(視訊轉碼)、資料清洗(ETL)、定時巡檢等場景下,任務平臺能否支援快速的高併發任務啟動效能、提供較高的離線計算資源利用率以及豐富的上下游生態是這類場景的核心痛點。函式計算作為事件驅動的全託管計算服務,其執行模式天生就與這類 Job 場景非常契合,對上述痛點進行了全方面的支援,助力“任務”的無伺服器上雲。

函式計算和 Serverless Jobs

“Job”系統應具備什麼能力?

在上述的“Job”場景中,一個任務處理系統應該具有以下能力:

  1. 任務觸發:支援靈活的任務觸發方式。如支援客戶端手動觸發,支援事件源觸發,支援定時觸發等;
  2. 任務編排:能夠編排複雜任務流程,管理子任務之間關係,如分支、並行、迴圈等邏輯;
  3. 任務排程及狀態管理:排程任務優先順序,多租隔離及任務狀態管理,支援多種任務併發度、限流;能夠管理任務狀態,控制任務的執行等;
  4. 資源排程:解決任務的執行資源問題。這裡麵包括多種執行時支援,計算資源冷啟動延遲控制,在/離線任務混部,最終目標是使得系統具有較高的資源利用率;
  5. 任務可觀測性:任務執行歷史的檢視、審計;任務的執行日誌;
  6. 任務排程系統上下游生態:任務排程系統可以自然接入上下游系統。比如與 Kafka/ETL 生態、訊息生態等整合的能力。

阿里雲函式計算 Serverless Job

函式計算 Jobs 能力全景圖如下圖所示:

圖一:函式計算 Jobs 能力全景圖

業界常見任務排程系統 Job 能力對比

表一:常見任務排程系統能力對比

在普遍情況下,像諸如一些雲廠商的批量計算產品、開源的 K8s Jobs 等任務排程系統支援的最小粒度一般是按例項級別擴縮容,並且不具有大規模任務(編排)管理的能力,因此比較適用於低併發、重負載、超長時執行的業務(如基因計算、大規模機器學習訓練)等;而一些開源流程執行引擎、大資料處理系統的任務排程往往缺少彈性、多租隔離、高併發管理及視覺化等一系列能力。函式計算作為免運維的 Serverless 平臺,很好的結合了上述不同系統的優點,另外 Serverless 先天的彈效能力很好的支援了任務中普遍存在的高併發波峰波谷場景的需求。

推薦最佳實踐 & 客戶案例

AI 訓練 & 推理

場景的核心訴求:

  1. 同時支援實時推理 + 離線訓練,實時推理對冷啟動有要求;
  2. 有明顯的波峰波谷,計算量大,需要高併發,計算例項間基本不需要協同;
  3. 一般需要容器映象執行自定義庫進行訓練。

案例 1:網易雲音樂 - 音視訊處理平臺

網易雲音樂的音樂“發現”和“分享”功能依賴對音樂進行基礎特徵分析及提取。在執行這類推薦演算法及資料分析時,需要依賴非常大的算力對音樂原始檔案進行處理。網易雲音樂音視訊離線處理平臺在經歷了 非同步處理模式- 優先及佇列優化 - 演算法叢集虛擬化 - 演算法映象框架化 - 雲原生化 這一系列演進後,選擇了函式計算作為視訊平臺的基礎設施,有效解決了不斷擴大的計算規模所帶來的的難以運維、彈性差等問題。

案例 2:資料庫自治服務 - 資料庫巡檢平臺

阿里雲集團內部的資料庫巡檢平臺主要用於對 sql 語句的查詢、日誌等進行優化分析。整個平臺任務分為離線訓練及線上分析兩類主要任務,其中線上分析業務的的計算規模達到了上萬核,離線業務的每日執行時長也在 百萬h。由於線上分析、離線訓練時間上的不確定性,很難提高叢集整體資源利用率,並且在業務高峰來時需要極大的彈性算力支援。業務最後使用函式計算構建了資料庫巡檢平臺,滿足日常的 AI 線上推理及模型的離線訓練任務。

案例3:分眾傳媒 - Serverless 圖片處理業務

在廣告業務中,執行深度學習演算法進行圖片處理、比對、識別是比較常見的業務,這類業務往往具有資料來源多樣、單例項處理時間不確定、波峰波谷明顯、任務可觀測要求高等特性。採用自購機器執行服務不但需要考慮機器的運維及資源利用率問題,還比較難以適配多種多樣的圖片源,難以做到服務的快速上線。

函式計算的多種事件源觸發支援為這類業務提供了極大的便利。分眾傳媒採用 OSS/MNS 觸發器觸發函式計算,解決資料來源多樣的問題。使用者的圖片資料可以上傳至 OSS 或者 MNS,對應的觸發器則會直接觸發函式計算來完成圖片處理任務,函式計算的彈性及按量付費模式解決了資源使用率及機器運維的煩惱。在可觀測性方面,任務處理例項使用了有狀態非同步呼叫模式,對於任何已觸發的任務做到了可追溯的能力,方便業務對於執行失敗的任務進行排查及重試。

視訊轉碼 & 直播推流 & 錄播轉直播

直播轉錄/錄播轉直播業務往往同時具有業務的實時性、業務的不定時不定量的特點:

  1. 要求直播同時能夠隨時拉起處理例項,隨時停止轉錄例項;
  2. 業務高峰的時間段集中在日間的幾個小時,夜間幾乎沒有業務請求。因此資源的利用率和成本是主要考慮的因素。

對於視訊轉碼場景除一般的彈性訴求外,往往還對資源規格(CPU)的靈活性有要求,以期待獲取更高的資源利用率。如:

  1. 資源規格:由於轉碼輸出位元速率的不同,出於成本考慮,希望能夠靈活彈起不同規格的資源;
  2. 執行時間隨機性。由於需要提高轉碼效率,往往會對視訊進行分片處理,因此任務來的瞬間可能需要很高的例項數;
  3. 為了提高轉碼效率,可能進行分片後分別處理,涉及到多函式間共享資料;
  4. 需要容器映象方式來執行一些自身的庫,並且往往對快速啟動;
  5. 由於轉碼的離線業務屬性,任務結束後還需要留存一定的任務記錄以便後續審計、問題排查等需求。

案例 1:新東方 - 雲教室系統 Serverless 視訊處理平臺

新東方雲教室系統支援了視訊直播、轉碼、點播等新東方所有線上教育場景。隨著業務量的增大,由於直播轉錄及視訊轉碼任務處理平臺具有明顯的波峰波谷特性,自建機房較低的資源利用率成為了業務的核心痛點。為了提高整體的資源利用率,雲教室系統上述功能使用了函式計算,可以根據業務特點靈活選擇計算資源的規格,毫秒級冷啟動效能以及 "pay as you go" 的付費模式也使得整體的計算資源的利用率非常高,在滿足波峰算力的同時讓整個系統擁有最低的成本。

在進行業務場景的 serverless 化的過程中,雲教室系統使用了阿里雲函式計算有狀態呼叫模式。這種模式也是專為 Job 場景打造,能夠進行歷史記錄查詢及優雅停止任務的功能。在儲存方面,視訊臨時檔案採用了函式計算 - NAS 方案。新東方通過視訊平臺的函式排程器能夠輪詢多個函式服務來進行負載均衡,每個服務通過掛載不同的 NAS,在做到了檔案共享的同時提高了函式內部 NAS 臨時儲存的使用率,進一步降低了資源的使用成本。

案例 2:米連 - 直播視訊實時合規稽核平臺

米連的直播相親業務涉及視訊處理的主要任務為視訊截幀,在拉流的同時進行視訊截幀並上傳到目標儲存中。這類直播場景由於具有波峰波谷的特性,因此除資源利用率要求外還具有一定的實時性及長時執行的要求。稽核平臺最終使用了函式計算支援高彈性及長時算力的能力,有效的支撐了業務場景。

資料處理 & ETL

場景的核心訴求:

  1. 彈性,高併發的支援。資源按需付費,種類多樣,利用率高,免運維;
  2. 複雜流程的編排支援;
  3. 任務的可觀測效能力。

案例:圖森未來 - 自動化資料處理平臺, 讓一切簡單可靠

圖森未來的無人駕駛技術研發依賴大量的路測試驗資料積累,而高效進行路測、快速對路測資料進行處理來指導模型的更新迭代是這類場景的核心訴求。而路測不定時執行,資料入庫的流程較長,涉及多個系統互動,算力不確定等特性為流程編排任務為資料處理平臺帶來了較大挑戰。

針對上述情況,圖森未來探索資料處理平臺的自動化。資料處理平臺使用了 Serverless 工作流進行了整體流程的編排,並通過原生支援的訊息服務 MNS 解決了雲上雲下的資料打通問題。

除排程外,圖森未來通過使用任務的輸入輸出對映及狀態彙報機制,高效的管理流程中各任務的生命週期及相互間的資料傳遞,對流程中任務的狀態及執行過程中資料更新進行維護,解決了長時不確定長流程的資料處理需求。

總結

結合上述案例及分析,函式計算的彈性、可觀測性、佇列隔離能力及完整的事件生態極好的支援了這類任務場景。簡單總結主要體現在以下幾個方面:

  1. 任務的觸發
    函式計算支援定時觸發器、OSS 觸發器、各類訊息佇列觸發器,這為 EDA 架構的應用程式、多種資料來源的資料處理場景提供了豐富的能力;
  2. 任務編排&任務排程
    函式計算原生被阿里雲 Serverless 工作流服務無縫整合,Serverless 工作流支援順序、分支、並行等方式來編排分散式任務,跟蹤每個任務的狀態轉換,並在必要時執行事先定義的重試邏輯。Serverless 工作流 + 函式計算的組合可以很好的支援複雜長流程的執行;
  3. 在資源層面,Serverless 更能體現出其核心優勢:開發免運維,並提供高彈性和高可用性保障。
    對比自建,使用無伺服器架構後,僅需要按實際任務執行的使用量付費,即節省了成本,也省去了運維的煩惱。函式計算支援多種執行時語言,也支援了執行自定義容器映象,極大方便了開發除錯流程。
  4. 在可觀測方面,Serverless 工作流和函式計算對多工流程、單任務流程提供了豐富的可觀測性指標和查詢方式,能夠便捷的查詢歷史、觀測執行中等任務的指標及日誌,方便除錯及問題追蹤。

在未來,函式計算 - Serverless Jobs 將精耕垂直領域的任務處理場景,包括提供更長的例項執行時間、更豐富的可觀測性指標、更強大的任務排程策略及端對端整合能力,致力於為您提供垂直場景下的“最短路徑”,助力業務騰飛。

原文連結
本文為阿里雲原創內容,未經允許不得轉載。