微服务是设计模式还是架构?

use*_*494 2 microservices

经过严格的研究和分析,我终于得出了一个让我困惑的点:“微服务是一种设计模式还是一种架构”。有人说这是一种模式,它是作为单体应用程序的解决方案演变而来的,因此是设计模式。有些人毫无疑问地证实,这是一种架构,可以谈论它们的开发、管理、可扩展性、自治和全栈。我欢迎任何想法或建议让自己澄清。

Osw*_*ann 5

微服务可以最好地描述为一种架构风格。除了架构决策之外,风格还包括与组织和流程相关的考虑因素。

建筑元素包括:

  1. 按业务关注进行组件化。
  2. 在持久性方面严格解耦。
  3. 定义明确的接口和通信。
  4. 以较小的服务规模为目标。

组织要素包括:

  1. 围绕组件的团队组织(康威定律)。
  2. 团队规模限制(两个披萨团队)。

流程相关要素包括:

  1. 较少的集中治理。
  2. 更小,更频繁的发布。
  3. 技术决策的自由度更高。
  4. 面向产品的开发(敏捷、MVP、精益等)。

有关更多详细信息,我建议阅读Martin Fowler的文章