系统架构设计

系统设计方法论:应用架构图、技术架构图、业务架构图定义以及到底怎么画好架构图?

架构图 = 架构 + 图

也就是说,把架构用可视化的方式表达(画)出来。

“架构”是基础,但是表现方式也非常重要,本文首先介绍常见的架构图类型,再介绍如何将架构图画的美观大方。

什么是架构图?

往往系统是非常复杂的,无法一下子全部表达清楚,架构要涵盖的内容和决策太多了,超过了人脑"一蹴而就"的能力范围,因此采用分而治之的办法从不同视角分别设计。所以,也需要从不同的维度来描述这个系统。

也就是说架构图是对系统从某种维度视角的表达,每一种架构图,都是一种视角。

架构的一大功能,就是控制系统的复杂度。

一个架构视图,是对系统从某一个视角或某一点上看到的,所做的简化的描述,涵盖了系统的某一个特定方面,忽略了此方面无关的实体。

架构图,是可视化的,是给人看的。所以,归根结底是为了交流理解。

对上,经常需要汇报,争取领导层的认同支持。
对己,借助多种视图来厘清思路。
对下,用不同视角来表达自己的想法,沟通交流。
对于架构设计师来说,架构图,是一种非常“硬核”的必要能力。

架构图的分类:

现在很多人在推崇“RUP+1”方法,或者C4模型方法来画架构图,这种架构图表达方式,更适合上面说的对己、对下来交流。

但是实际工作场景中,尤其是对上汇报中,经常需要的是如下几种架构图。

本文,也主要讲述对上汇报的几种架构图的一些理解。

另外,首先了解一下几个架构图之间的关系。

一、业务架构

业务架构,是IT架构的基础。

你也许经常听到一句话:脱离业务讲技术,就是耍流氓。

那么业务架构图怎么画?

TOGAF 中有明确的业务架构图说明,非常复杂的一套逻辑,本文不再深入。

简单来说,是从业务、产品视角,描述整个平台、或某个产品的实现。

业务架构:使用一套方法论/逻辑对产品(项目)所涉及到的业务进行边界划分。所以熟悉业务是关键。

比如做一个团购网站,你需要把商品类目、商品、订单、订单服务、支付、退款等进行清晰划分,而业务架构不需要考虑诸如我用什么技术开发、我的并发大怎么办、我选择什么样的硬件等等。

二、应用架构

应用架构(Application Architecture)是描述了IT系统功能和技术实现的内容。应用架构分为以下两个不同的层次:

企业级的应用架构:企业层面的应用架构起到了统一规划、承上启下的作用,向上承接了企业战略发展方向和业务模式,向下规划和指导企业各个IT系统的定位和功能。在企业架构中,应用架构是最重要和工作量最大的部分,他包括了企业的应用架构蓝图、架构标准/原则、系统的边界和定义、系统间的关联关系等方面的内容。

单个系统的应用架构:在开发或设计单一IT系统时,设计系统的主要模块和功能点,系统技术实现是从前端展示到业务处理逻辑,到后台数据是如何架构的。这方面的工作一般属于项目组,而不是企业架构的范畴,不过各个系统的架构设计需要遵循企业总体应用架构原则。

应用架构主要以架构图的方式描述系统的组成和框架,一般从系统功能和系统技术层次两个架构视角进行设计:

  1. 系统功能视角的应用架构图


  2. 系统技术层次视角的应用架构图


应用架构:它是对整个系统实现的总体上的架构,需要指出系统的层次、系统开发的原则、系统各个层次的应用服务。

例如,下图就将系统分为数据层、服务层、通讯层、展现层,并细分写明每个层次的应用服务。

三、数据架构图

一套对存储数据的架构逻辑,它会根据各个系统应用场景、不同时间段的应用场景 ,对数据进行诸如数据异构、读写分离、缓存使用、分布式数据策略等划分。数据架构主要解决三个问题:
第一,系统需要什么样的数据;
第二,如何存储这些数据;
第三,如何进行数据架构设计。

四、技术架构

技术框架(technological Framework)是整个或部分技术系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,技术框架是可被技术开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。

实际上,在当前分布式系统模式下,分为两种类型。

  • 单个系统

主要体现分层模型,例如持久层、数据层、逻辑层、应用层、表现层等,然后每层使用什么技术框架、组件,例如Spring、hibernate、ioc、MVC、成熟的类库、中间件、WebService等,分别说明,要求这些技术能够将整个系统的主要实现概括。注意:千万不要把技术架构图画的花里胡哨的,颜色配色不要太多。

技术架构图的要求是:精准、明确、简练。

例如,常见的:

  • 分布式系统
    但是,现在更多的情况,是多个系统模块,组成一个大的分布式系统,或者现存多个系统的情况下,需要进行集成开发一个产品。

这样的话,技术架构,就是高层级的技术架构了,不仅仅体现的是技术组件了,而是更高层级的一些模块,甚至规范。

例如蚂蚁金服的分布式金融核心套件中,就从较为高的角度给出了一整套的技术架构、方案,甚至还体现了规范标准。

业务流程图

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容