赞
踩
最近又遇到个焦头烂额的事情 ,老板有了新想法,业务有所转向,需要新的方案设计 ,架构设计,以进行后续实施。很快,第一次汇报来了, 由于前期准备时间短,模块拆分不清晰,有的部分又讲得过细节,表述的不太好,直接被打回了。
一时之间抓耳挠腮,怎么汇报,讲清其中的设计思路,争取到相应资源,是重点,也是难点。这时急需一组架构图,来辅助,拿下汇报!
开始之前,问2个问题,
业务架构图的核心目的是统一共识、减少沟通成本,无论是项目中的哪个角色大家都能讲一样的话
(超小声bb: 讲清楚, 让老板能听懂)
要明确受众,再想清楚要给他们传递什么信息。
所以你的受众是谁,决定他的关注点和理解能力,也决定他要看到什么样的架构图。
SOA 是缩写 Service-Oriented Architecture(面向服务的架构),十分经典的分层,设计模式。对应到 应用,服务,资源。
同时在规划云服务相关的架构时,还有种云计算的标准三层架构,即SaaS层,PaaS层,IaaS层。
个人理解 : SaaS层+PaaS层+IaaS层一定程度也可以映射到 :应用+服务+资源,
即SaaS代表应用,PaaS层代表服务,IaaS层代表了底层依赖的资源。
C4指定是 Context 上下文场景、Container 容器、Component 组件和 Classes 类(或者 Code 代码),对应语境图 ,容器图,组件图 ,类图
可以看出C4模型是逐层展开 ,细化的,从high level一直到细节的类设计。
这里有篇 【软件架构设计|C4模型】 介绍,写的比较详细这里不展开细述了。同时这边找了c4模型配套画图工具, 放在文末,见附录 - c4模型。
SOA 和 C4对比:这两种模型简单对比下,
这里的三层架构特指 应用架构中的一种标准设计模式( PS: 没有找到其对应专属名称,有知道的小伙伴欢迎打在评论区 :抱拳 ),通常分为表示层(门户)、业务逻辑层(应用)和数据层(支撑)。
至此,架构图的受众,目的,种类,方法论都说了。总结来看就是 ,先明确 受众,再找所需侧重点,最后选取不同方法/模板进行绘图。
下面再用几个具体示例,一起感受下,
从上到下 ,应用,服务,资源。
中间三层可以都认为是服务层 。
悄咪咪插入一张技术架构图,但是这个不是基于SOA分层思路画的,也可以明显感觉到和之前的结构差异。
这张图的技术架构重点需要回答的就是你在进行软件架构设计过程中,究竟会用到哪些关键技术,哪些开源产品或工具等。
结构从上到下:门户, 服务,支撑。注意:应用功能架构完全是重点描述应用系统具备哪些功能,一个功能究竟是采用什么三层技术架构实现并不用关心。因此功能架构不应该体现数据层,逻辑层,技术点这些内容。
看到最后,留一个开放问题,这是一张百度自动驾驶平台Apollo开放平台架构图,那么拆解下,可以理清这张架构图是基于什么思路绘制的吗?欢迎有懂行的小伙伴评论区留言。
简单来说,对照文章最开始提到,画出的图好不好的一个最直接标准就是:受众有没有准确接收到想传递的信息。方法论,工具这些都是辅助,最最最重要的,无论是什么形式的架构图,能针对受众,表达清楚。 最后再稍微分享几句我的经验,
1,学习:别人架构模板,SOA ,方法论。
2,模仿:看网上各种画的好的,最近发现个 亿图图示 里面有大量优秀图例,在文末附录 - 图例参考。
3,实践:我的笨办法 ,尽可能的枚举。不论绘制什么类型架构图,都先尽可能枚举,比如枚举场景,功能或者技术信息,尽可能多的列出相关信息 ,再整合抽象 。 也是有人说 书先读厚,再读薄的过程 。
架构图都是可以拆解和再展开的,比如对于应用层本身又可以考虑业务域进一步拆分,或者根据业务生命周期拆分为多个阶段域再展开描述。也可以说一个完整的架构本身就是多视角,可以从多个视角去描述。
最后感谢各位读者观看,创作不易 ,汇总梳理创作耗费大量时间。如果觉得有所帮助 或者 启发,还麻烦点赞,收藏,这是对作者的最大支持!:抱拳
系统架构图怎么画
如何绘制漂亮的架构图,方法论+工具:
讲什么是SOC,分层
如何画好架构图1
如何画好架构图2
人人都是产品经理, 不同种类的架构图
绘制工具参考,个人推荐draw.io,免费开源,各个端都支持,还有网页版 多人协助也可以。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。