软件系统架构设计必须掌握的4步流程

一. 识别系统复杂度

二. 设计备选方案

架构设计备选方案的工作更多的是从需求、团队、技术、资源等综合情况出发,对主流、成熟的架构模式进行选择、组合、调整、创新。设计备选方案应注意的几个事项:

① 备选方案不要过于详细。备选阶段解决的是技术选型问题,而不是技术细节。

② 备选方案的数量以 3~5个为最佳。

③ 备选方案的技术差异要明显。

④ 备选方案不要只局限于已经熟悉的技术。

三. 评估和选择备选方案

评估和选择备选方案,需要重点关注质量属性。质量属性包括性能、可用性、安全性、可扩展性等。这些属性在我往期的文章中有讲过,大家可以查阅。在评估这些质量属性时,需要遵循架构设计原则“合适原则”和“简单原则”, 避免贪大求全,基本上某个质量属性能够满足一定时期内业务发展就可以了。在评估和选择备选方案时,常用的做法,可以列举这些重要的质量属性,然后一一把它放到每一个方案中进行打分,打分时要充分考虑到团队目前的技术能力、资源分配、项目成本、外部风险等因素,最终把每一项分值加起来进行权衡,从而选出一个最优的方案。

四. 详细方案设计

详细方案设计就是将最终确定的备选方案进行细化,使得备选方案变成一个可以落地的设计方案。详细方案设计包含以下几个方面:

1. 数据存储设计。需要根据业务评估一下5年内业务数据量,然后考虑数据库技术选型、针对一些数据增加比较快的业务考虑是否采用分表分库或大数据的方式进行处理。另外,需要考虑数据库的备份及容灾、高并发场景下的可用性、一致性解决方案。

2. 通信协议设计。通信协议设计,需要根据业务特点、业务性能要求、业务安全性来决定采用什么协议?比如一个物联 系统,设备端与服务端通信通常采用MQTT或COAP协议,微服务架构中,服务间内部调用通常使用HTTP(S)或RPC协议等等。作为一名架构人员,这些协议的优缺点及原理一定要搞清楚。另外通信协议设计中,对于 文的设计也有要求, 文的大小、 文的数据结构都是要重点考虑的,因为在高并发下场景下,这些细节可能会影响到系统的整体性能。

3. 接口设计。接口设计主要体现在几个方面,一是接口的友好性,指的是入参和返回值命名规范、接口参数说明、调用示例等;二是接口的隔离原则,记住一个接口只干一件事情;三是接口的安全性,这点很重要,一般会被很多人忽略掉。接口的安全性保障一般采取令牌访问机制、数据签名/验签、白名单访问机制等。

4. 缓存和消息队列设计。缓存和消息队列设计时,一定要根据业务特点选取合适的组件,目前业界有很多这方面的开源组件,在选型时千万不能盲从。另外缓存和消息队列设计时,需要考虑缓存和消息队列自身单点故障问题。

好了,这篇文章就讲这么多,大家好对架构设计流程有个初步的认识。大家有问题可以在评论区留言,陆续分享更多架构方面的知识,感兴趣的同学别忘了加关注哟!

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年7月10日
下一篇 2021年7月10日

相关推荐