软件架构设计_软件架构设计:五视图方法的介绍

4cc67ff5e1ba4e3036e49c1c7299c198.png

在软件架构中,都知道画架构图是架构师必须掌握的一项基本功能。但是软件系统经过数十年的发展和迭代,已经由当初的单体应用变成了现如今非常复杂的分布式应用,且其所服务的业务量也是已是指数级的增长。面对如此庞大的软件系统,一张架构图已经不能概括出系统的全貌。作为一名架构师,应该从哪些方面着手进行架构的梳理,从而概括出系统的全貌呢?五视图方法论是一个可以参考和实践的方案。

五视图方法论里面将系统架构图划分成了五中类型,分别是逻辑视图架构、开发视图架构、运行视图架构、物理视图架构、数据视图架构。从它们的名称上,我们可以大致理解几种架构实体的侧重点。

逻辑视图架构:通俗的理解即我们平常说的系统分成,主要从系统业务梳理的层面入手将系统分成不同的层级,常见的比如前后端分离、三层架构(表示层、业务层、数据层)等。在时下流行的微服务方案中,如何结合业务和团队资源,将系统拆分成多个合理的微服务,也是逻辑视图架构设计时需要考虑的问题。

开发视图架构:主要关注项目具体实现时的技术方案选型方面的问题,比如系统采用什么开发语言、使用什么框架、采用什么开源或第三方组件、数据库/消息中间件/缓存中间件使用什么组件等。从技术角度对系统各个层面的实现方案进行选型,最终将各种组件和框架整合在一起,能够支撑产品当前的功能需求以及未来的扩展述求。

运行视图架构:主要关注系统运行过程中的一些事项的设计,比如系统间各模块的通信机制、并发模式下线程的调度和协调、数据一致性、熔断限流等问题。

物理视图架构:主要关注部署和运维相关的方案,需要考虑系统在不同的业务场景下,需要多少网络、存储、计算资源,如何让系统具有高可用和弹性伸缩的能力,以及单点故障规避方案等都需要考虑,总之就是要考虑清楚如何部署运维才能保证系统长时间稳定的不间断运行。

数据视图架构:主要关注系统数据的可靠持久化和高性能响应问题。比如数据如何存储备份、容灾方案如何设计等都需要考虑,比较数据是一家公司最重要的资产,必须保证数据的可靠性和安全性。

以上这么多的视图架构,如果都让一个架构师设计,往往无法兼顾,且对一个人的能力要求很高。因此,很多公司里面又将架构师细分成软件架构、系统架构、业务架构等角色,将不同的架构任务进行拆分。

正所谓“书山有路勤为径,学海无涯苦作舟”,技术日新月异,更新太快,学是学不完的。撸起柚子尽力钻研吧。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值