如何画出优秀的软件系统架构图

系统架构图是为了表达传递想法,如果一个表达方式能表达你的想法,就可以选择使用
很多人之所以画不好架构图,最大的痛点就是不好把握到底要画哪些内容,画得太少担心没有展现关键信息,画得太多又觉得把握不住重点。

所以现在的问题变成了:应该按照什么样的标准来明确架构图要展现的内容呢?

用不同的方式去划分系统,就会得到不同类型的架构,分别对应不同类型的架构图。常见的类型整理如下:

常见的系统架构

业务架构图 : 描述系统对用户提供了什么业务功能。用户视角或业务视角
【画图技巧】
通过不同颜色来标识业务状态:比如说哪些业务发展状态好,哪些问题比较多,哪些比较稳定,哪些竞争比较激烈等。
业务分组管理:将类似的业务放在一个分组里面展现,用虚线框或者相同背景将其标识出来。
区块对齐:为了美观,可以改变不同区块的长短大小进行对齐,让整体看起来更美观。

一个业务架构图如下所示:

一个业务架构图

这张业务架构图有三点关键信息:“MTR”区块是浅红色的,“人传人”区块是绿色的,浅红色代表正在进行的,绿色代表明年规划的。
分了 4 组:钱包业务、第三方业务、商家服务和用户管理。“转账”和“社交红包”等区块比较长,只是为了对齐后更美观,不代表业务本身的量级或者重要程度,如果要表示这样的信息,那么可以用颜色来表示。
注意,千万不要画得五颜六色,一般一张图的颜色数量控制在 3 种以内是比较好的。
所以在画图的时候你要想清楚,到底哪些信息是要放在业务架构图中重点展示的关键信息,哪些信息顺带讲一下就可以了。

系统架构图
描述后端的逻辑架构,又叫“后端架构”或“技术架构”,不管是业务系统、中间件系统,还是基础的操作系统、数据库系统等,系统架构都是软件系统架构的核心。
系统架构核心部分就是在后端;
系统就是系统,业务就是业务,系统是来实现业务的
【使用场景】
整体架构设计。
架构培训。
【画图技巧】
通过不同颜色来标识不同角色。通过连接线来表示关系。逻辑分组。
【参考案例】
如果系统比较简单,可以参考 MongoDB Sharding 的系统架构图,
如下所示:

系统架构图

如果系统相对复杂,
建议首先用一张图来展示系统架构里面的角色(Role)以及每个角色的核心功能;
然后再用一张图来展示角色之间的关系(Relation),可以参考一个支付中台的系统架构图,如下所示:

系统架构图-Role

系统架构图-Relation
  1. 应用架构图【定义】描述后端系统由哪些应用组成,一个应用就是一个可部署发布运行的程序,它是项目开发过程中,开发测试运维团队协作的基础。【使用场景】项目开发、测试。运维部署发布。子域架构设计。【画图技巧】通过不同颜色来标识不同角色。通过连接线来表示关系。复杂系统分域来画。
    【参考案例】如果系统比较简单,那么基本上应用架构和系统架构是等价的,可以参考 MongoDB Sharding 的应用架构图,如下所示:


    image.png

    我们可以看到,这张图中的 Router(mongos)、Config Servers 和 Shard(replica set),既包含了系统架构的角色信息(Router、Config Servers 和 Shard),又包含了应用信息(mongos、Config Servers 和 Shard)。如果系统比较复杂,按照架构分层的角度来看,应用架构已经到了可执行程序这一层,例如支付中台这一类的系统,包含的应用可能有几百上千个,如果把整个支付中台所有的应用都在一张图里面展示出来,信息太多太密,可能会导致架构图都看不清。这种情况下,应用架构一般都是按照子域来画应用架构图,可以参考支付中台的会员域的应用架构图,如下所示:


    image.png
  2. 部署架构图【定义】描述后端系统具体是如何部署的,主要包含机房信息、网络信息和硬件信息等。【使用场景】总体架构设计。运维规划和优化。【画图技巧】用图标代替区块,这样看起来更加美观和容易理解。【参考案例】一个简单的支付系统的部署架构图如下所示:


    image.png
  3. 系统序列图【定义】描述某个业务场景下,系统各个角色如何配合起来完成业务功能。【使用场景】结合“系统架构、应用架构和部署架构”来使用。【画图技巧】使用 UML 的序列图来画。【参考案例】“扫码支付”这个支付核心场景的系统序列图如下所示:


    系统序列图

    补充说明如果你曾经研究过架构图的标准,那么除了 4+1 视图以外,你可能还看到过 TOGAF 的“业务架构(跟这一讲的业务架构名字相同,但是意义不同)、数据架构(不是指大数据平台架构,而是指数据资产的架构)、应用架构和技术架构”这种说法,或者还看到过 C4 架构模型(Context、Container、Component 和 Code)等等。但其实目前业界并没有就架构图标准达成共识,刚才提到的 TOGAF 是企业级的架构,基本上要到 CTO 这个级别才能接触的,而 C4 模型的表达能力又不够。所以,我并没有直接套用这些内容,而是根据个人经验,将我认为最有效果的架构图整理出来。这些架构图,都是我在不同类型不同规模不同业务的公司(华为、UC、阿里和蚂蚁等)里面验证过的,你可以放心地使用。

架构图小结

https://time.geekbang.org/column/article/482815

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,509评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,806评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,875评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,441评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,488评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,365评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,190评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,062评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,500评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,706评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,834评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,559评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,167评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,779评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,912评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,958评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,779评论 2 354

推荐阅读更多精彩内容