参考

技术文档中的各种架构图该怎么画?
https://mp.weixin.qq.com/s/lrNRFakWLbGbONYFqI8abg
《系统架构师》考试内容:《系统架构设计师考试宝典+各种系统架构图》,公众号“大数据架构师”后台回复“系统架构”即可下载。

说明

所有的架构都是基于业务出发的,因此脱离实际业务的架构都是无意义的。

  • 总体架构涵盖系统的方方面面;
  • 逻辑架构阐述整个系统是如何实现业务需求的;
  • 技术架构则从技术实现的角度阐述系统的构造;
  • 数据架构讲解数据从哪来,到哪里去;
  • 部署架构则讲清楚系统放在那台服务器上,怎么才能访问到;
  • 功能架构用来组织业务功能;
  • 运行架构则解析系统内部运行机理。

总体架构

总体架构需要说明几件事情:
1、整个系统的硬件设置是怎么回事?
2、数据大概是从哪里来,怎么采集、存储、处理、交换的?
3、做了哪些功能抽象,以便于支撑上层的应用?
4、提供哪些业务应用?管理、控制等功能有哪些?
5、终端用户怎么访问和使用这些应用?
6、该系统与外部系统是怎么进行对接的?
7、如何保障整个系统的安全、可靠、高质量的建设?
image.png

逻辑架构

逻辑架构里会去掉各种保障、底层的硬件基础等非软件开发逻辑核心的内容。
有很多简单的项目不用写逻辑架构,直接用总体架构就行了。复杂的就要把总体架构中间分层的逻辑写清楚一些。
逻辑架构设计的目的是描述整个系统是怎么产生的,即所谓的系统架构。早期的单体架构,后面的各种分层架构、微服务、服务网格等,说的都是在这方面内容。
在设计的时候,会用到多种设计模式,比如你看到有一个应用支撑层/服务层之类的,这就是做了一个MVC,把业务逻辑和用户前端分离。而所有的逻辑架构都有数据层,这是最早的MVP,即数据、用户视图和处理逻辑分离。当然,系统越复杂,架构图就越复杂。
image.png

应用架构

顾名思义,就是应用太丰富了,需要整理整理。内部有哪些应用,怎么对外部提供服务。很多项目都没有这个,因为应用比较少,不值得花时间单独写。
image.png

技术架构

技术架构就是表达在每一层都用什么组件、什么技术解决什么问题。
image.png

数据架构

数据架构就是从数据侧描述数据怎么来、怎么存、怎么加工、怎么使用。
从数据源开始,数据通过哪些方式集成过来;集成到数仓之后,都存在哪里,数仓怎么分层,每一层都干啥;在数据集市中又怎么存、怎么管;到数据应用层又提供哪些应用。上面所有的一切,都用什么技术,什么组件,解决什么问题。
image.png

部署架构

部署架构也叫网络架构,就是底层服务器、网路的设计,提供网络安全、服务可靠性的设计。再简单一些理解,就是你这些应用、数据库都放在哪台服务器上,这些服务器都在哪个ip端,怎么进行访问。
image.png

功能架构

就是前台页面的功能菜单的目录结构。表达怎么组织系统的所有功能给用户提供相应的服务。

运行架构

运行架构其实就是软件系统内部是怎么运转的,一般会画很多时序图、状态图、活动图。比较费劲,一般不单独画一个运行架构,而是在概要和详细设计里画。