應(yīng)用場景
云工作流(CloudFlow)用于協(xié)調(diào)分布式應(yīng)用和微服務(wù)以構(gòu)建復(fù)雜多步驟的、異步調(diào)用任務(wù)以及長時間運(yùn)行的業(yè)務(wù)流程。
事務(wù)型業(yè)務(wù)流程編排
復(fù)雜的業(yè)務(wù)場景如電商網(wǎng)站、酒店和機(jī)票預(yù)定等應(yīng)用通常要訪問多個遠(yuǎn)程服務(wù),并且對操作事務(wù)性語義(即所有步驟全部成功或全部失敗,不存在中間狀態(tài))有較高要求。在流量較小、數(shù)據(jù)存儲集中的應(yīng)用中,事務(wù)性可以通過關(guān)系型數(shù)據(jù)庫提供的ACID特性滿足。然而在大流量場景下,為了高可用和可擴(kuò)展性,業(yè)務(wù)通常選擇向微服務(wù)的分布式架構(gòu)方向演進(jìn)。在這樣的架構(gòu)中提供多步驟事務(wù)性的保證通常需要引入隊(duì)列和數(shù)據(jù)庫來持久化消息以及展現(xiàn)流程狀態(tài),這類系統(tǒng)的開發(fā)和運(yùn)維會給業(yè)務(wù)方帶來額外的成本和負(fù)擔(dān)。使用云工作流可以提供長流程分布式事務(wù)保證,幫助您聚焦于自身業(yè)務(wù)邏輯。
關(guān)于如何使用云工作流編排事務(wù)型業(yè)務(wù)流程,請參見分布式多步驟事務(wù)。
多媒體文件處理
使用云工作流可以幫助您將多個任務(wù),如轉(zhuǎn)碼、截幀、人臉識別、語音識別、審核上傳等,編排成一個完整的處理流程,通過函數(shù)計算,提交媒體處理(IMM)任務(wù),或自建處理器,產(chǎn)出一個符合業(yè)務(wù)需求的輸出。各任務(wù)的執(zhí)行錯誤異??梢员豢煽康闹卦嚕^大地提升多媒體任務(wù)處理吞吐量。
基因數(shù)據(jù)處理
云工作流可以將多個批量計算分布式作業(yè)串聯(lián)或并行編排,可靠地支持執(zhí)行時間長、并發(fā)量大的大規(guī)模計算。如基因數(shù)據(jù)分析中將基因序列對齊,將所有染色體并行做變異分析,最終將各染色體數(shù)據(jù)聚合產(chǎn)出結(jié)果。云工作流根據(jù)指定的依賴關(guān)系提交不同CPU、內(nèi)存、帶寬規(guī)格的批量計算作業(yè),提升執(zhí)行可靠性,提高資源利用率,優(yōu)化成本。
數(shù)據(jù)處理流水線
使用云工作流可以快速搭建一個高可用的數(shù)據(jù)處理流水線(Data Pipeline)。例如,來自不同數(shù)據(jù)源的計量數(shù)據(jù)被收集到日志服務(wù),函數(shù)計算的定時器定時觸發(fā)云工作流執(zhí)行,云工作流利用函數(shù)計算對多個Shard的計量數(shù)據(jù)做并行處理,并將結(jié)果分別寫回日志服務(wù);然后可以將所有Shard產(chǎn)生的文件進(jìn)行聚合,寫入表格存儲,最后為您生成賬單。云工作流支持對流程中的單個步驟失敗進(jìn)行重試,降低流程失敗概率。云工作流支持動態(tài)并行任務(wù)執(zhí)行,實(shí)現(xiàn)數(shù)據(jù)處理能力的高可擴(kuò)展性。
自動化運(yùn)維
自動化運(yùn)維面臨著步驟繁瑣、時間長短不一、單機(jī)腳本可靠性低、依賴復(fù)雜等常見的挑戰(zhàn),另外進(jìn)度無法可視化。云工作流+函數(shù)計算的流程可以很好地應(yīng)對這些挑戰(zhàn)。例如自動化部署軟件,從構(gòu)建Docker容器、上傳容器鏡像,開始并追蹤各節(jié)點(diǎn)下拉鏡像并啟動新版本鏡像的容器,每一步函數(shù)產(chǎn)生的日志會被保存到日志服務(wù)可供查詢分享?;?span id="14ef04d0791vk" outputclass="productName" data-tag="ph" data-ref-searchable="yes" data-reuse-tag="productName" data-type="productName" data-product-code="fnf" docid="3997304" data-source="reuse_library" class="ph productName">云工作流的自動化工具比單機(jī)運(yùn)維腳本具有高可用、自帶的錯誤處理機(jī)制和進(jìn)度圖形化的特點(diǎn)。