50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

SOA 和微服务之间的区别

  • 2017-07-26
  • 本文字数:930 字

    阅读完需:约 3 分钟

近几年,我们有很多文章 SOA 和微服务之间的不同点和相似点进行了分析。有些人认为 SOA 有很多地方是值得微服务学习的,而有些人则认为区别对待微服务和SOA 会更好。而 Neal Ford 认为,将单体迁移到面向服务的架构要比迁移到微服务来得容易。关于选择 SOA 还是微服务的话题,最近并没有太多的争论,直到 Redmonk 的 Stephen O’Grady 发表了他的文章,这个话题再次进入了人们的视野。O’Grady 在他的文章里说到,服务的大小不应该成为关键的决定性因素。这些年来,人们也一直在争论这个观点,比如 Dan North 。而 Jeppe Cramon 也说过:

单纯使用服务大小来定义微服务有失偏颇,也难以确定一个微服务是否被赋予了正确的职责……

O’Grady 相信,SOA 和微服务之间有着千丝万缕的联系:

在过去,SOA 存在的一些缺陷导致它变成企业的幻象,就像今天那些使用了微服务云原生架构的激进型组织一样。如果我们深入到 SOA 的核心,我们会发现,SOA 的本意是说架构应该由服务组成,而不是单体。

O’Grady 在他的文章里通过 Google Trends 生成了一些图表,其中第一张图表显示了 SOA 在整个行业历史上曾经有一小段时期处于流行的高峰状态。

Stephen 认为,通过服务大小来区分 SOA 和微服务将有碍找出导致 SOA 没落与微服务崛起的真正原因,SOA 是由厂商驱动的,而微服务更多的是由开发者来驱动。

因为 AWS 的大肆成功,我们无法否认基于服务驱动的平台确实是构建可伸缩平台的一种有效方式,也无法否认它们在现今所取得的主导地位。但值得注意的是,现今基于服务的平台一般是由开发者来驱动的。而 SOA 最初由大型的厂商来驱动,基于拜占庭式的复杂(一般带有政治性质)的标准框架来构建服务,而这些标准并不为开发者所接受。

O’Grady 在文章中提到,微服务在好的方面和不好的方面都借鉴了 SOA。

微服务比单体更容易开发,而且没有了 SOA 的厂商标准累赘。

在过去几年,还有其他的一些人也表达了类似的观点, Asanka 说:

如今,企业正在转向更干净的 SOA,开始拥抱 MSA。或许最大的看点是组件化,以及微服务提供的单一功能能够被快速地部署成组件,在必要的时候可以很容易地进行伸缩。不管怎样,这是一种很新奇的概念。

其中的第二张 Google Trends 图表也很有趣。

查看英文原文 The Difference between SOA and Microservices?

2017-07-26 19:0018871
用户头像

发布了 322 篇内容, 共 157.1 次阅读, 收获喜欢 148 次。

关注

评论

发布
暂无评论
发现更多内容

网络入侵检测系统之Suricata(十三)--网络安全威胁及攻击手段总览

于顾而言

网络安全 suricata

MyBatisPlus(四、代码生成器)

Mybatis-Plus 代码生成 9月月更

一文带你快速入门【哈希表】

Fire_Shield

数据结构 哈希表 9月月更

大数据调度平台Airflow(一):什么是Airflow

Lansonli

9月月更

「趣学前端」Taro实践+踩坑记录第一期

叶一一

taro 前端 框架 9月月更

4 张图了解 CI/CD 基础~

掘金安东尼

前端 9月月更

[SpringMVC]拦截器①(概述、入门案例)

十八岁讨厌编程

springmvc 后端开发 9月月更

【算法实践】分块查找知多少?手把手带你实现分块查找

迷彩

数据结构 算法 9月月更 分块查找 查找算法

C++学习---cstdio的源码学习分析03-文件重命名函数rename

桑榆

c++ 源码阅读 9月月更

jQuery之实战

楠羽

笔记 JQuery框架 9月月更

[极致用户体验] 微信设置大字号后,iOS加载网页时闪动怎么办?

HullQin

CSS JavaScript html 前端 9月月更

架构师的十八般武艺:架构目标

agnostic

架构目标

[Maven进阶]分模块开发与设计

十八岁讨厌编程

maven 后端开发 9月月更

网络入侵检测系统之Suricata(十二)--TCP重组优化

于顾而言

网络安全 suricata

网络入侵检测系统之Suricata(十四)--匹配流程

于顾而言

网络安全 suricata

[SpringMVC]拦截器②(拦截器参数、拦截器链配置)

十八岁讨厌编程

springmvc 后端开发 9月月更

力扣93 - 复原IP地址【回溯算法】

Fire_Shield

LeetCode 字符串 9月月更

网络入侵检测系统之Suricata(十一)--TCP重组实现详解

于顾而言

网络安全 suricata

网络入侵检测系统之Suricata(十五)--IPOnly/Radix Tree详解

于顾而言

网络安全 suricata

「趣学前端」自己动手丰衣足食的TS项目开发

叶一一

typescript 前端 ts 9月月更

Java进阶(二十七)使用Dom4j解析XML文件

No Silver Bullet

Java xml 9月月更 DOM4J

SAP UI5 Form 表单 Column Layout 下的 Column 个数分配问题

汪子熙

JavaScript Fiori SAP UI5 ui5 9月月更

Redis的事件

急需上岸的小谢

9月月更

gopher成长之路(五): 2年前和2年后同一个项目

非晓为骁

个人成长

架构师的十八般武艺:架构方法论

agnostic

TOGAF Zachman

Qt|实现简单的分割窗口

中国好公民st

qt 分割 9月月更

架构之美第一篇-概述

Marvin

架构 企业架构 架构模式 架构三要素 架构发展历史

网络入侵检测系统之Suricata(十六)--类suricata/snort规则自动维护工具

于顾而言

网络安全 suricata

王者荣耀商城异地多活架构设计

张立奎

redis对应的数据类型及其底层原理

知识浅谈

redis 底层原理 9月月更

Flutter - Google 开源的移动 UI 框架

陈橘又青

9月月更

SOA和微服务之间的区别_SOA_Mark Little_InfoQ精选文章