無伺服器Serverless將變革工作流BPM
無伺服器是基於事件驅動的,那麼是不是無伺服器只能用來實現事件驅動呢?當需要以低延遲來處理資料流時,函式程式設計、事件流和事件源是這項任務的最佳選擇工具。
但是,只有少數解決方案才能採取真正的事件溯源Event sourcing,並實現“事件回放”。更常見的方案則是比較簡單:按照特定順序對函式和API端點進行一系列呼叫,在呼叫之間傳遞資料,並儲存狀態。如果錯誤地將基於事件的程式設計正規化應用於這些簡單問題反而使得解決方案複雜化,難以推理,難以除錯,並且經常導致反模式,例如將呼叫順序和狀態轉換邏輯放在函式程式碼中。
而工作流解決方案就非常適合這種情況,因為它們擅長三個關鍵需求:協同邏輯;在任務之間傳遞資料;並保持清晰,透明的執行狀態。
在無伺服器中,工作流不會取代基於事件架構EDA,而是在它們適合的地方進行補充。一個典型的無伺服器+事件溯源的例子 - Nordstrom 的“Hello Retail”,這是使用工作流來協調邏輯順序和儲存大部分狀態的。
毫不奇怪,所有三大雲都急於引入Workflow作為一種服務提供。
Microsoft Azure首先推出LogicApps,它是利用Workflow Foundation, System Center Orchestrator和Powershell Workflows挖掘其在工作流管理方面的專業知識,微軟LogicApps創新地實現了之前所謂的不可能,吸引了開發人員和非開發人員。它有一個圖形化的工作流編輯器,並得到以程式設計師正規化定義的基於JSON的工作流定義語言的支援,但具有更強大的功能,可以在任務之間傳送資料,更不用說有150個隨時可用的聯結器可與“一切”整合。
亞馬遜跟進推出了StepFunctions,放棄了以前所謂的簡單工作流服務。急於上市導致了較差的運營經驗:例如在修改工作流程時會丟失歷史執行記錄等,但它的基礎亞馬遜狀態語言是堅實的、簡單的。具有出色的資料引用功能和豐富的錯誤處理功能,包括重試和捕獲。簡單性需要權衡:它不支援高階工作流模式,如分支和join,只支援順序和並行邏輯。
谷歌終於也加入了,放棄了“not invented here”的態度,並採用其開源AirFlow工作流程引擎,用於其Google雲平臺產品和Cloud Composer(這個名稱讓人想起Extreme Workflow Composer,這是另一個基於OpenStack Mistral的工作流程自動化工具)。AirFlow長期以來一直得到工作流專家的良好評價,它使用Pythonic領域特定語言(DSL)進行工作流定義,圍繞有向無環圖(DAG)的良好架構,基於操作和掛鉤提供可擴充套件性,以及使用XCom,這是Google的跨任務通訊設施的暱稱。你可以在此處找到AirFlow概念的概述。
還有一些新的較小的工作流程專案,如來自Fn專案的Flow,或來自我們自己的StackStorm的Orquestra。
如您所見,這些工作流引擎在工作流原語、操作方便性、可呼叫型別以及擴充套件性、容易程度方面存在很大差異。存在許多微妙的方式不同。但是它們有一個共同點:它們被用於連線無伺服器架構。當談到無伺服器時:透過一些開發努力和獨創性,使用它們都可以完成工作。值得關注的兩個小塊 - 定價和對我們的架構的影響。
當解決方案利用某些工作流功能時,或者在缺乏if的情況下工作時,對架構的影響就會體現出來。例如,LogicApps支援帶有'for_each'關鍵字的“多例項資料”工作流模式,因此可以在工作流級別處理資料陣列。StepFunction不支援它,它將處理陣列的責任推到了你自己的解決方案級別,或者直接進入Lambda函式。
讓我們面對現實:儘管工作流程產品存在功能差異,但優點和缺點 - 甚至是定價 - 都不會成為你選擇雲提供商的決定性因素。恰恰相反:你可能會選擇的雲中的工作流服務WFaaS,享受專業人士服務並汲取利弊,就像我們一直使用PaaS一樣。除非你想反叛並按自己的方式行事,否則它適用於任何雲,甚至是雲端。
但是,只有少數解決方案才能採取真正的事件溯源Event sourcing,並實現“事件回放”。更常見的方案則是比較簡單:按照特定順序對函式和API端點進行一系列呼叫,在呼叫之間傳遞資料,並儲存狀態。如果錯誤地將基於事件的程式設計正規化應用於這些簡單問題反而使得解決方案複雜化,難以推理,難以除錯,並且經常導致反模式,例如將呼叫順序和狀態轉換邏輯放在函式程式碼中。
而工作流解決方案就非常適合這種情況,因為它們擅長三個關鍵需求:協同邏輯;在任務之間傳遞資料;並保持清晰,透明的執行狀態。
在無伺服器中,工作流不會取代基於事件架構EDA,而是在它們適合的地方進行補充。一個典型的無伺服器+事件溯源的例子 - Nordstrom 的“Hello Retail”,這是使用工作流來協調邏輯順序和儲存大部分狀態的。
毫不奇怪,所有三大雲都急於引入Workflow作為一種服務提供。
Microsoft Azure首先推出LogicApps,它是利用Workflow Foundation, System Center Orchestrator和Powershell Workflows挖掘其在工作流管理方面的專業知識,微軟LogicApps創新地實現了之前所謂的不可能,吸引了開發人員和非開發人員。它有一個圖形化的工作流編輯器,並得到以程式設計師正規化定義的基於JSON的工作流定義語言的支援,但具有更強大的功能,可以在任務之間傳送資料,更不用說有150個隨時可用的聯結器可與“一切”整合。
亞馬遜跟進推出了StepFunctions,放棄了以前所謂的簡單工作流服務。急於上市導致了較差的運營經驗:例如在修改工作流程時會丟失歷史執行記錄等,但它的基礎亞馬遜狀態語言是堅實的、簡單的。具有出色的資料引用功能和豐富的錯誤處理功能,包括重試和捕獲。簡單性需要權衡:它不支援高階工作流模式,如分支和join,只支援順序和並行邏輯。
谷歌終於也加入了,放棄了“not invented here”的態度,並採用其開源AirFlow工作流程引擎,用於其Google雲平臺產品和Cloud Composer(這個名稱讓人想起Extreme Workflow Composer,這是另一個基於OpenStack Mistral的工作流程自動化工具)。AirFlow長期以來一直得到工作流專家的良好評價,它使用Pythonic領域特定語言(DSL)進行工作流定義,圍繞有向無環圖(DAG)的良好架構,基於操作和掛鉤提供可擴充套件性,以及使用XCom,這是Google的跨任務通訊設施的暱稱。你可以在此處找到AirFlow概念的概述。
還有一些新的較小的工作流程專案,如來自Fn專案的Flow,或來自我們自己的StackStorm的Orquestra。
如您所見,這些工作流引擎在工作流原語、操作方便性、可呼叫型別以及擴充套件性、容易程度方面存在很大差異。存在許多微妙的方式不同。但是它們有一個共同點:它們被用於連線無伺服器架構。當談到無伺服器時:透過一些開發努力和獨創性,使用它們都可以完成工作。值得關注的兩個小塊 - 定價和對我們的架構的影響。
當解決方案利用某些工作流功能時,或者在缺乏if的情況下工作時,對架構的影響就會體現出來。例如,LogicApps支援帶有'for_each'關鍵字的“多例項資料”工作流模式,因此可以在工作流級別處理資料陣列。StepFunction不支援它,它將處理陣列的責任推到了你自己的解決方案級別,或者直接進入Lambda函式。
讓我們面對現實:儘管工作流程產品存在功能差異,但優點和缺點 - 甚至是定價 - 都不會成為你選擇雲提供商的決定性因素。恰恰相反:你可能會選擇的雲中的工作流服務WFaaS,享受專業人士服務並汲取利弊,就像我們一直使用PaaS一樣。除非你想反叛並按自己的方式行事,否則它適用於任何雲,甚至是雲端。
Multicloud?
多雲是否會成為現實?有人說它已經存在了,但是,從不同的雲帳戶到生產跨雲解決方案,充分利用最佳雲服務還有很長的路要走。無伺服器是將服務和平臺粘合在一起的一種方式,但單靠FaaS是不夠的。
為了滿足需求,Serverless.com推出了Event Gateway,以促進事件溯源發展,促進跨雲無伺服器解決方案。就是這種解決方案成為現實了,我相信還有一個跨雲的工作流即服務的發展空間,這樣才能在需要時提供簡單的流程編排和狀態管理。如果真的會成為現實,Gartner會將其稱為XCloud WFaaS。
相關文章
- Serverless JOB | 傳統任務新變革Server
- Serverless JOB——傳統任務新變革Server
- Serverless 對研發效能的變革和創新Server
- 工作流(Workflow)和BPM的區別
- 無伺服器Serverless總結伺服器Server
- 工作流和BPM之間的差異
- Serverless無伺服器架構詳解Server伺服器架構
- 談談BPM、工作流引擎與OA的關係
- SQLite是一種經典的無伺服器ServerlessSQLite伺服器Server
- Akka推出Serverless PaaS無伺服器雲平臺 - thenewstackServer伺服器
- 大廈將傾,網際網路將如何變革傳統行業(上)行業
- 大廈將傾,網際網路將如何變革傳統行業(下)行業
- Netflix Cosmos平臺:微服務+工作流+無伺服器微服務伺服器
- Learun智慧化BPM:如何判別企業是否需要工作流系統
- bpm
- iPhone 17系列將迎來八項重大變革和創新iPhone
- 效率變革,銳捷成就全場景無線實力派4.0
- 2020 年,Serverless 將給大前端帶來什麼樣的變化?Server前端
- SAP變革-下月將釋出基於Web的企業軟體(轉)Web
- 安全平行切面改變了網安產品技術架構,將引發行業變革架構行業
- 將Centons伺服器變成路由器伺服器路由器
- BPM系統,工作流引擎,表單引擎常用30個功能與常見問題
- 完美世界:變革進行時
- 無伺服器將像智慧手機終結PC時代帶來革命變化! -ACM伺服器ACM
- BPR和Bpm
- Serverless工作流如何整合http的fc函式運算?ServerHTTP函式
- 無程式碼開發和BPM工具有什麼區別?
- 行行AI直播:跨境出海將“風”起何方? 如何利用AI引領行業變革?AI行業
- GPT-4狂飆釋出,AI時代運維將產生哪些變革GPTAI運維
- AI如何助力製造業變革?AI
- IRI:產品創新與變革
- IT變革管理的11個硬道理
- 微服務 Spring Cloud 2020 重大變革微服務SpringCloud
- 解鎖5G變革與智慧晨曦:華為釋出邊緣伺服器伺服器
- Serverless 工程實踐 | Serverless 應用開發觀念的轉變Server
- G20加密貨幣監管法規將導致真正的區塊鏈變革加密區塊鏈
- 零程式碼平臺來了,企業管理系統即將面臨巨大變革
- E3 2019 | 光線跟蹤將為遊戲帶來怎樣的變革?遊戲