架构设计的目的是什么?

架构设计的目的主要是为了解决软件复杂度而提出的解决方案。架构设计并无好坏之分,比如最近大家都在推崇微服务架构,各种微服务架构和单体架构的优缺点比较,但是微服务架构真的就碾压单体架构吗?抛开业务谈架构都是耍流氓! 因为软件架构设计是为了解决软件复杂度的,首先需要先识别出业务复杂点,然后根据解决这些复杂点而提出的架构设计。

比如我之前设计的XX平台,该平台主要是用于私有化部署在客户机房,提供一键登录和本机校验能力,由于客户请求量一般不会太大,绝大多数客户的并发量不会超过200/秒,而考虑到实施部署的简单性,而采用分模块单体架构,根据业务能力,分为统计分析模块、API模块、WEB管理模块,且API模块考虑到扩展性采用无状态设计,实施人员在部署该平台的时候,只需要启动这三个模块即可,实施简单,甚至有实施人员反馈该平台是其所经历的平台中实施部署最简单的一个。面向这种业务场景的平台,如果采用分布式微服务架构,不见得比单体架构好,甚至加大了系统复杂度。

而对于公司云平台,则大多采用微服务架构,主要为了解决系统的高可用、高扩展以及高并发,此时如果采用单体架构,随着业务的发展,在系统的可扩展性、可维护性上都会存在各种问题,比如修改了某一块功能,需要回归测试所有功能,系统编译部署耗时长等。

此外,在做架构设计时,除了考虑到系统复杂度之外,还需要考虑团队经验、资源、业务所处阶段等各个因素,在综合这些因素之后所设计的最合适的解决方案。比如团队成员不熟悉Go语言,如果在设计阶段决定采用Go语言进行开发的话,增加团队成员的学习成本,从而导致项目不能按时交付。

打赏
支付宝 微信
上一篇 下一篇