按業務能力分解
問題陳述
微服務架構將應用程式構建為一組松耦合的微服務,每個服務都應該以敏捷的方式獨立開發,以實現持續交付/部署。當使用微服務架構構建大型複雜應用程式時,主要問題是如何設計松耦合的微服務,或者如何將大型應用程式分解成小型松耦合的服務?
解決方案
我們可以為特定業務能力定義一個微服務。業務能力是指旨在創造價值的業務活動。業務能力可以稱為業務物件。例如 -
訂單管理 - 訂單管理業務能力指的是訂單。
客戶管理 - 客戶管理業務能力指的是客戶。
業務能力可以進一步分類為多級層次結構。例如,訂單管理可以將配送、庫存、服務等作為業務能力。
示例
考慮一個線上書店的例子。它可以具有以下業務能力和相應的微服務 -
圖書目錄管理
庫存管理
訂單管理
保修管理
優點
穩定的架構 - 由於業務能力是穩定的,因此這種架構非常穩定。
跨職能團隊 - 開發團隊獨立工作,是跨職能的,並且圍繞功能特性而不是技術特性進行組織。
松耦合服務 - 開發的服務將是松耦合且內聚的。
缺點
需要充分了解業務 - 需要在瞭解業務之後識別業務能力。瞭解組織結構會有所幫助,因為組織是根據其能力構建的。
需要高級別的領域模型 - 需要業務領域物件,因為它們對應於業務能力。
廣告