这是我参与11月更文挑战的第26天,活动详情查看:2021最后一次更文挑战
架构图基本概念
- 架构是由系统组件,以及组件间的相互关系构成的集合体
- 架构图则是用来表达这种相互关系的集合体的载体,作用有两个:
- 划分目标系统边界
- 将目标系统的结构可视化
架构的分类
业务架构
- 业务架构: 使用一套方法论或者逻辑对项目所涉及到的业务进行边界划分,业务架构的关键是熟悉业务
- 比如一个团购网站,需要将商品类目,商品,订单,订单服务,支付,退款等进行清晰划分
- 业务架构不需要考虑使用什么技术开发,并发量以及相关项目实施问题
应用架构
- 应用架构: 对整个系统实现的总体架构,需要指出系统的层次,系统开发的原则,系统各个层次的应用服务
- 比如将系统分为数据层,服务层,通信层,展现层,并且细分每个层次的应用服务
数据架构
- 数据架构: 是一套对于存储数据的架构逻辑.根据各个系统应用场景,不同时间段的应用场景,对数据进行诸如数据异构,读写分离,缓存使用,分布式数据策略等划分
- 数据架构主要解决三个问题:
- 系统需要什么样的数据
- 如何存储这些数据
- 如何进行数据架构设计
- 比如大数据架构项目的架构逻辑:
技术架构
- 技术架构:
- 应用架构只关心需要哪些应用系统,哪些平台来满足业务目标的需求,而不会关心在整个构建过程中需要使用哪些技术
- 技术架构则是根据应用架构的需求,识别需要的技术需求,进行技术选型,将各个关键技术和技术之间的关系描述清楚
- 技术架构主要解决四个问题:
- 纯技术层面的分层
- 开发框架的选择
- 开发语言的选择
- 涉及非功能性需求的技术选择
架构图设计
架构图设计步骤
- 了解需要设计的架构图的类型
- 确认架构图中的关键要素:
- 产品
- 技术
- 服务
- 梳理关键要素之间的联系:
- 包含
- 支撑
- 同级并列
- 输出关联关系清晰的架构图
架构设计内容
- 架构设计需要表达的内容:
- 系统的边界以及与外界的关系
- 系统的内部组成以及各组成部分之间的关系
- 关键流程
- 数据的流转
- 开发技术的选型
- 如何部署以及需要哪些资源
架构设计方式
- 系统边界以及与外界的关系: 逻辑架构图, 总体架构, 顶层设计
- 架构图以方框的形式将各个主要实体画出来,通过线条来表现相互之间的关系
- 每一个实体的边界,每一部分的作用都需要在图中明确
- 系统的内部组成以及各组成部分之间的关系: 逻辑架构图
- 架构图以方框的形式将系统内组成的各个实体画出来,通过线条来表现相互之间的关系
- 系统内的组成可以是逻辑上的模块,也可以是物理上实实在在的微服务
- 关键流程: 流程图, 时序图
- 这一类图关键在于逻辑的一致性
- 流程中的实体要和逻辑架构中的实体一一对应
- 数据的流转: 数据架构图
- 类似流程图,只是数据架构图强调的是数据流转关系,所以箭头有特定含义
- 开发技术的选型: 开发架构图
- 架构图以方框形式表示
- 一般采用分层的画法. 比如框架层, 数据层, 前端层
- 在每一层标识采用的技术框架
- 如何部署以及需要哪些资源: 物理架构图
- 对应逻辑架构图
- 明确需要部署的节点,需要用到的中间件与数据库以及需要开同的防火墙
本文转载自: 掘金