架构图设计:一篇教你如何画好项目中各种架构图的详细教程

4,626 阅读4分钟

这是我参与11月更文挑战的第26天,活动详情查看:2021最后一次更文挑战

架构图基本概念

  • 架构是由系统组件,以及组件间的相互关系构成的集合体
  • 架构图则是用来表达这种相互关系的集合体的载体,作用有两个:
    • 划分目标系统边界
    • 将目标系统的结构可视化

架构的分类

业务架构

  • 业务架构: 使用一套方法论或者逻辑对项目所涉及到的业务进行边界划分,业务架构的关键是熟悉业务
  • 比如一个团购网站,需要将商品类目,商品,订单,订单服务,支付,退款等进行清晰划分
  • 业务架构不需要考虑使用什么技术开发,并发量以及相关项目实施问题 在这里插入图片描述

应用架构

  • 应用架构: 对整个系统实现的总体架构,需要指出系统的层次,系统开发的原则,系统各个层次的应用服务
  • 比如将系统分为数据层,服务层,通信层,展现层,并且细分每个层次的应用服务 在这里插入图片描述

数据架构

  • 数据架构: 是一套对于存储数据的架构逻辑.根据各个系统应用场景,不同时间段的应用场景,对数据进行诸如数据异构,读写分离,缓存使用,分布式数据策略等划分
  • 数据架构主要解决三个问题:
    • 系统需要什么样的数据
    • 如何存储这些数据
    • 如何进行数据架构设计
  • 比如大数据架构项目的架构逻辑: 在这里插入图片描述

技术架构

  • 技术架构:
    • 应用架构只关心需要哪些应用系统,哪些平台来满足业务目标的需求,而不会关心在整个构建过程中需要使用哪些技术
    • 技术架构则是根据应用架构的需求,识别需要的技术需求,进行技术选型,将各个关键技术和技术之间的关系描述清楚
  • 技术架构主要解决四个问题:
    • 纯技术层面的分层
    • 开发框架的选择
    • 开发语言的选择
    • 涉及非功能性需求的技术选择

架构图设计

架构图设计步骤

  • 了解需要设计的架构图的类型
  • 确认架构图中的关键要素:
    • 产品
    • 技术
    • 服务
  • 梳理关键要素之间的联系:
    • 包含
    • 支撑
    • 同级并列
  • 输出关联关系清晰的架构图

架构设计内容

  • 架构设计需要表达的内容:
    • 系统的边界以及与外界的关系
    • 系统的内部组成以及各组成部分之间的关系
    • 关键流程
    • 数据的流转
    • 开发技术的选型
    • 如何部署以及需要哪些资源

架构设计方式

  • 系统边界以及与外界的关系: 逻辑架构图, 总体架构, 顶层设计
    • 架构图以方框的形式将各个主要实体画出来,通过线条来表现相互之间的关系
    • 每一个实体的边界,每一部分的作用都需要在图中明确
  • 系统的内部组成以及各组成部分之间的关系: 逻辑架构图
    • 架构图以方框的形式将系统内组成的各个实体画出来,通过线条来表现相互之间的关系
    • 系统内的组成可以是逻辑上的模块,也可以是物理上实实在在的微服务
  • 关键流程: 流程图, 时序图
    • 这一类图关键在于逻辑的一致性
    • 流程中的实体要和逻辑架构中的实体一一对应
  • 数据的流转: 数据架构图
    • 类似流程图,只是数据架构图强调的是数据流转关系,所以箭头有特定含义
  • 开发技术的选型: 开发架构图
    • 架构图以方框形式表示
    • 一般采用分层的画法. 比如框架层, 数据层, 前端层
    • 在每一层标识采用的技术框架
  • 如何部署以及需要哪些资源: 物理架构图
    • 对应逻辑架构图
    • 明确需要部署的节点,需要用到的中间件与数据库以及需要开同的防火墙