单体架构、SOA架构、微服务架构

目录

软件架构演进概述

单体架构

单体应用架构示意图

单体架构示例图 

单体架构优缺点 

优点

缺点

1、代码复杂度高

2、代码重复率高

3、技术债务和学习成本高

4、需求变更困难

5、项目部署速度变慢

6、应用扩展能力受限,无法按需伸缩

7、阻碍技术创新


软件架构演进概述

软件的架构按照不同的分类标准,可以有很多不同的说法,我在这里只取网上大多数的观点来讲解软件架构演进。软件架构的发展经历了从单体结构、垂直架构、SOA架构到微服务架构的过程。

单体架构

单体应用架构示意图

单体架构、SOA架构、微服务架构_第1张图片

单体架构示例图 

单体架构、SOA架构、微服务架构_第2张图片

单体架构优缺点 

优点

项目架构简单,前期开发成本低,周期短,小型项目的首选。

缺点

1、代码复杂度高

整个项目包含的模块非常多,模块的边界模糊,依赖关系不清晰,代码质量参差不齐,整个项目非常复杂。每次修改代码都心惊胆战,甚至添加一个简单的功能,或者修改一个BUG都会造成隐含的缺陷。

2、代码重复率高

一些业务层的公共功能被多个模块重复开发,导致研发成本上升,代码质量不断下降,架构腐化,为后续系统的运维和新功能的开发带来巨大的挑战。

3、技术债务和学习成本高

随着时间推移、需求变更和人员更迭,会逐渐形成应用程序的技术债务,并且越积越多。已使用的系统设计或代码难以修改,因为应用程序的其他模块可能会以意料之外的方式使用到了

4、需求变更困难

由于长流程无法有效拆分,代码重复率较高,代码之间的耦合度较高,导致每一次需求的变更就会影响一大片,需要做大量的回归测试来保证质量,需求的较复周期被拉长。

5、项目部署速度变慢

随着代码的增加,构建和部署的时间也会增加。而在单体应用中,每次功能的变更或缺陷的修复都会导致我们需要重新部署整个应用。全量部署的方式耗时长、影响范围大、风险高,这使得单体应用项目上线部署的频率较低,从而又导致两次发布之间会有大量功能变更和缺陷修复,出错概率较高。

6、应用扩展能力受限,无法按需伸缩

单体应用只能作为一个整体进行扩展,无法结合业务模块的特点进行伸缩。

7、阻碍技术创新

单体应用往往使用统一的技术平台或方案解决所有问题,团队的每个成员都必须使用相同的开发语言和架构,想要引入新的框架或技术平台非常困难。

未完待续……

你可能感兴趣的:(SOA面向服务的架构)