五月婷婷丁香性爱|j久久一级免费片|久久美女福利视频|中文观看在线观看|加勒比四区三区二|亚洲裸女视频网站|超碰97AV在线69网站免费观看|有码在线免费视频|久久青青日本视频|亚洲国产AAAA

背景

企業(yè)應用從微服務架構向 Serverless(無服務器)架構演進,開啟了無服務器時代,面向無服務器計算領域的 Serverless 工作流也應運而生。許多 Serverless 應用程序不是由單個事件觸發(fā)的簡單函數(shù),而是由一系列函數(shù)多個步驟組成的,而函數(shù)在不同步驟中由不同事件觸發(fā)。Serverless 工作流用于將函數(shù)編排為協(xié)調的微服務應用程序。

Serverless 工作流由于自身可編排、有狀態(tài)、持久化、可視化監(jiān)控、異常處理、云服務集成等特性,適用于大部分應用場景。

當前大部分 Serverless Workflow 平臺更多關注控制流程的編排,忽視了工作流中數(shù)據(jù)流的編排和高效傳輸,由于數(shù)據(jù)流相對簡單,所以各大平臺支持都比較好,但是對于文件轉碼等存在超大數(shù)據(jù)流的場景,當前各大平臺沒有給出很好的解決方案。

華為云 FunctionGraph 函數(shù)工作流 針對該場景,提出了 Serverless Streaming 的流式處理方案,支持毫秒級響應文件處理。

痛點

以一個圖片處理的場景為例,用戶想要執(zhí)行一個圖片壓縮并且加水印的任務。這個場景在典型的工作流系統(tǒng)中,圖片壓縮和圖片加水印的結果都是二進制文件格式,但是當前主流的 Serverless Workflow 平臺在多個步驟之間傳輸上下文都只能支持文本格式傳輸,所以圖片壓縮和加水印的結果都需要經(jīng)過 BASE64 或者其他轉碼方式轉成文本進行數(shù)據(jù)流傳輸。

但是這種方案的限制和使用成本都比較高:

1、函數(shù)的 Response Body 通常有大小限制,所以這種方式無法處理超大文件。

2、執(zhí)行結果轉換為文本,需要消耗大量內存,內存成本比較高。

如何簡單高效的進行文件處理,業(yè)界也給出了其他解決方案,如通過云存儲進行中間結果轉儲、AWS 的 Lambda Object 文件轉換方案。下面給出了這兩個方案的優(yōu)缺點分析。

方案一:中間結果通過云存儲進行轉儲  

兩個步驟之間的文件流通過云存儲去傳遞,這種方案支持大文件流的傳輸,但是由于中間多了一次到云存儲的網(wǎng)絡傳輸,如果業(yè)務對時延要求不高,該方案問題不大, 但是對于時延敏感類業(yè)務,這種多出的時延是無法接受的。另外云存儲轉儲需要額外的成本,如果調用量比較大,使用成本較高。

方案二:AWS Lambda Object 

AWS 對于這種文件處理場景,提出了基于 S3 和 Lambda 的 Lambda Object 的方案,參考 [1],簡單來說,是支持為 S3 文件桶的 getObject API 提供 Access Point,AccessPoint 可以指向某一個 Lambda 函數(shù),在函數(shù)中可以對原來的桶數(shù)據(jù)文件進行修改,比如可以將原始視頻轉碼,得到轉碼后的結果返回到客戶端。雖然解決了時延和大文件處理的問題,但是這個方案強依賴 S3 的 API,用戶無法進行流程編排,也無法通過事件觸發(fā),不是一個真正通用的方案。

總結

當前業(yè)界提供的各個方案或多或少存在一些局限性,沒有辦法在同時滿足 低時延 的情況下支持 可編排 的文件處理。然而低時延和可編排都是大量客戶所追求的關鍵能力,如何解決這些關鍵痛點,提升客戶體驗,成為了當前我們重點想要攻克的難題。

處理方案

針對當前業(yè)界缺少高效,可編排的文件處理方案的痛點,華為云 FunctionGraph 函數(shù)工作流提出 Serverless Streaming 的流式可編排的文件處理解決方案,步驟與步驟之間通過數(shù)據(jù)流驅動,更易于用戶理解。本章通過圖片處理的例子解釋該方案的實現(xiàn)機制。

如果需要驅動一個工作流執(zhí)行,工作流系統(tǒng)需要處理兩個部分:

1、控制流:控制工作流的步驟間流轉,以及步驟對應的 Serverless 函數(shù)的執(zhí)行。確保步驟與步驟之間有序執(zhí)行。

2、數(shù)據(jù)流:控制整個工作流的數(shù)據(jù)流轉,通常來說上一個步驟的輸出是下一個步驟的輸入,比如上述圖片處理工作流中,圖片壓縮的結果是打水印步驟的輸入數(shù)據(jù)。

在普通的服務編排中,由于需要精準控制各個服務的執(zhí)行順序,所以控制流是工作流的核心部分。然而在文件處理等流式處理場景中,對控制流的要求并不高,以上述圖片處理場景舉例,可以對大圖片進行分塊處理,圖片壓縮和加水印的任務不需要嚴格的先后順序,圖片壓縮處理完一個分塊可以直接流轉到下一個步驟,而不需要等待圖片壓縮把所有分塊處理完再開始加水印的任務。

在 Serverless Streaming 的流程中,弱化控制流中步驟之間的先后執(zhí)行順序,允許異步同時執(zhí)行,步驟與步驟之間的交互通過數(shù)據(jù)流驅動。其中數(shù)據(jù)流的控制通過 Stream Bridge 組件來實現(xiàn)。

同時函數(shù) SDK 增加流式數(shù)據(jù)返回接口,用戶不需要將整個文件內容返回,而是通過 gRPC Stream 的方式將數(shù)據(jù)寫入到 Stream Bridge,Stream Bridge 用來分發(fā)數(shù)據(jù)流到下一個步驟的函數(shù) Pod 中。

這種方式存在如下優(yōu)點:

1、由于控制流的弱化,完全通過數(shù)據(jù)流來驅動流程執(zhí)行,不需要再強限制步驟之間完成的先后順序,如圖片處理場景中,壓縮和加水印的步驟可以做到完全并行執(zhí)行,這樣可以加速整個流程的執(zhí)行速度。

2、每次請求都開辟獨立緩沖區(qū),緩沖區(qū)限制大小,數(shù)據(jù)流僅在內網(wǎng)傳輸,保證整體數(shù)據(jù)傳輸?shù)目煽啃院桶踩浴?/p>

3、不依賴其他外部服務,使用成本低。

4、對于開發(fā)人員來講,只需要關注數(shù)據(jù)流的處理,而不需要關心數(shù)據(jù)流如何轉發(fā),如何存儲,降低開發(fā)難度。

5、底層流式傳輸通過 gRPC 進行,整體數(shù)據(jù)傳輸效率高。

文件處理

在函數(shù)工作流 FunctionGraph 中開發(fā)文件處理工作流  當前函數(shù)工作流 FunctionGraph 已經(jīng)基于上述方案支持了在函數(shù)工作流中進行數(shù)據(jù)流處理,并且將結果通過流數(shù)據(jù)的方式返回到客戶端,以構建一個圖片處理工作流為例:

1、首先創(chuàng)建一個圖片壓縮的函數(shù),其中代碼在處理返回數(shù)據(jù)通過 ctx.Write() 函數(shù)將結果以流式數(shù)據(jù)的形式返回。

說明:函數(shù)工作流 FunctionGraph 通過 ctx.Write() 函數(shù)提供了流式返回的能力,對開發(fā)者來說,只需要將最終結果通過流的方式返回,而不需要關注網(wǎng)絡傳輸?shù)募毠?jié)。

2、在函數(shù)控制臺中啟用該函數(shù)的流式返回能力。

3、用上面的方式完成其他函數(shù)的編寫,最后在 FunctionGraph 的函數(shù)流控制臺完成工作流編排。

4、調用工作流的同步執(zhí)行接口,獲取最終結果的文件流,數(shù)據(jù)將以 chunked 流式返回的方式返回到客戶端。

點擊此處前往詳情→

使用效果

針對圖片處理的具體場景,我們測試對比了不同大小圖片(333k、1m、4m、7m、10m、12m)進行圖片切割和圖片壓縮的場景,由于 BASE64 轉碼方案無法支持大文件,AWS Lambda Object 方案無法支持編排,所以這里只對比使用 OBS 轉儲方案和基于流式返回的 Servlerss Streaming 方案的時延數(shù)據(jù)。

從測試數(shù)據(jù)可以看出,響應時延和端到端時延使用流式返回方案后都得到了不同程度的降低。其中響應時延降低幅度較大,OBS 轉儲方案響應時延隨著圖片大小增大,響應時延呈線性上升,超過 4M 的圖片響應時延就達到秒級,使用流式返回方案后,響應時延持續(xù)穩(wěn)定在毫秒級的水平。從中可以發(fā)現(xiàn),基于 Serverless Streaming 的流式返回方案不僅具備流式處理和可編排 的能力,并且在文件處理場景中可以 顯著降低時延 ,從多個方面提升了用戶使用體驗。

點擊此處前往效果詳情→

函數(shù)工作流 FunctionGraph教程視頻

函數(shù)工作流

03:15

函數(shù)工作流

02:10

函數(shù)工作流

函數(shù)工作流

03:10

函數(shù)工作流

1對1咨詢專屬顧問

1對1免費咨詢華為云專屬顧問,為您量身定制產品推薦方案
立即咨詢

華為云咨詢電話:950808或4000-955-988 轉1

華為云咨詢電話:950808或4000-955-988 轉1

華為云專業(yè)的服務團隊,致力于為您提供專業(yè)的售前購買咨詢服務,及完善的售后技術服務,助您云上無憂