随笔 - 435  文章 - 0  评论 - 110  阅读 - 62万 

成功的微服务开发始于三个关键角色的视角:

  • 架构师——着眼大局,将应用程序分解为个体微服务,然后了解微服务如何交互以提供解决方案。
  • 软件开发人员——编写代码并理解语言和开发框架将用于交付微服务。(前端,后端)
  • DevOps 工程师——确定在整个生产和非生产环境中如何部署和管理服务, 信条是保证每个环境中的一致性和可重复性

架构师在软件项目中的角色是提供解决问题的工作模型(Scalable, Resilient, and Flexible), 架构师提供了开发人员构建代码的脚手架,以便应用程序的所有部分组合在一起。 


构建微服务时,项目架构师要专注于三个关键任务:

  • 分解业务问题
  • 建立服务粒度
  • 定义服务接口

在面对复杂问题时,我们可能会将问题分解为几个重要部分,然后寻找这些部分之间存在的关系。我们在微服务架构中,过程也是大致相同。

分解业务领域是一种艺术形式,而不是非黑即白的科学问题, 

1. 描述业务问题, 并注意你用来描述它的名词。相同的出现多次的描述问题的名词, 通常很大机会是一个很好的核心业务领域和微服务。 例如O-stock 应用程序的名词示例可能是合同、许可证、和资产。

 2. 注意动词。动词突出动作,通常代表问题域的轮廓。如果你发现自己说“事务 X 需要从事物 A 和事物 B 中获取数据”,这通常表明多个服务在起作用。如果您将此方法应用于 O-stock 应用程序,您可能会发现像这样的陈述,“迈克设置一台新电脑的桌面时,他查找(lookup)可用于软件 X 的许可证数量,如果还有可用许可证,安装软件。然后,他会更新(Update)他的跟踪电子表格中使用的许可证数量。”这里的关键动词是looks 和updates。

3. 寻找数据凝聚。当您将业务问题分解为一件件,寻找彼此高度相关的数据。如果你在谈话过程中突然发现读写的数据与之前所讨论的完全不同,这个数据可能是属于另一个微服务。微服务必须完全拥有自己的数据。

 

我们来看书上的例子;

 

 

我们将把 Emma 管理的合约信息存放在哪里?
我们将在哪里存储以及如何管理许可信息(成本、许可类型、许可所有者和许可合同)?
Jenny 在 PC 上设置许可证。我们要在哪里存储资产(指PC这种固定资产)?
许可证属于拥有多项资产的组织,我们将在哪里存储组织信息?

 

posted on   Gu  阅读(97)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示