架构师成长系列:如何做高层架构设计(方法经验总结,纯干货)
前面已经讲述了如何做需求分析,通过准确、全面、深入的需求分析,我们搞清楚了到底要做什么,形成了可落地的业务架构,以及完整的功能点列表。
接下来,我们就要来进行架构设计了。
架构设计是一个软件从无到有的过程,不是一蹴而就的,我们先来看看高层架构设计。
一:在高层架构设计阶段,架构师需要做什么,包含但不限于:
技术架构、部署架构、安全架构、存储架构、网络架构 等
这是架构师的主战场之一
在这个阶段里面,我们需要对软件进行各个方面的架构设计,前面已经有了业务架构,这是我们做技术架构的前提。
技术架构涉及很多,比如:平台架构、开发架构、数据库架构等,这些统称是技术架构,就是技术方面的架构。
我们还需要考虑未来这个系统如何部署,进一步到软硬件的架构、网络架构等,这些都需要在部署架构上进行考虑。
还有呢就是安全方面的架构,这个也涉及到很多个层次,比如:防火墙的服务;进入系统的时候,网关进行的鉴权;数据进入系统,传输的安全、存储的安全等。
除了这些,还有类似于抵抗业务攻击、API回放;或者是跟业务规则结合的风控等等,这些都要在安全架构里面来考虑。
咱们做系统,可能有很多数据需要存储,不仅仅是存放到数据库,可能还有很多数据,需要根据要求和特点,分别存储到NoSql、文件 或 网络存储等地方,这就需要我们做存储架构设计。
那是不是除了这些,就不用考虑其他的呢,不是的,还有很多,比如:我们的系统需要和其他系统进行结合,那么,你的应用集成架构是怎样的?
或者说我们的系统需要对接第三方,比如:SAP、ERP、WMS等,对接的形式和对接架构是怎样的?
如果咱的系统要开放接口给其他外部系统使用,我们可能要做OpenAPI的开放架构,架构形式是怎样的?
等等的吧,这些都是咱们在做高层架构设计阶段要考虑的。
当然,这个阶段一般只是考虑高层的架构或者是结构形式,尽量不考虑业务功能的具体实现,这些工作可以放到后面的架构设计和详细设计阶段再去做。
好,了解了架构师在这个阶段需要做什么过后,来看看具体做的方法。
对于做架构设计来讲,没有特别通用的,放之四海而皆准的方法,因为如果有标准方法的话,大家依葫芦画瓢的套用,也就不需要做什么架构设计了。
根据多年的经验,不管做什么样的架构,基本都会遵循一定的方式,稍微总结一下,形成下面的基本方法。
二:基本方法
从外向内,由粗到精,逐步细化
估计大家会觉得:看上去非常简单,但感觉比较空洞,听上去是那么回事,但实际上不理解,也不知道怎么做。
这都很正常,要真正理解和掌握这几句话,需要大量的实践和思考。后面如果有机会,会给大家开设专门的训练,通过持续的训练,大家才能领悟它们背后的含义和精髓。
这里还是稍微展开给大家描述一下。
(一)从外向内
当我们去设计一个系统的高层架构的时候,我们首先把系统当成一个黑盒来看,是什么都没有的,就是要从零开始来设计。
从系统之外来看待系统,系统就是一个黑盒。然后,当我进入到系统的时候,可能会看到很多的黑球,每个黑球代表一个高层的子系统或者是大的服务。
类似的,当你把视角进入到一个黑球的时候,你又看到很多更小的黑球,相当于是模块或组件,以此类推。
这也就是所谓的从外向内,看到这个系统内部的一些组成结构,以及它们之间的关系,比如A黑球依赖于B黑球之类的。
(二)由粗到精
把从外向内审视系统内部的这个过程,当作分层来看待的话。
每一层,你都要考虑这部分具体的模块多少,相互之间什么关系,每个模块究竟完成些什么功能,每个模块的边界是什么等等的。
那么在设计的时候,刚开始肯定是一个粗略的设计,比如:A子系统的大致功能,和其他子系统的交互关系等。
随着你的视角,从外向内,一层一层审视,那么,你的设计就会逐渐从粗略走向精化。类似于刚开始只看见个轮廓,很粗略;然后一层一层的精化,会变得越来越清晰,慢慢地可以看到里面的脉络和纹路了。
这就是一个由粗到精到过程,也是实际进行软件架构设计的过程。
(三)逐步细化
由粗到精的过程中,也是设计逐步细化的一个过程。
先是整个系统到子系统;然后到模块;到组件;最后到一个一个功能块,然后继续细化,就到一个一个具体的功能了。
把这些东西都设计清楚,细化好了,就是一份不错的架构设计了。
事实上,这里讲的这个基本方法,并不仅限于高层架构设计阶段,后面的架构设计、设计细化、详细设计等阶段,也都是基于这样的方法来做,只不过不同的层次,关注点不一样而已。
基本方法大致就聊完了,估计有一些朋友还是会觉得没有什么感觉,前面也说了,后面有机会的话,给大家一些实际的训练,这样才能更深入的理解和掌握这些方法。
这个就跟大家去学游泳,学打羽毛球一个道理,每节课,教练教你一到两个动作,然后给你做个示范,通常也就五六分钟,如果讲完你就走了,你能学会游泳、学会打羽毛球吗?
答案肯定是不能的。同样道理,学习架构设计也一样,给你讲了每个阶段要做什么,以及如何做,就是做的方法,你不去反复实践和思考,不去按照这些方法反复进行练习,是很难真正理解和掌握的。
好了,本次就先聊到这儿,欢迎留言评论,与我互动,欢迎点赞、转发、收藏,希望能对大家有点帮助。
更多架构师之路干货文章,已在路上,稍后就到!