按業務能力分解



問題陳述

微服務架構將應用程式構建為一組松耦合的微服務,每個服務都應該以敏捷的方式獨立開發,以實現持續交付/部署。當使用微服務架構構建大型複雜應用程式時,主要問題是如何設計松耦合的微服務,或者如何將大型應用程式分解成小型松耦合的服務?

解決方案

我們可以為特定業務能力定義一個微服務。業務能力是指旨在創造價值的業務活動。業務能力可以稱為業務物件。例如 -

  • 訂單管理 - 訂單管理業務能力指的是訂單。

  • 客戶管理 - 客戶管理業務能力指的是客戶。

業務能力可以進一步分類為多級層次結構。例如,訂單管理可以將配送、庫存、服務等作為業務能力。

示例

考慮一個線上書店的例子。它可以具有以下業務能力和相應的微服務 -

  • 圖書目錄管理

  • 庫存管理

  • 訂單管理

  • 保修管理

Decompose By Business Capability Design Pattern

優點

  • 穩定的架構 - 由於業務能力是穩定的,因此這種架構非常穩定。

  • 跨職能團隊 - 開發團隊獨立工作,是跨職能的,並且圍繞功能特性而不是技術特性進行組織。

  • 松耦合服務 - 開發的服務將是松耦合且內聚的。

缺點

  • 需要充分了解業務 - 需要在瞭解業務之後識別業務能力。瞭解組織結構會有所幫助,因為組織是根據其能力構建的。

  • 需要高級別的領域模型 - 需要業務領域物件,因為它們對應於業務能力。

廣告

© . All rights reserved.