限时领|《AI 百问百答》专栏课+实体书(包邮)! 了解详情
写点什么

SOA 对微服务的残余影响

  • 2017-11-16
  • 本文字数:1027 字

    阅读完需:约 3 分钟

近日, Tareq Abedrabbo 伦敦2017 µCon 微服务大会上说,SOA 对微服务架构设计的残余影响仍然存在,包括技术选型和组织方面的问题。最直接的一个例子就是大多数企业仍然区分对待架构师和开发人员,架构师负责出规范,开发人员负责实现。

OpenCredo CTO Abedrabbo 在大公司和小公司都工作过,这些公司在向微服务架构迁移的过程中仍然受到 SOA 的影响。他在演讲中对 SOA 和微服务进行了有趣的对比,不过他也强调,尽管 SOA 存在问题,但不能把全部责任都推给 SOA。

重用性与变更管理。Abedrabbo 认为,重用性之所以对 SOA 来说十分重要,主要是因为 SOA 缺乏成熟的变更管理工具。服务一旦部署好了,就不太愿意做出变更,因为成本太高。而微服务在变更管理方面具有一定的优势,因为对微服务做出变更的成本要小得多。

集成与组合。SOA 架构强调的是集成,客户端可以向服务器端发送任何格式的数据,包括 XML,服务器端负责解析和处理这些数据。而在微服务架构里则恰好相反,微服务注重组合,服务调用端需要自己知道如何调用其他服务。Abedrabbo 对此总结说,集成增加复杂性,而组合降低复杂性。

技术重用与功能重用。SOA 注重技术重用,我们总是希望尽可能多地重用一个服务,尽管对服务做出变更有很大阻力。而微服务架构更注重让小型的服务专注于特定的业务功能上。

静态与动态。SOA 需要处理所有的事情,一个 SOAP 调用不仅要处理业务逻辑,还要处理安全和事务方面的问题。而微服务更加动态,微服务生态系统的不同部分负责处理不同的问题。

有 SOA 背景的开发人员在构建微服务时容易使用反模式,比如分布式单体,他们只是对一个边界进行无机拆解。对一个已有的单体进行解耦时,如果不考虑边界问题就很容易犯这个错。在与遗留系统进行集成时太过关注底层的解耦,但没有考虑到通信保证、幂等性等因素,这也是很常见的问题。这样的系统只会增加复杂性,体现不出微服务的优势。

Abedrabbo 给出了一些建议用于解决这方面的问题:

  • 采用领域驱动设计。使用微服务实现领域逻辑,避免单纯地从技术角度设计可重用的微服务。
  • 不要使用规范的数据模型。规范的数据模型只会阻碍微服务系统的演化,所以我们应该使用局部数据视图。
  • 正常化元数据,并将它们从其他数据中分离出来。
  • 使用正确的工具。比如,每个微服务都应该有自己的数据库。多个服务共享一个数据库是一种反模式,不过如果使用图数据库或许会是个好办法。

明年的微服务大会将于2018 年11 月5 号至6 号召开。

查看英文原文 About the SOA Heritage Impact on Microservices

2017-11-16 18:0012125
用户头像

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

关注

评论

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

mPaaS 月度小报 | CodeHub#4 在线教育应用的开发实践;香港站正式开服上线

蚂蚁集团移动开发平台 mPaaS

移动开发 mPaaS

火爆全网!万字精华总结“银四Java复习笔记”(共计22个技术专题)

比伯

Java 架构 面试 程序人生 计算机

2021技术展望|开源十年,WebRTC 的现状与未来

声网

开源 WebRTC 2021年展望 RTE 2021技术

源中瑞区块链BaaS平台--一键部署区块链应用

13530558032

知乎转载超30W次!金三Java面经汇总:拼多多(三面)/蚂蚁金服(四面)/字节跳动(二面)

Java架构追梦

Java 面试 拼多多面经 蚂蚁金服面经 字节跳动面经

EGG NETWORK公链阿凡提以“完全开放式自治”的唯一标准搭建New-DeFi链上生态EFTalk

币圈那点事

事务隔离级别实战学习

U2647

事务隔离级别 事务 4月日更

智汇华云 | 看“新基建”如何将机房里的“老家伙”物尽其用

华云数据

android适配方案,Kafka是如何实现高性能的?全套教学资料

欢喜学安卓

android 程序员 面试 移动开发

NA公链NAC公链真正的100%史诗级匿名去中心化应用

区块链第一资讯

如何实现屏幕共享时的多人实时标注?

拍乐云Pano

windows Electron RTC

c 语言思维地基搭建(总概论)

-jf.

4月日更

云智一体 AI开发模式打造电力行业的智慧化范本

百度大脑

云计算 智能云

2021 技术展望 | AV1 在 RTC 应用实践中的现状与展望

声网

RTC 2021年展望 RTE 2021技术

Javascript执行机制-事件循环

Sakura

4月日更

ARMv9刷屏——号称十年最大变革,Realm机密计算技术有什么亮点?

阿里云基础软件团队

想快速重构智慧园区5A系统,这份方案推荐给你

华为云开发者联盟

系统 智慧园区 HDC.Cloud 2021 端边云协同架构 南向系统

Python OpenCV 图片模糊操作 blur 与 medianBlur

梦想橡皮擦

Python OpenCV 4月日更

集客业务支撑领域标准化产品套件“火麒麟”的配置化能力提升之路

鲸品堂

产品 解决方案 运营商

2021 技术展望 | 走向未来的实时生成技术

声网

RTC 2021年展望 RTE 2021技术

2021 技术展望 | 实时互动场景下,音频的技术变迁与机遇

声网

音视频 RTC 2021年展望 RTE 2021技术

爱好历史的程序员,不容错过!

不脱发的程序猿

程序员 程序人生 4月日更 全历史

信息爆炸时代,如何更好地处理工作信息

LigaAI

程序员 产品经理 研发管理 信息处理

读《小岛经济学》

箭上有毒

4月日更

国人开源的运维监控系统——WGCLOUD

王逅逅

开源 运维 Grafana Prometheus zabbix

在多人音视频聊天中插入现场直播

anyRTC开发者

android 大前端 音视频 WebRTC RTC

inotifywait+rsync实现目录监听及同步

慢慢de

Docker rsync inotify 目录监听同步

hashmap遍历,关于网络优化你必须要知道的重点,Android岗

欢喜学安卓

android 程序员 面试 移动开发

谁说没学历就进不了大厂?(双非渣硕四年crud经验已拿下阿里P6)面经分享

Java 编程 程序员 架构 面试

2021 技术展望 | 弱网下的极限实时视频通信

声网

RTC 2021年展望 RTE 2021技术

2021 技术展望 | 2021,5G 将会倒逼传输协议、算法做出更多改进

声网

5G RTC 2021年展望 RTE 2021技术

SOA对微服务的残余影响_SOA_Jan Stenberg_InfoQ精选文章