NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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:0017474
用户头像

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

关注

评论

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

读书笔记之《普罗普:故事形态学》

AI代笔

百度大脑6.0重磅升级 不断进阶中的中国AI底座实力尽显

脑极体

应对高并发系统有没有通用的解决方案呢?

架构师修行之路

架构 高并发 异步

架构师训练营-第1周学习总结(1期)

阿甘

UML

架构师训练营 - 大作业

张明森

用Go-Guardian写一个Golang的可扩展的身份认证

朱亚光

微服务 身份认证 Go 语言

服务质量分析:腾讯会议&腾讯云Elasticsearch玩出了怎样的新操作?

腾讯云大数据

大数据

两年Java开发经验赶上金九招聘季涨到23K,这究竟是怎么做到的?

Java架构师迁哥

Week 13 命题作业

Jeremy

面试常考算法题之 Top K 问题

小齐本齐

数据结构 算法

繁星计划将成为引领全球币值管理的带动计划!

InfoQ_967a83c6d0d7

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

阿甘

如何让知识图谱告诉你“故障根因”

华为云开发者联盟

华为云 知识图谱 图谱

@所有人 Flink Forward Asia 2020 向您发出议题征集邀请!

Apache Flink

flink

LeetCode题解:206. 反转链表,双指针,JavaScript,详细注释

Lee Chen

大前端 LeetCode

我写了一个TypeScript虚拟机。

渔子长

Java typescript 大前端 deno Node

在Ubuntu 20.04 搭建 Django 开发环境 以及 快速构建一个简单的 Blog

Matrix Chan

Python django 后端 Ubuntu20.04

Clickhouse在大数据分析平台-留存分析上的应用

腾讯云大数据

大数据

滴滴基于 Flink 的实时数仓建设实践

Apache Flink

flink

Netty之旅三:Netty服务端启动源码分析,一梭子带走!

一枝花算不算浪漫

Netty

甲方日常 15

句子

工作 随笔杂谈 日常

金融企业敏捷转型大咖风采 | 中国出口信用保险公司的 DevOps 落地之道

Atlassian

项目管理 DevOps 敏捷 行业资讯 Atlassian

架构师训练营第 0 期 期末大作业

无名氏

USDT跑分承兑系统开发,区块链支付平台搭建

哈哈,成为作者了

大海

Apache Pulsar 在腾讯 Angel PowerFL 联邦学习平台上的实践

Apache Pulsar

Apache 学习 开源 Apache Pulsar

Java面试史上最全的JAVA专业术语面试100问 (前1-50)

Java架构师迁哥

Week 13 学习总结

Jeremy

区块链合约层是一种自动执行的数字协议

CECBC

区块链 智能合约

彻底理解JavaScript执行上下文

Walker

Java 大前端 this指针 函数执行

介绍

剑心

学习

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