写点什么

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

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

关注

评论

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

Kafka到底有多高可靠?(RNG NB)

敖丙

kafka Java EE 程序员‘

小鸟飞行游戏【附源码】

JavaPub

畅聊安全生产,对话B站、唯品会一线专家!|TakinTalks大咖对谈

TakinTalks稳定性社区

大数据培训数仓实践 Kimball 维度建模

@零度

数仓 大数据开发

吃豆人游戏【附源码】

JavaPub

理“ Druid 元数据”之乱

vivo互联网技术

大数据 存储 Druid Apache Druid

什么是哈希?趣投哈希幸运哈希竞猜游戏开发方案策划

开发微hkkf5566

高危!Fastjson反序列化漏洞风险

源字节1号

软件开发

SAP UI5 自动化测试工具的 qunit-redirect.js

汪子熙

JavaScript 前端开发 SAP Fiori 5月月更

善事利器 - 我是如何在药师帮掌店易项目落地 Zadig 的

Zadig

DevOps 云原生 CI/CD

java培训动态上传jar包热部署实战分享

@零度

JAVA开发

如何快速解决集群异常和机器性能波动

NebulaGraph

可视化 图数据库 知识图谱

用户体验至上时代,银行的“主动出击”

博睿数据

金融 博睿数据 数据链DNA IT运维

Java 实现 植物大战僵尸 小游戏【附源码】

JavaPub

Java

架构实战营 7 期「模块二」如何抓住架构设计关键点

Steve_bot

web前端培训如何解决模块依赖复杂度太高的问题

@零度

前端开发

分析一下微信朋友圈的高性能复杂度

Geek_7a789a

英特尔加速创新,唤醒网络及边缘原力

科技之家

亚信安慧AntDB数据库斩获“最佳数据库品牌”大奖

亚信AntDB数据库

俄罗斯方块【附源码】

JavaPub

国密在车联网安全认证场景中的应用|车联网系列专题07

EMQ映云科技

车联网 物联网 国密 emqx 5月月更

面试突击52:什么是三范式?它有什么用?

王磊

Java 面试

Docker镜像制作实战:设置时区和系统编码

程序员欣宸

Docker 5月月更

【LeetCode】最多单词数的发件人Java题解

Albert

LeetCode 5月月更

直播预告丨 Hello HarmonyOS 进阶课程第五课——原子化服务

HarmonyOS开发者

HarmonyOS

通过集成腾讯IM来浅尝一下.net 6的MINI API

为自己带盐

.net core 5月月更 mini api

基于阿里云 ASK 的 Istio 微服务应用部署初探

阿里巴巴云原生

阿里云 容器 微服务 云原生 服务网格

深入解析 TiFlash丨多并发下线程创建、释放的阻塞问题

PingCAP

超级马里奥【附源码】

JavaPub

模块二 微信朋友圈高性能架构分析

挖了蘑菇哩斯

作业 架构实战营

企业知识管理难题,现在有了一个好的解决方案

小炮

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