您当前的位置:首页 > 电脑百科 > 程序开发 > 架构

如何画架构图-你需要了解核心的内在构图逻辑

时间:2021-09-17 09:43:52  来源:  作者:人月聊IT
如何画架构图-你需要了解核心的内在构图逻辑

 

今天再讲下如何画架构图。

架构图素材和软件架构构图逻辑概述

我在前面有篇文章专门分享了我制作的一些架构图的素材ppt材料,如果没有下载到,可以先关注我私信获取下载地址。

具体素材的内容可以参考:

个人实践中PPT常用构图案例分享

如何画架构图-你需要了解核心的内在构图逻辑

 

而对于软件架构设计分层逻辑在前面我也专门分享了一篇文章进行说明,这篇文章给出了核心的架构图制作思路,可以参考。

软件架构设计分层模型和构图思考

要完成一个完整的架构图构图,可以先拆分为两边+中间。两边一般是放具体的标准,规范等,比如安全管理,质量管理,技术标准规范,开发运维规范等。

中间即是重点需要考虑进行分层构建的地方。

在前面也谈到了中间部分重点参考云计算和SOA的架构分层逻辑。一般来说核心的还是资源层,平台层,应用层,门户层。而对于应用层本身又可以考虑业务域进一步拆分,或者根据价值链或业务生命周期拆分为多个阶段域再展开描述。

在云和SOA下,更加强调平台+应用构建的模式。而两者之间一般是服务层,通过SOA平台或API能力开放平台来统一接入和发布服务,以形成一个完整的资源+服务+应用的松耦合架构。

如何画架构图-你需要了解核心的内在构图逻辑

 

当然对于领域设计架构分层实际也是传统的三层架构模型和SOA架构思想的一种融合,同时独立出单独的服务层和应用层的概念。

再谈分层逻辑

一个完整的架构本身就是多视角的,如下:

如何画架构图-你需要了解核心的内在构图逻辑

 

功能架构往往可以给具体用户和业务人员看,而对于技术架构往往更多是内部团队开发人员研讨使用。而设计到资源和平台的架构图往往又是运维工程人员进行部署架构搭建的重要参考。因此不同维度的架构分层属性本身不能随意融合使用,而导致架构图混乱。

云计算分层逻辑

云平台的分层逻辑,即标准的IaaS-PaaS-SaaS三层

  • IaaS层:资源层,计算,存储,网络
  • PaaS层:各种平台可以放到这层,包括技术平台,集成平台,数据平台等
  • SaaS层:对应到应用即服务

当然在构图的时候往往会进一步做些扩展。

比如构建物联网应用的架构,一般会在底层扩展网络和感知层。如果要体现平台+应用的服务化开发思路,一般会增加一个独立的服务层或能力开放层。

云计算架构分层模型一般用在最顶层的整体架构规划设计,这类架构图重点体现出云架构分层,体现平台+应用化构建,体现出各个应用域和具体应用。

要明白在这类架构图里面,各个应用一般只会是一个小方框而不会展开。但是从整个大架构规划里面又能够看到基于云平台构建了哪些具体的应用。

类似一个智慧城市的架构图参考如下:

如何画架构图-你需要了解核心的内在构图逻辑

 

这类架构图在智慧城市,智慧政务,企业整体IT架构规划中都会应用,一般属于顶层架构设计,体现云平台分层,体现技术平台能力和各个IT应用即可。而不做展开。

应用技术架构

注意常说的类似JAVA开发里面的三层架构,数据访问层,业务逻辑层,展现层。或者类似领域模型中的领域服务层,应用层,界面接口层分层方法。

这些本质是偏应用技术架构的描述。

技术架构描述的重点不是讲清楚应用有哪些功能,而是要说清楚应用中的每一个功能是如何通过技术分层来实现的。比如你需要先定义数据库结构,开发数据访问接口,然后编写业务规则逻辑,最好实现前端界面展现设计,再将所有分层内容连接起来。

所以应用技术架构更多是应用实现技术层面的内容,而不是去关心应用实现用的底层IT基础设施资源。在应用技术架构里面一般不会涉及到底层具体的资源或平台,如果应用技术架构在底层增加了类似IT基础设施,存储等内容,就显得不伦不类了。

如何画架构图-你需要了解核心的内在构图逻辑

 

类似上图,实际就完全没有必要体现出最底层的基础层内容。

应用功能架构

如何画架构图-你需要了解核心的内在构图逻辑

 

简单来说应用功能架构需要的是体现出应用有哪些业务模块,有哪些具体的业务功能点,而不是关心应用实现的技术架构分层等内容。

但是应用功能架构最好也体现分层。

简单方式就是最下层全部抽象到基础技术支撑层里面,这里面包括了具体的和业务无关的基础技术支撑功能。中间就是应用功能层,最上层是门户层。

在应用功能层的描述中可以分具体的业务域再到业务功能逐层展开,如果业务应用本身有一个完整的生命周期或阶段线条,那么还可以按阶段来排列具体的功能模块。而底层一般放具体的基础数据管理,元数据管理等功能模块。

当然在应用功能架构的构图中,有时候还需要体现出当前应用和外部应用之间的集成,因此可以在纵向再单独增加了一个接口集成的模块。如下:

如何画架构图-你需要了解核心的内在构图逻辑

 

集成架构的构图

由于我自己经常做SOA规划咨询类项目,因此做整个企业IT应用间集成架构和做接口关系梳理的时候比较多。一个集成架构不仅仅体现出各个IT系统,更加重要的是需要体现出各个IT系统至今的集成关系和关键的集成点,在集成点上又要体现核心基础的数据流。

对于这类图整体可以理解为传统软件工程里面的数据流图的一个演进。

构图的难点是在于整体IT系统的布局,各个系统间接口连接线的设计,如果设计得不好那么集成架构图就会显得很凌乱。

这本身就是一个不断优化调整的过程,没有统一的方法可以遵循。

如何画架构图-你需要了解核心的内在构图逻辑

 

部署架构-物理架构还是逻辑架构

我们先看一个常见的网络布线和拓扑架构图。

如何画架构图-你需要了解核心的内在构图逻辑

 

这个图体现了IT基础设施架构的一个关键内容,即应用层,接入层,汇聚层。汇聚后统一进入到核心网。核心网通过DMZ区再连接到互联网。

如果你做一个IT系统的部署架构,一般不会体现最终的应用层内容。

而是体现你核心系统里面的各个IT基础设施情况,如数据库服务器,中间件服务器,缓存服务器等。但是所有的资源配置最终仍然是经过汇聚层交换机后进入到核心网。

类似如下:

如何画架构图-你需要了解核心的内在构图逻辑

 

因此在部署架构中不会去体现云平台的分层架构,也不会去体现应用分层架构,只需要列清楚具体的物理资源或逻辑资源,以及资源本身接入和汇聚的情况即可。

应用层拆分-前台应用和中台能力层

最近几年谈中台和微服务比较多,注意中台本身是一个业务概念。

实际中台层本身是原来应用层可共享的共性业务能力的下沉,中台层能力在原来是属于应用层能力的。因此在中台架构下,应用层进一步拆分为前台应用和中台能力。

类似一个电商的中台架构如下:

如何画架构图-你需要了解核心的内在构图逻辑

 

也就是中台架构下的分层应该是:前台应用+中台能力+后台

这个后台有人会理解为技术平台或技术中台,但是更好地理解是后台本身也是原来的应用层内容,也是业务能力的实现。类似在我前面文章中提到过的,企业传统的ERP系统就下沉为后台应用层能力。同时基于后台能力构建了一个抽象服务适配层,这个抽象的共享服务适配层即是中台能力。在这种场景下中台更类似一个服务层。

SOA架构分层,体现独立的服务层

对于SOA架构分层,重点要体现的就是服务,对于组件本身是属于逻辑资源层的概念,而对于服务则是资源对外暴露的能力抽象。

SOA架构分层重点就是要体现出独立的服务层,注意不是画服务总线,这里可以单独画出具体提供哪些业务服务能力,技术服务能力。在采用SOA架构进行开发的时候,整体业务系统拆分为4个组件,10类服务域,5类流程,那么在构建的时候重点就是将上述组件,服务域和流程类体现出来。

如何画架构图-你需要了解核心的内在构图逻辑

 

这里的数据层最好改为标准的组件层,更加贴近SOA架构模型。在图中的服务层已经可以看到一个个独立的API服务接口。如果服务接口数据大,一般只会划分到服务域,比如用户中心服务,采购类服务等。

多种分层思路的一个糅合

在前面谈到SOA架构分层,云平台分层,应用技术架构分层等多个分层方法,但是各种分层思路一般不混用,各有各的应用场景。

当然有时候也需要多个分层架构的思想融合。

比如需要在一个分层架构中既体现出技术架构分层,又体现出类似SOA和云的平台+应用架构思想,那么就需要多种分层架构融合。

比如前面谈到云平台是一种横向资源-平台-应用的分层方式。而对于技术架构分层仅仅是应用的进一步展开。那么我们在构图的时候就可以横向+纵向结合的方式来进行构图,同时体现出两种分层内容,参考如下:

如何画架构图-你需要了解核心的内在构图逻辑

 

参考上图,可以将技术架构的分层转变为纵向方式进行描述。而横向重点还是体现云和SOA的架构分层,整体思路就更加清晰。



Tags:架构图   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
今天再讲下如何画架构图。架构图素材和软件架构构图逻辑概述我在前面有篇文章专门分享了我制作的一些架构图的素材ppt材料,如果没有下载到,可以先关注我私信获取下载地址。具...【详细内容】
2021-09-17  Tags: 架构图  点击:(111)  评论:(0)  加入收藏
Spring Cloud 微服务总体架构图Spring cloud作为当下主流的微服务框架,让我们实现微服务架构简单快捷,Spring cloud中各个组件在微服务架构中扮演的角色如图所示。spring-cl...【详细内容】
2020-09-20  Tags: 架构图  点击:(133)  评论:(0)  加入收藏
作为一个程序员,假如让你绘制当前正在开发的项目的架构图,你会怎么绘制?背景先来同步一个理念。架构图的作用是什么?我回答一下:提供了一个简单的方法给到开发团队(从开发工程师,测...【详细内容】
2020-09-08  Tags: 架构图  点击:(104)  评论:(0)  加入收藏
作者:雪姬 ,来自:移动支付网支付宝系统架构概况典型处理默认资金处理平台财务会计支付清算核算中心交易柔性事务 支付宝的开源分布式消息中间件–Metamorphosis(M...【详细内容】
2019-07-29  Tags: 架构图  点击:(256)  评论:(0)  加入收藏
文章关键要点1、通过创建和维护架构图来提供准确且有价值的内容并非易事。大多数情况下,我们要么创建了太多的文档,要么太少,或者不相关,因为我们没能准确地定位文档的受益人...【详细内容】
2019-06-20  Tags: 架构图  点击:(442)  评论:(0)  加入收藏
此前我们聊过“业务架构、产品架构和信息架构的问题”在现实工作中我们 能见到一些公司,产品都已经上线了,却找不到一份合适的文档描述整个产品的框架,前端和后台由哪些部分组...【详细内容】
2019-05-15  Tags: 架构图  点击:(443)  评论:(0)  加入收藏
▌简易百科推荐
为了构建高并发、高可用的系统架构,压测、容量预估必不可少,在发现系统瓶颈后,需要有针对性地扩容、优化。结合楼主的经验和知识,本文做一个简单的总结,欢迎探讨。1、QPS保障目标...【详细内容】
2021-12-27  大数据架构师    Tags:架构   点击:(3)  评论:(0)  加入收藏
前言 单片机开发中,我们往往首先接触裸机系统,然后到RTOS,那么它们的软件架构是什么?这是我们开发人员必须认真考虑的问题。在实际项目中,首先选择软件架构是非常重要的,接下来我...【详细内容】
2021-12-23  正点原子原子哥    Tags:架构   点击:(7)  评论:(0)  加入收藏
现有数据架构难以支撑现代化应用的实现。 随着云计算产业的快速崛起,带动着各行各业开始自己的基于云的业务创新和信息架构现代化,云计算的可靠性、灵活性、按需计费的高性价...【详细内容】
2021-12-22    CSDN  Tags:数据架构   点击:(10)  评论:(0)  加入收藏
▶ 企业级项目结构封装释义 如果你刚毕业,作为Java新手程序员进入一家企业,拿到代码之后,你有什么感觉呢?如果你没有听过多模块、分布式这类的概念,那么多半会傻眼。为什么一个项...【详细内容】
2021-12-20  蜗牛学苑    Tags:微服务   点击:(8)  评论:(0)  加入收藏
我是一名程序员关注我们吧,我们会多多分享技术和资源。进来的朋友,可以多了解下青锋的产品,已开源多个产品的架构版本。Thymeleaf版(开源)1、采用技术: springboot、layui、Thymel...【详细内容】
2021-12-14  青锋爱编程    Tags:后台架构   点击:(20)  评论:(0)  加入收藏
在了解连接池之前,我们需要对长、短链接建立初步认识。我们都知道,网络通信大部分都是基于TCP/IP协议,数据传输之前,双方通过“三次握手”建立连接,当数据传输完成之后,又通过“四次挥手”释放连接,以下是“三次握手”与“四...【详细内容】
2021-12-14  架构即人生    Tags:连接池   点击:(16)  评论:(0)  加入收藏
随着移动互联网技术的快速发展,在新业务、新领域、新场景的驱动下,基于传统大型机的服务部署方式,不仅难以适应快速增长的业务需求,而且持续耗费高昂的成本,从而使得各大生产厂商...【详细内容】
2021-12-08  架构驿站    Tags:分布式系统   点击:(23)  评论:(0)  加入收藏
本系列为 Netty 学习笔记,本篇介绍总结Java NIO 网络编程。Netty 作为一个异步的、事件驱动的网络应用程序框架,也是基于NIO的客户、服务器端的编程框架。其对 Java NIO 底层...【详细内容】
2021-12-07  大数据架构师    Tags:Netty   点击:(16)  评论:(0)  加入收藏
前面谈过很多关于数字化转型,云原生,微服务方面的文章。虽然自己一直做大集团的SOA集成平台咨询规划和建设项目,但是当前传统企业数字化转型,国产化和自主可控,云原生,微服务是不...【详细内容】
2021-12-06  人月聊IT    Tags:架构   点击:(23)  评论:(0)  加入收藏
微服务看似是完美的解决方案。从理论上来说,微服务提高了开发速度,而且还可以单独扩展应用的某个部分。但实际上,微服务带有一定的隐形成本。我认为,没有亲自动手构建微服务的经历,就无法真正了解其复杂性。...【详细内容】
2021-11-26  GreekDataGuy  CSDN  Tags:单体应用   点击:(35)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条