• 云端微服务架构设计


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

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

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


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

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

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

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

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

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

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

    我们来看书上的例子;

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

  • 相关阅读:
    FZU 1759 欧拉函数 降幂公式
    51nod 1126 矩阵快速幂 水
    Codeforces Round #325 (Div. 2) D bfs
    Codeforces Round #379 (Div. 2) A B C D 水 二分 模拟
    Codeforces Round #284 (Div. 2)A B C 模拟 数学
    CentOS 7 rsync
    子进程 已安装 pre-removal 脚本 返回了错误号 1或2 与 子进程 已安装 post-installation 脚本 返回了错误号 1或2
    VirtualBox
    Eclipse 安装 HDFS 插件
    docker log 文件 清理
  • 原文地址:https://www.cnblogs.com/zitjubiz/p/design_pattern_micro_service.html
Copyright © 2020-2023  润新知