应对 Job 场景,Serverless 如何帮助企业便捷上云
作者:馮一博
任務(Jobs),是互聯網服務的一種常見場景。在諸如 AI 訓練、直播(視頻轉碼)、數據清洗(ETL)、定時巡檢等場景下,任務平臺能否支持快速的高并發任務啟動性能、提供較高的離線計算資源利用率以及豐富的上下游生態是這類場景的核心痛點。函數計算作為事件驅動的全托管計算服務,其執行模式天生就與這類 Job 場景非常契合,對上述痛點進行了全方面的支持,助力“任務”的無服務器上云。
函數計算和 Serverless Jobs
“Job”系統應具備什么能力?
在上述的“Job”場景中,一個任務處理系統應該具有以下能力:
阿里云函數計算 Serverless Job
函數計算 Jobs 能力全景圖如下圖所示:
圖一:函數計算 Jobs 能力全景圖
業界常見任務調度系統 Job 能力對比
表一:常見任務調度系統能力對比
在普遍情況下,像諸如一些云廠商的批量計算產品、開源的 K8s Jobs 等任務調度系統支持的最小粒度一般是按實例級別擴縮容,并且不具有大規模任務(編排)管理的能力,因此比較適用于低并發、重負載、超長時運行的業務(如基因計算、大規模機器學習訓練)等;而一些開源流程執行引擎、大數據處理系統的任務調度往往缺少彈性、多租隔離、高并發管理及可視化等一系列能力。函數計算作為免運維的 Serverless 平臺,很好的結合了上述不同系統的優點,另外 Serverless 先天的彈性能力很好的支持了任務中普遍存在的高并發波峰波谷場景的需求。
推薦最佳實踐 & 客戶案例
AI 訓練 & 推理
場景的核心訴求:
案例 1:網易云音樂 - 音視頻處理平臺
網易云音樂的音樂“發現”和“分享”功能依賴對音樂進行基礎特征分析及提取。在運行這類推薦算法及數據分析時,需要依賴非常大的算力對音樂原始文件進行處理。網易云音樂音視頻離線處理平臺在經歷了 異步處理模式- 優先及隊列優化 - 算法集群虛擬化 - 算法鏡像框架化 - 云原生化 這一系列演進后,選擇了函數計算作為視頻平臺的基礎設施,有效解決了不斷擴大的計算規模所帶來的的難以運維、彈性差等問題。
案例 2:數據庫自治服務 - 數據庫巡檢平臺
阿里云集團內部的數據庫巡檢平臺主要用于對 sql 語句的查詢、日志等進行優化分析。整個平臺任務分為離線訓練及在線分析兩類主要任務,其中在線分析業務的的計算規模達到了上萬核,離線業務的每日執行時長也在 百萬h。由于在線分析、離線訓練時間上的不確定性,很難提高集群整體資源利用率,并且在業務高峰來時需要極大的彈性算力支持。業務最后使用函數計算構建了數據庫巡檢平臺,滿足日常的 AI 在線推理及模型的離線訓練任務。
案例3:分眾傳媒 - Serverless 圖片處理業務
在廣告業務中,運行深度學習算法進行圖片處理、比對、識別是比較常見的業務,這類業務往往具有數據來源多樣、單實例處理時間不確定、波峰波谷明顯、任務可觀測要求高等特性。采用自購機器運行服務不但需要考慮機器的運維及資源利用率問題,還比較難以適配多種多樣的圖片源,難以做到服務的快速上線。
函數計算的多種事件源觸發支持為這類業務提供了極大的便利。分眾傳媒采用 OSS/MNS 觸發器觸發函數計算,解決數據源多樣的問題。用戶的圖片數據可以上傳至 OSS 或者 MNS,對應的觸發器則會直接觸發函數計算來完成圖片處理任務,函數計算的彈性及按量付費模式解決了資源使用率及機器運維的煩惱。在可觀測性方面,任務處理實例使用了有狀態異步調用模式,對于任何已觸發的任務做到了可追溯的能力,方便業務對于執行失敗的任務進行排查及重試。
視頻轉碼 & 直播推流 & 錄播轉直播
直播轉錄/錄播轉直播業務往往同時具有業務的實時性、業務的不定時不定量的特點:
對于視頻轉碼場景除一般的彈性訴求外,往往還對資源規格(CPU)的靈活性有要求,以期待獲取更高的資源利用率。如:
案例 1:新東方 - 云教室系統 Serverless 視頻處理平臺
新東方云教室系統支持了視頻直播、轉碼、點播等新東方所有在線教育場景。隨著業務量的增大,由于直播轉錄及視頻轉碼任務處理平臺具有明顯的波峰波谷特性,自建機房較低的資源利用率成為了業務的核心痛點。為了提高整體的資源利用率,云教室系統上述功能使用了函數計算,可以根據業務特點靈活選擇計算資源的規格,毫秒級冷啟動性能以及 “pay as you go” 的付費模式也使得整體的計算資源的利用率非常高,在滿足波峰算力的同時讓整個系統擁有最低的成本。
在進行業務場景的 serverless 化的過程中,云教室系統使用了阿里云函數計算有狀態調用模式。這種模式也是專為 Job 場景打造,能夠進行歷史記錄查詢及優雅停止任務的功能。在存儲方面,視頻臨時文件采用了函數計算 - NAS 方案。新東方通過視頻平臺的函數調度器能夠輪詢多個函數服務來進行負載均衡,每個服務通過掛載不同的 NAS,在做到了文件共享的同時提高了函數內部 NAS 臨時存儲的使用率,進一步降低了資源的使用成本。
案例 2:米連 - 直播視頻實時合規審核平臺
米連的直播相親業務涉及視頻處理的主要任務為視頻截幀,在拉流的同時進行視頻截幀并上傳到目標存儲中。這類直播場景由于具有波峰波谷的特性,因此除資源利用率要求外還具有一定的實時性及長時執行的要求。審核平臺最終使用了函數計算支持高彈性及長時算力的能力,有效的支撐了業務場景。
數據處理 & ETL
場景的核心訴求:
案例:圖森未來 - 自動化數據處理平臺, 讓一切簡單可靠
圖森未來的無人駕駛技術研發依賴大量的路測試驗數據積累,而高效進行路測、快速對路測數據進行處理來指導模型的更新迭代是這類場景的核心訴求。而路測不定時運行,數據入庫的流程較長,涉及多個系統交互,算力不確定等特性為流程編排任務為數據處理平臺帶來了較大挑戰。
針對上述情況,圖森未來探索數據處理平臺的自動化。數據處理平臺使用了 Serverless 工作流進行了整體流程的編排,并通過原生支持的消息服務 MNS 解決了云上云下的數據打通問題。
除調度外,圖森未來通過使用任務的輸入輸出映射及狀態匯報機制,高效的管理流程中各任務的生命周期及相互間的數據傳遞,對流程中任務的狀態及執行過程中數據更新進行維護,解決了長時不確定長流程的數據處理需求。
總結
結合上述案例及分析,函數計算的彈性、可觀測性、隊列隔離能力及完整的事件生態極好的支持了這類任務場景。簡單總結主要體現在以下幾個方面:
任務的觸發
函數計算支持定時觸發器、OSS 觸發器、各類消息隊列觸發器,這為 EDA 架構的應用程序、多種數據來源的數據處理場景提供了豐富的能力;
任務編排&任務調度
函數計算原生被阿里云 Serverless 工作流服務無縫集成,Serverless 工作流支持順序、分支、并行等方式來編排分布式任務,跟蹤每個任務的狀態轉換,并在必要時執行事先定義的重試邏輯。Serverless 工作流 + 函數計算的組合可以很好的支持復雜長流程的運行;
在資源層面,Serverless 更能體現出其核心優勢:開發免運維,并提供高彈性和高可用性保障。
對比自建,使用無服務器架構后,僅需要按實際任務執行的使用量付費,即節省了成本,也省去了運維的煩惱。函數計算支持多種運行時語言,也支持了運行自定義容器鏡像,極大方便了開發調試流程。
在可觀測方面,Serverless 工作流和函數計算對多任務流程、單任務流程提供了豐富的可觀測性指標和查詢方式,能夠便捷的查找歷史、觀測執行中等任務的指標及日志,方便調試及問題追蹤。
在未來,函數計算 - Serverless Jobs 將精耕垂直領域的任務處理場景,包括提供更長的實例執行時間、更豐富的可觀測性指標、更強大的任務調度策略及端對端集成能力,致力于為您提供垂直場景下的“最短路徑”,助力業務騰飛。
點擊此處?,查看更多函數計算相關信息~
了解更多相關信息,請掃描下方二維碼或搜索微信號(AlibabaCloud888)添加云原生小助手!獲取更多相關資訊!
總結
以上是生活随笔為你收集整理的应对 Job 场景,Serverless 如何帮助企业便捷上云的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里云 Serverless 助力企业全
- 下一篇: 云原生体系下 Serverless 弹性