按业务能力分解



问题陈述

微服务架构将应用程序构建为一组松耦合的微服务,每个服务都应该以敏捷的方式独立开发,以实现持续交付/部署。当使用微服务架构构建大型复杂应用程序时,主要问题是如何设计松耦合的微服务,或者如何将大型应用程序分解成小型松耦合的服务?

解决方案

我们可以为特定业务能力定义一个微服务。业务能力是指旨在创造价值的业务活动。业务能力可以称为业务对象。例如 -

  • 订单管理 - 订单管理业务能力指的是订单。

  • 客户管理 - 客户管理业务能力指的是客户。

业务能力可以进一步分类为多级层次结构。例如,订单管理可以将配送、库存、服务等作为业务能力。

示例

考虑一个在线书店的例子。它可以具有以下业务能力和相应的微服务 -

  • 图书目录管理

  • 库存管理

  • 订单管理

  • 保修管理

Decompose By Business Capability Design Pattern

优点

  • 稳定的架构 - 由于业务能力是稳定的,因此这种架构非常稳定。

  • 跨职能团队 - 开发团队独立工作,是跨职能的,并且围绕功能特性而不是技术特性进行组织。

  • 松耦合服务 - 开发的服务将是松耦合且内聚的。

缺点

  • 需要充分了解业务 - 需要在了解业务之后识别业务能力。了解组织结构会有所帮助,因为组织是根据其能力构建的。

  • 需要高级别的领域模型 - 需要业务领域对象,因为它们对应于业务能力。

广告

© . All rights reserved.