肥宅钓鱼网
当前位置: 首页 钓鱼百科

怎么样绘制架构图(怎样画一张人见人爱的系统架构图)

时间:2023-06-11 作者: 小编 阅读量: 1 栏目名: 钓鱼百科

所以,设计IT系统架构图,第一步就是要完成合理的“抽象”。两者都想要了解系统的基本原理,不想面对一个黑盒产品,但是非开发者型客户通常不需要了解过多的技术细节,所以适合使用较高抽象水平的表达。

文/明道云创始人任向晖

在我们IT行业,经常要画系统架构图。这是和客户,上下游伙伴进行技术和商务沟通的有效工具。几乎任何一个复杂企业软件产品和方案都会把系统架构图作为商业表达的重点。在技术研讨会上,这些架构图往往是幻灯片的主角,不仅出现在现场屏幕上,还是现场观众举起手机拍照的重点对象。所以,一副精确且大气漂亮的系统架构图能够同时体现公司产品的架构能力和品牌形象。

IT架构图看起来总是高大上,复杂的系统有时候不知道从何着手,但只要掌握几个关键步骤,你就能够做出惊艳的成果来,让读者赏心悦目的同时,增强研读的兴趣。

一、从具象到抽象

架构图表达的就是事物的结构,大多数领域都可以用具象的方式来呈现,比如下图中的人体器官系统图就显得一目了然。但是IT行业几乎没有具象表达的可能性。不像人体器官系统的直观视觉表达那么有效。所以,设计IT系统架构图,第一步就是要完成合理的“抽象”。

1、恰当的颗粒度

抽象最重要的目标就是决定用什么样的颗粒度来列出事物,而不是巨细无遗。这完全取决于架构图的受众和想要表达的系统的规模。越是非技术受众,越要降低颗粒度,越是大型系统,也要降低颗粒度。虽然我们可以在一个架构图中表达事物的层次,但是平面空间总是有限,就像人体器官分布图没办法呈现细胞组织一个道理。

IT系统架构图的受众通常包括客户和技术伙伴。两者都想要了解系统的基本原理,不想面对一个黑盒产品,但是非开发者型客户通常不需要了解过多的技术细节,所以适合使用较高抽象水平的表达。而参与产品生态的开发者、合作伙伴则希望了解更详细的系统信息,拓扑结构,因此需要一个颗粒度更高的表达版本。这一版本通常出现在产品技术白皮书中。

举个操作系统的例子。如果要用一个架构图呈现Windows的系统架构,对普通用户只需要切入到系统内核、内存管理、文件系统、GUI、设备管理这样的大模块就行。但对于Windows应用开发者,则需要继续延伸到DLL库、注册表、API等技术细节。对于后者,实践中可能要拆分成若干个子系统的架构解析才行,因为要把所有的技术细节都放到一张图中并不友好。如果搞错了受众,用过度技术化的细节架构会让一般读者无所适从。

最简单的操作系统架构图,只有四个抽象对象

相比较,一个更加详细的macOS操作系统架构图

2、通用和规范的命名

确定了抽象层级,在架构图上就要列出需要表达的事物对象。因为缺乏具象的参照,所有的对象表达唯一途径就是文字标签,最多加上符号图标。这就要求制作者必须使用规范或约定俗成的事物命名,否则读者将无法理解。比如,上例中的操作系统架构图,File System绝对不能写成Doc System,因为只有前者是一个规范名称。

很多IT产品设计中会有自己的独特命名组件,甚至这些命名没有任何的语义元素。这些命名在架构图中出现必须要附加实际含义的说明,否则没有读者会知道“海豚系统“是什么意思。当然IT行业中也会出现强势垄断产品,以自己的独特命名确定行业标准,以至于你不知道都不好意思,这种情况当然另当别论。

当使用图标和符号来表达事物对象时,要注意选择规范和识别性强的图形。在一些非常专业的领域,比如电子电气架构图,甚至有对各种组件规范的标准定义。即使有含义准确的符号图标,依然建议制作时附加上文本标签,可以让架构图的读者更明晰地理解。相反,没有图形,只有文字的架构图是完全可以接受的。

得益于该行业突出的模块化程度,电子电路也有抽象表达的架构图,但它有严谨的绘制规范。

3、明确抽象对象之间的关系

在进入正式的绘制之前,我们还要确定抽象对象之间的关系。这将决定我们用什么视觉形式来准确地表达架构。

在抽象系统架构中,各种对象之间的关系只有三种:包含、并列和联结。比如操作系统包含用户模式和内核模式,用户模式和内核模式是并列的,客户端和服务器是通过TCP/IP协议连接(联结)的。无论系统多么庞大和复杂,对象和对象之间的关系就这么几种。而且,在平面空间中,无论怎么演绎,也只能有效地表达这些有限的关系类型。

你只需要稍稍瞥一眼下图,就知道各个方块所代表的组件彼此之间的关系了。看罢这个参考,我们就可以开始动手绘制了。

二、确定架构图形态1、三种基本形态

鉴于抽象对象之间有限的关系种类,架构图无非有三种形态:

分叉模式(Branching Model),表达事物的分支

网络模式(Network Model),表达事物的联结

通过空间组合,组合以上两种模式

所以,不必担心要表达的系统有多么复杂。只要认知到系统对象之间的内在关系性质,就不难选择一个基本形态来表达。如果空间允许,也完全可以综合运用分叉和网络一体化表达更完整的系统。

分叉模式

网络模式

2、确定边界

架构图既然表达的是一个系统,那么这个系统必然有一个明确的边界。计算机网络的边界是与上一级网络的连接网关,一个SaaS软件的边界是主体应用、其依赖的开源组件和网络服务。确定边界后的系统才能盘点内部所包含的组件对象层次和数量。依据第一步所介绍的抽象过程,我们根据受众需要,决定最终在画面上布局那些对象。一般而言,一个系统架构图不宜超过30-40个对象,超出这个限制则可能要考虑提高抽象层次;反过来,如果一个架构图只包含寥寥数个对象,那么我们也犯不着劳累追求架构图的高要求,转而用一些简单的框图就能够搞定,这时候,我们应该降低抽象层次,以反映出更具体和详细的架构信息。

超出这个既定边界的对象理论上无需绘制,但有时候我们为了表达与外部系统的连接关系,会用次要色彩在边界线外绘制部分系统边界外的对象。这有点像某个行政区的地图中会把连接其他区域的交通线上标上“通往...”。

3、确定主次

假设一个系统包含10个子系统,如果往下钻取一级,就有可能要表达上百个对象。这时候如果轻重不分,则可能让最终的产出过于繁复。我们可以依据策略的需要进行选择,只分支展开系统的一部分,而让其他部分粗略表达。不必要的细节展现过多,反而让读者无法识别出重点。因为每一张架构图都有明确的沟通目标和上下文,这样主次有别的表达不仅是合理的,而且很多时候是必要的。

4、确定空间位置

空间位置是架构图设计的关键。我们要按照易于理解的逻辑关系,把抽象对象放到平面上的合理位置。读者的视觉焦点就可以被空间关系有效引导,从而更直观地理解系统结构和原理。

在确定空间位置时,根据不同的架构图基本形态,有几个重要准则:

(1)分叉模式下,要注意均衡利用空间,避免画面一部分过度稀疏,一部分过度稠密。为了实现这一点,需要借助矩形框、连接分叉线的帮助。如果遇到了实在窘迫的空间限制,也可以利用Call-out的局部放大设计来利用独立的空间详解一个特定模块。

(2)分叉模式下,依然要关注逻辑次序。在树状分叉下,虽然每个分支的地位都是均等的,但是并不意味着可以随便决定次序。设计者依然可以根据同级别对象的主次关系、先后关系来决定排序。

(3)网络模式下,根据被联结组件的性质决定南北向。在IT架构设计中,一般把底层的基础技术组件定义为北向(North Bound),放在架构图的下方,把高层级的应用组件定义为南向(South Bound),放在架构图的上方。把中间的各个技术组件依照高低位性质依序排列联结。这就是我们经常看到的分层技术架构图。

典型的分层技术架构图

当然,南北向也不是绝对的上下结构。只要条理清晰,左右结构也同样可以表达这些递进的层次。例如下图:

(4)网络模式下,可以将具备联结关系的对象放在彼此邻近的位置上,以方便创建清晰的连接线。比如下图,在同一级别的层次上,可能存在彼此需要联结的组件。这时候,是放在左边,中间,还是右边就有一定的讲究了,否则就无法绘制出简洁的连线。

三、视觉设计

最后一部分,我提供一些有用的视觉设计技巧,它可以帮助你绘制出更美观的架构图。

1、制定统一的设计范式

在抽象架构图中,会充满组件框和连接线。无论使用何种绘图工具,先要定义出标准的图形样式、色彩、文本标签的字体、字号、连接线样式等。在真个架构图中,应该依据这些定义好的基本样式来重复对象,而不是想到哪里,画到哪里。很多架构图看起来充满了完全不同的组件样式,看起来凌乱不堪,就是因为缺乏了这个范式的约束。像下面这张架构图,制作者显然是随意在应用色彩和特效填充。

架构图上的同性质组件只能使用单一的图形样式,字体、字号和粗细都要统一,影响观感一致性的还包括字距、文本框边距(margin)、文本框间距(padding)、文本对齐模式等细节。这些样式属性,稍微有一些不一样,放到一张架构图中就会一眼看出来,非常不舒服。

原则上,我们应该最少的样式差异,不要使用过多数量的色彩,不要为了区别事物,把什么属性都重新定义一边。两类事物之间,靠色彩能区别,靠标签字号也能区别,甚至仅仅靠色彩明度就能区别,不需要同时变化两个属性。

2、使用图形符号辅助表达

利用计算机领域约定俗成的符号、专有图标或三维图形来增强架构图设计,可以让读者更轻松地阅读架构图。而且,精致的画面可以给读者传递系统的精密度和高质量感受。

用具象物缩略图来表达系统组件

用三维图形来表达组件层次

3、使用附注、旁注来平衡空间

在技术性较强的架构图中,有时候我们必须向读者提供一些重要的技术细节,但是架构图的空间可能不允许我们这么做。此时,可以使用编号附注或者Call-out连线的旁注来实现。

使用附注来说明系统组件,一般在有具象特征的架构图中使用


最后,我送上明道云的系统架构图。它设计简洁,充分使用图标符号来辅助读者阅读,很直观地说明了一个现代的零代码APaaS产品的技术实现、运行环境和集成方法。仅为了这个架构图,我们需要产品、研发和市场营销团队的通力协作,因为很少有设计师能够完全懂得复杂的云原生架构,也很少有架构师和工程师能够掌握必要的商业美学。

下载高清PDF

    推荐阅读
  • 小人物大精神作文800字七年级(怎么写小人物大精神作文)

    我们生来就是小人物,对世界来说宛如一粒粒微尘。有人生来就是一个小人物,还早早言弃,自己一定是一个不会展翅高飞的鸟儿,但也有人不言放弃。在我国也有这样的人,刘邦、项羽便是名载史册的英雄,可前者成就了千古霸业。而项羽虽年少,却敢于破釜沉舟,一迅雷不及掩耳之势,取得巨鹿之战的胜利。两人都是小人物通过大事件,引起了大众关注,让人认可,一跃成为人人口中的成功者。

  • 黄瓜胶白天用还是晚上用(黄瓜胶什么时间段可以使用)

    下面内容希望能帮助到你,我们来一起看看吧!黄瓜胶白天用还是晚上用黄瓜胶是白天和晚上都可以用,只不过晚上用效果更好。黄瓜胶含有丰富的营养成分,对肌肤有一定的修复作用,而晚间是肌肤自行修复损伤最好的时间段,黄瓜胶可以起到辅助的功效,当然白天也是可以用黄瓜胶的。

  • TVB新电视剧荒诞剧团要上线了(TVB新电视剧荒诞剧团要上线了)

    《荒诞剧团》电视剧全剧共8集,计划于4月16日在TVB的myTVsuper上线。《荒诞剧团》电视剧主要演员《荒诞剧团》电视剧主要讲述了敖嘉年饰演的一名青年导演,怀才不遇,经常受到投资人的打击。蒋家旻也是第一个担当女一号。敖嘉年非常珍惜这次担正的机会,表示:让我担任《荒诞剧团》男主角,我心里很感恩,对我意义很大。

  • 吃什么补铁效果最好(贫血的注意了)

    以下内容希望对你有帮助!其次,补铁还可以多吃黑木耳,黑木耳所含的铁元素非常丰富,可以快速有效地缓解由于缺铁导致贫血引起的不良症状。此外,补铁还可以多吃枸杞,枸杞中不仅含有丰富的铁元素,还含有丰富的维生素、类胡萝卜素、纤维素等,具有益气补血、滋肾润肺的功效。多食补铁的食物,不仅可以有效的为人体快速提供铁元素,还可以提高人的身体免疫力和抵抗力,减少由于免疫力和抵抗力低下引起的疾病出现。

  • 前列腺炎没治好会一直尿频吗(前列腺炎一直没治好)

    一类是非细菌性前列腺疾病的患者,在患病期间一直吃抗生素的。首先需要清楚的是,前列腺抗生素药物主要是针对细菌性前列腺疾病使用的药物,其目的是抑制细菌性前列腺疾病的有害细菌。不论患的是急性前列腺炎还是慢性前列腺炎,都不建议患者自行购买药品服药治疗。很多患者就从补肾壮阳入手来治疗前列腺疾病,服用补肾壮阳的保健品和药品,希望能够改善自己的问题。

  • 唐山住宅专项维修资金应急使用条件是什么?

    唐山住宅专项维修资金应急使用条件是什么?

  • 翡翠抛光方法(翡翠是如何抛光的)

    下面更多详细答案一起来看看吧!翡翠抛光方法上膏,给雕刻好的翡翠表面涂上抛光粉。推磨,用两千目的砂轮磨翡翠的表面。将前面的步骤多重复两遍,颜色更加贴合。将钻石粉涂在翡翠的表面,硬毛刷抛光翡翠的表面。注意不到的位置,要细细的进行抛磨。上蜡,是对翡翠成品表面的保护,开水可以洗掉。将翡翠吹干或晾干,翡翠成品整体就完成了。

  • 伽罗攻速阈值怎么卡(攻速阈值是多少)

    伽罗攻速阈值怎么卡?伽罗攻速阈值,接下来我们就来聊聊关于伽罗攻速阈值怎么卡?以下内容大家不妨参考一二希望能帮到您!伽罗攻速阈值怎么卡伽罗攻速阈值伽罗开启一技能攻速阈值可以看到有两个攻速阈值一样,那就是26.2和89.2。因为伽罗手长,有时候打一些出不祥征兆的前排,会被减30攻速所以我们出满200,这样就算减30,也还有170的最高阈值。然后前面装备加铭文,已经有179%的攻速了,还差21%。

  • 不思议迷宫新手任务怎么接(如何度过新手期)

    理解冈布奥的阵营和职业《不思议迷宫》中所有的冈布奥都有阵营,分别是奥鲁维之刃、卡那斯的启示、游荡者之歌、深渊的咆哮。随着主线的推进,每次战斗会有两个灵魂链接的名额,可以和同阵营的冈布奥进行连接,一起出战。奥鲁维之刃阵营中的冈布奥是新手接触最多的每个冈布奥除了有阵营还有职业,分为战斗系、法师系、冒险系。且看小怪物“冈布奥”如何战胜大怪物拯救世界!

  • 现在坐飞机不能带什么东西(到底不能带什么)

    携带化妆品、充电宝这些常用物品都有哪些要求?跟着小编一起来看一看吧!现在坐飞机不能带什么东西近日,民航局公布了最新《民航旅客禁止随身携带和托运物品目录》和《民航旅客限制随身携带或托运物品目录》,并将于2017年1月1日起正式实施。以后乘机出行到底什么能带,什么不能带?急急侠为大家整理了一份最新行李携带托运指南。一起来瞧瞧,转给身边的“空中飞人”!