写点什么

SOA 和微服务之间的区别

2017 年 7 月 26 日

近几年,我们有很多文章 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 年 7 月 26 日 19:0015069
用户头像

发布了 321 篇内容, 共 108.2 次阅读, 收获喜欢 101 次。

关注

评论

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

同事为进大厂天天刷Java面试题,面试却履败!究其原因竟是它在捣鬼。

Java成神之路

Java 程序员 数据结构 面试 算法

从开源协议到谷歌禁用华为、Docker实体清单事件

艾小仙

GitHub Linux 开源 编程语言 开源许可证

架构训练营 - 第1周课后作业 - 学习总结

Pudding

程序员写个人技术博客的价值与意义

Java架构师迁哥

架构师训练营01周 -- 命题作业

骏马

极客大学架构师训练营

云栖大会CDN技术专场:如何构建企业级内容分发加速体验?

阿里云Edge Plus

CDN

机器学习在滴滴网络定位中的探索和实践

滴滴技术

人工智能 学习 滴滴技术

架构师训练营 - 第 1 周课后作业(1 期)

Pudding

食堂就餐卡系统设计

一个节点

极客大学架构师训练营

阿里云发布边缘计算视频上云解决方案 为海量视图处理提供城市级云基础设施

阿里云Edge Plus

边缘计算

第一周总结

一个节点

极客大学架构师训练营

微服务 API 网关kong的爬坑之路

Dream

微服务网关 kong

不正经的计算机专业学生拍摄照片分享

王荣胜

摄影

Vue-防止重复点击指令

老菜鸟

Vue 指令

并发+JVM+Redis+MySQL+分布式+微服务等及阿里等大厂最新面试问答

Java成神之路

Java redis spring 面试 JVM

司法区块链破解互联网案件审判难

CECBC区块链专委会

区块链技术 不可篡改 法院

期末大作业(一)

武鹏

Week 1 命题作业

阿泰

一周信创舆情观察(8.24~9.13)

统小信uos

拥抱K8S系列-08-通过rancher部署nginx应用

张无忌

nginx Kubernetes rancher

让冰城的温暖冬天,不再有“隐秘的角落”

脑极体

架构师训练营 - 大作业二

桔子

多方计算——打开区块链应用新场景

CECBC区块链专委会

区块链 大数据

从构建小系统到架构分布式大系统,Spring Boot2的精髓全在这里了

Java成神之路

Java 编程 程序员 面试 Spring Boot 2

洞爷湖-安静与灵动

刘旭东

摄影 摄影征文 洞爷湖 北海道

架构师训练营1期第1周:架构方法 - 总结

piercebn

极客大学架构师训练营

面试官:谈一下你对DDD的理解?我:马什么梅?

艾小仙

Java 架构 编程语言 领域驱动设计 DDD

我看过最长的图,是百度绘制的AI蓝图

脑极体

云图说 | 通过Helm模板快速部署中间件应用

华为云开发者社区

容器 k8s

聚焦2020云栖大会 边缘计算专场畅谈技术应用创新

阿里云Edge Plus

加速连接效率 阿里云推出5G消息使能平台MEP

阿里云Edge Plus

SOA和微服务之间的区别-InfoQ