分享

软件产品架构中什么是单体架构、SOA架构、微服务架构?

 麓山馆藏 2019-07-23



单体架构

在传统IT行业的软件系统设计大多都是各种独立子系统的堆砌,这也就是所说的单体架构,其本身扩展性差,可靠性低,维护成本高。单体架构在初期系统规模比较小的情况下尚且能够较好的支撑,但是随着系统规模的扩大,它暴露出来的问题也越来越多,主要有以下几点:

  • 复杂性逐渐变高,问题修复和新功能开发难度和成本高,引入新问题的可能性变大。同时,任意模块的缺陷都可能会影响整个系统,可靠性低。
  • 随着人员流动,加之复杂性高,新的问题很难被发现和解决,久而久之,问题逐渐变多,变难、变大,技术债务逐渐上升。
  • 随着模块不断集成,部署速度逐渐变慢
  • 想进行整体的技术创新基本不可能,阻碍技术创新
  • 垂直和水平的可扩展性差

SOA架构

随后,引入了SOA服务化(面向服务的架构,它将应用程序的不同功能单元(服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来)。但是,由于 SOA 早期均使用了ESB总线模式,这种总线模式与某种技术栈是强绑定的,如,J2EE。这又使得很多企业的遗留系统很难对接,切换时间太长,对接成本太高,新系统稳定性的收敛也需要一些时间。最终 SOA 看起来很美,但却成为了企业级奢侈品,中小公司都望而生畏。


SOA服务化思想下的微服务架构

微服务是在 SOA 上做的升华,微服务最早由Martin Fowler与James Lewis于2014年共同提出,微服务架构风格是一种使用一套小服务来开发单个应用的方式途径,每个服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP Rest API的方式(告别ESB服务总线),这些服务基于业务能力构建,并能够通过自动化部署机制来独立部署,这些服务使用不同的编程语言实现,以及不同数据存储技术,并保持最低限度的集中式管理。

简单讲,微服务不再强调传统SOA架构里面比较重的ESB服务总线,同时将SOA的思想延伸到单个业务系统内部实现真正的组件化。微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”。

从微服务的概念可以看出它有如下好处:

  • 每个服务可以独立开发,易于开发,提高开发人员的生产效率
  • 局部修改容易部署
  • 技术栈不受限
  • 单个服务支持独立部署和发布,可以进行快速迭代部署,更快的交付时间
  • 更有利于业务的扩展,可伸缩性强

转自 @软件测试开发技术栈 ,希望对您有所帮助。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多