企业级应用系统设计--架构的选择

简介: SOA和微服务的抉择
莎士比亚曾经说过“to be or not to be”,在当今这个企业级应用盛行的时代,我们当然选择toB。

既然选择了toB,那么toB的项目都有什么特点呢?接下来咱们看一下企业级应用的特点
(1)数据持久化
(2)海量数据的存储
(3)数据的并发访问
(4)大量的用户图形界面
(5)分级体系复杂、需要和其它应用集成
(6)数据概念不统一结构复杂
(7)复杂的业务逻辑

image.png

toB的产品面向的是企业,他主要围绕着的是企业的业务功能来进行的,众所周知,一个企业的流程是非常繁琐的,通常也会造成开发和产品之间的一些矛盾。

image.png

针对这些矛盾,这些错综复杂的业务关系,架构方面改怎么来选择呢?
传统的行业用的是SOA架构,当今主流的则是微服务,对于这两种架构,我们该如何抉择呢?
image.png

下面看一下这两个架构的对比:

概念

SOA:面向服务的软件架构(Service Oriented Architecture),是一种计算机软件的设计模式,主要应用于不通应用组件中通过某种协议来互操作
微服务架构:其实和 SOA 架构类似,微服务是在 SOA 上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。
 微服务架构 = 80%的SOA服务架构思想 + 100%的组件化架构思想 + 80%的领域建模思想

特点

SOA
1、面向服务的分布式计算。
2、服务间松散耦合。
3、支持服务的组装。
4、服务注册和自动发现。
5、以服务契约方式定义服务交互方式。

微服务
1、分布式服务组成的系统。
2、按照业务而不是技术来划分组织。
3、做有生命的产品而不是项目。
4、智能化服务端点与傻瓜式服务编排。
5、自动化运维。
6、系统容错。
7、服务快速化

“中心化”和“去中心化”

中心化:SOA主要以ESB为服务主线,每次请求都要通过ESB来进行路由,强调“中心化”服务框架,进行多次网络会话,容易造成“雪崩”效应。

image.png
去中心化:微服务主要在服务中交互,强调“去中心化”服务框架,网络开销少了一半,会避免“雪崩”效应
image.png

主要区别

image.png

现在市面上也推出了很多微服务的架构,Spring全家桶、Dubbox、Thrift等等,微服务其实就是SOA的升华,一个软件的升级!

云顶云(yundingyun.com)是国内首批专注于云计算与大数据服务的提供商,致力于“让云计算更简单”。做为阿里云五星授权服务中心,云顶云致力于为企业和政府提供方案咨询、架构设计、部署实施、系统定制、运维托管、技术培训等全方位“4S”级公有云、私有云定制化服务。

相关文章
|
5天前
|
弹性计算 Kubernetes 安全
Kubernetes 的架构问题之在Serverless Container中保障应用的安全防护如何解决
Kubernetes 的架构问题之在Serverless Container中保障应用的安全防护如何解决
34 8
|
3天前
|
弹性计算 监控 数据挖掘
事件驱动架构的优势与应用:深度解析与实战应用
【8月更文挑战第17天】事件驱动架构以其松耦合、可扩展性、异步处理、实时性和高可靠性等优势,在实时数据处理、复杂业务流程、弹性伸缩和实时通信等多个领域展现出巨大的应用潜力。通过合理应用事件驱动架构,可以构建灵活、可扩展和可维护的系统架构,满足不断变化的业务需求和技术挑战。对于开发者而言,深入理解事件驱动架构的核心概念和优势,将有助于更好地设计和实现高质量的软件系统。
|
12天前
|
Cloud Native 云计算 微服务
云原生时代:企业分布式应用架构的惊人蜕变,从SOA到微服务的大逃亡!
【8月更文挑战第8天】在云计算与容器技术推动下,企业分布式应用架构正经历从SOA到微服务再到云原生的深刻变革。SOA强调服务重用与组合,通过标准化接口实现服务解耦;微服务以细粒度划分服务,增强系统灵活性;云原生架构借助容器化与自动化技术简化部署与管理。每一步演进都为企业带来新的技术挑战与机遇。
46 6
|
17天前
|
运维 Cloud Native 云计算
云原生应用架构:从理论到实践
【8月更文挑战第3天】 在数字化转型的浪潮中,云原生技术以其弹性、可扩展和容错特性成为企业IT架构的优选。本文将通过一个简易的云原生应用实例,深入探讨如何将抽象的云原生理念转化为具体操作,并分享实现过程中的关键代码段。读者将获得构建和部署云原生应用的实用知识,同时对云原生带来的变革有更深刻的理解。
|
17天前
|
Cloud Native 持续交付 云计算
探索云原生架构:构建现代应用的基石
在数字化转型的浪潮中,企业正面临前所未有的挑战与机遇。云原生架构,作为一种新兴的应用开发范式,正日益成为企业创新和竞争力提升的关键。本文将深入探讨云原生的核心概念、优势以及实施过程中可能遇到的挑战,旨在为读者提供一份全面的云原生实践指南。
|
19天前
|
Kubernetes Cloud Native 微服务
探索云原生技术:Kubernetes在微服务架构中的应用Python编程之旅:从基础到进阶
【7月更文挑战第31天】随着云计算技术的迅猛发展,云原生概念应运而生,它代表了一种构建和运行应用程序的全新方式。本文将通过实际代码示例,深入探讨Kubernetes这一云原生关键技术如何在微服务架构中发挥其强大的作用。我们将从容器化开始,逐步过渡到Kubernetes集群的搭建与管理,最后展示如何部署和管理一个微服务应用。
32 2
|
20天前
|
消息中间件 Kubernetes 数据库
深入理解微服务架构及其在现代后端开发中的应用
【7月更文挑战第30天】随着技术的进步和业务需求的多样化,传统的单体应用架构已逐渐不能满足快速迭代和可扩展性的需求。微服务架构作为一种新兴的软件开发架构风格,以其独特的设计理念和优势,成为解决复杂系统问题的有效途径。本文将深入探讨微服务架构的核心概念、设计原则以及在实际后端开发中的应用场景,帮助开发者更好地理解和运用微服务架构。
28 2
|
21天前
|
运维 监控 关系型数据库
阿里云Serverless高可用架构深度评测:构建稳定高效应用的全面指南
随着云计算技术的迅猛发展,Serverless计算作为一种新兴的、以事件驱动的无服务器架构,正在逐渐改变企业构建、部署和管理应用程序的方式。阿里云,作为全球领先的云服务提供商之一,提供了全面的Serverless解决方案,包括PolarDB MySQL Serverless集群和Serverless应用引擎等产品,致力于帮助用户构建高可用、高弹性、低成本的应用系统。本文将深度评测阿里云的Serverless服务,从产品功能、使用体验、部署常见问题、文档与支持的全面性等维度出发,为开发者和企业提供实用的参考。
63 0
|
24天前
|
消息中间件 负载均衡 数据管理
微服务架构在电商平台中的应用与实践
在现代电商平台的开发和运维中,微服务架构成为了提升系统灵活性和可扩展性的关键技术。本篇文章从实践出发,深入探讨了微服务架构在电商平台中的具体应用,包括服务拆分策略、通信机制、数据管理、以及常见的挑战和解决方案。通过真实的案例分析和代码示例,帮助读者全面了解微服务架构的优势和实施方法,提供在实际项目中的实践指导。