從微服務遷移到工作流的經驗之談

2021-09-17 07:35:08 字數 968 閱讀 4404

jet公司的訂單管理系統(oms)負責處理很多業務功能,最初是由一系列微服務組成的。隨著公司的發展,這種架構所面臨的挑戰也越來越大,直到他們決定構建乙個新的基於工作流的平台。jet工程師james novino在一篇博文中介紹了舊系統面臨的挑戰、對新平台的概述以及新平台執行一年多後所總結的經驗。

oms最初使用了發布與訂閱、事件溯源和其他技術的組合。每個服務都使用相同的樣板實現,包含了三個步驟:

隨著公司的發展和需求的增長,架構的複雜性也在增加,使得維護系統變得更加困難。服務的數量也增加了,並且由於功能通常分布在多個服務中,因此導致開發周期變得更長。novino認為這是乙個很複雜的過程,需要大量的樣板**。他還指出,隨著系統的發展,構建和維護這種架構的複雜性對系統和團隊都帶來了負面影響。

因此,他們開始建立乙個能夠以更有效的方式處理所有業務工作流的新平台。他們決定設計和構建乙個基於工作流的系統,其靈感來自pat helland和他的**:life beyond distributed transactions。新系統的核心設計基於兩個保證:

這些保證為系統帶來了多個特性,包括:

novino將新架構描述為其早期管道(解碼-\u0026gt;處理-\u0026gt;解釋)的抽象版本,並在每個操作之間具有明確的服務邊界:

為了定義工作流,他們建立了乙個領域特定語言(dsl),用於定義所需的一系列執行步驟。他們還提供乙個視覺化工具,可以顯示正在執行和已經執行過的工作流。

novino指出,有一些現成的工作流編排和設計替代方案,但他們決定構建自己的方案,原因如下:

在生產環境中執行了一年多後,它們建立了大約2200萬個日誌,完成了大約9300萬個工作流。

最後,novino指出,從基於分布式微服務的架構遷移到基於工作流的架構,在設計、開發和支援過程中對其開銷產生了巨大影響。他還指出,使用dsl設計工作流並將其作為單個響應步驟實現的能力提高了他們構建複雜新系統的能力。在未來的文章中,他將更詳細地介紹他們的新設計。

檢視英文原文

從微服務遷移到工作流的經驗之談

jet公司的訂單管理系統 oms 負責處理很多業務功能,最初是由一系列微服務組成的。隨著公司的發展,這種架構所面臨的挑戰也越來越大,直到他們決定構建乙個新的基於工作流的平台。jet工程師james novino在一篇博文中介紹了舊系統面臨的挑戰 對新平台的概述以及新平台執行一年多後所總結的經驗。om...

從微服務遷移到工作流的經驗之談

jet公司的訂單管理系統 oms 負責處理很多業務功能,最初是由一系列微服務組成的。隨著公司的發展,這種架構所面臨的挑戰也越來越大,直到他們決定構建乙個新的基於工作流的平台。jet工程師james novino在一篇博文中介紹了舊系統面臨的挑戰 對新平台的概述以及新平台執行一年多後所總結的經驗。om...

從微服務遷移到工作流的經驗之談

jet公司的訂單管理系統 oms 負責處理很多業務功能,最初是由一系列微服務組成的。隨著公司的發展,這種架構所面臨的挑戰也越來越大,直到他們決定構建乙個新的基於工作流的平台。jet工程師james novino在一篇博文中介紹了舊系統面臨的挑戰 對新平台的概述以及新平台執行一年多後所總結的經驗。om...