写点什么

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

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

关注

评论

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

架构训练营模块3课后作业-学生管理系统详设文档

喻高咏        

最新流行的6大优秀DevOps工具

java小李

java 14 puppeteer

拨云开雾!阿里面试官力荐Java开发必看的操作系统底层原理PDF

Java架构追梦

Java 阿里巴巴 架构 面试 操作系统

GitHub标星139K的:“嵌入式Linux系统开发教程”

白亦杨

幸福的人在当下就活出了幸福的样子|靠谱点评

无量靠谱

华为助力高校释放能量,加速中国从开源使用大国向贡献大国转变

科技热闻

Recommending movies: retrieval

毛显新

tensorflow 推荐系统

对象存储手把手教三 | 数据分段上传

QingStor分布式存储

对象存储 分布式存储 数据传输

携生态伙伴展示AI计算盒参考设计最新成果 英特尔点亮智能边缘广阔机遇

E科讯

深度融合,云管理平台助推政府实现“最多跑一次”改革

BoCloud博云

云计算 云管理平台 云管理

速来围观!大佬把Java基础核心知识整理成了PDF版

java小李

Java开发手册 Java 开发

向大佬学习!「mybatis查询匹配机制」,手动点赞

java小李

java 14 Mybati

解决方案| 全民抗“灾”- 实时音视频在应急指挥场景的应用

anyRTC开发者

音视频 WebRTC 指挥调度

架构实战营-模块三

Cingk

DeFi智能合约DAPP开发|DeFi项目源码

Geek_23f0c3

DeFi去中心化系统开发 DAPP智能合约交易系统开发

基于 Java Spring Security 的关注微信公众号即登录的设计与实现ya

哈德韦

spring security 微信公众号 Apache Pulsar SSO

面试题:JVM在Java堆中对对象的创建、内存结构、访问方式

java小李

java 14 sping

Vue进阶(九十四):自定义组件

No Silver Bullet

Vue 自定义组件 7月日更

请谈下Android消息机制,成功拿下大厂offer

欢喜学安卓

android 程序员 面试 移动开发

FBI 警告称,网络犯罪分子可能以 2021 年东京奥运会为目标!

郑州埃文科技

《分享几道高频 Redis 高频面试题,面试不用愁》

java小李

Redis Stream

DAPP智能合约开发|智能合约搭建

Geek_23f0c3

区块链 智能合约 DAPP智能合约交易系统开发 DAPP系统开发

大学四年Java学习路线规划,所有私藏资料我都贡献出来了

java小李

spring Java web

如何借用第三方APM工具, 为移动应用保驾护航

APM

一条SQL语句执行得很慢的原因盘点

北游学Java

Java MySQL

行云创新完成B轮融资,阿里云独家投资

行云创新

阿里云 云原生 投资

被转载10W次的:Java小白系统资料和职业规划路线

java小李

java基础

《MyCat数据库的基础配置及使用》

java小李

java 14 mycat

技术解码 | GB28181协议简介及实践

腾讯云音视频

腾讯云 ffmpeg 流媒体 视频监控系统

淘宝一面:说一下 Spring Boot 自动装配原理呗?

java小李

面试 java 14 sping

被面试官问的Android问题难倒了,深度集成!

欢喜学安卓

android 程序员 面试 移动开发

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