写点什么

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

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

关注

评论

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

一键超频 双C Carry,普通用户如何挖潜英特尔十代酷睿?

E科讯

Python3 单例模式

wangkx

Python Singleton

Python中的global关键字的用法以及如何设置项目级的Global变量

陈磊@Criss

从“人居美学”的理念出发,木莲庄酒店很不一样

InfoQ_967a83c6d0d7

oeasy教你玩转linux010104灵魂之问whatis

o

ARTS 挑战打卡第十五周(200817-200823)

老胡爱分享

ARTS 打卡计划

云中谁寄锦书来,免费生成一封七夕情书吧

郭旭东

阿里云 七夕 云效

SpreadJS 纯前端表格控件应用案例:资料填报系统

葡萄城技术团队

Java中的volatile关键字

wangkx

Java volatile

百度联合发布全球最大中文自然语言处理数据共建计划“千言”

百度大脑

人工智能 百度 nlp 百度大脑

3D渲染集群,你了解多少?

华为云开发者联盟

容器 华为云 集群 3D渲染 3D模型

有它的加持,单机玩转百亿大数据不是梦!

易观大数据

Tencent AI Lab 日常实习生招聘

InfoQ_d00afcd122a8

招聘

SpreadJS 纯前端表格控件应用案例:物业行业全面预算管理系统

葡萄城技术团队

阿里为什么推荐使用LongAdder,而不是volatile?

王磊

Java 性能 volatile

话题讨论 | 作为一名程序员,沟通能力是否重要?

InfoQ写作社区官方

程序员 写作平台 话题讨论

工作就是解决一个又一个问题

escray

学习 面试

SpreadJS 纯前端表格控件应用案例:PtLims云平台

葡萄城技术团队

青山不改,绿水长流

escray

学习 面试

ARTS 挑战打卡第十四周(200810-200816)

老胡爱分享

ARTS 打卡计划

SpreadJS 纯前端表格控件应用案例:立信智能审计云平台(SACP)

葡萄城技术团队

大数据思维与运用

石云升

大数据 数据建模 数据驱动

SpreadJS 纯前端表格控件应用案例:实验室信息化管理系统

葡萄城技术团队

兼具艺术情怀和舒适旅居体验,木莲庄做了什么

InfoQ_967a83c6d0d7

CECBC区块链专委会副主任吴桐主讲成都市委宣传部区块链和数字

CECBC

区块链 数字货币

用Emoji解释编程语言中的map、filter、reduce

wangkx

Python Python PEP

乘风人脸识别来了,企业能得到什么?

ToB行业头条

人工智能 人脸识别 百度大脑

游戏运营方法论

石云升

游戏化运营 运营创新

PostgreSQL函数、索引和视图操作Demo展示

wangkx

postgresql

为什么会出现零代码开发平台?

代码制造者

编程语言 低代码 企业信息化 零代码 编程开发

永续合约交易系统源码开发,合约交易所开发

13530558032

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