AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

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

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

关注

评论

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

6种方法帮你搞定SimpleDateFormat类不是线程安全的问题

华为云开发者联盟

高并发 开发

一文讲清楚SpringBoot六种读取配置方式

王小凡

Java 程序员 Sprint Boot

菜鸟 CPaaS 平台微服务治理实践

阿里巴巴云原生

阿里云 微服务 云原生 CPaaS 菜鸟

模块八作业 - 消息数据 MySQL 表设计

Elvis FAN

2022最新最全Java面试八股文(整整1685页,14个技术栈,20余万字)

Java全栈架构师

Java spring 面试 JVM 消息中间件

工赋开发者社区 | 定了!就在7月30日!

工赋开发者社区

技术分享 工业 峰会

3分钟创建Serverless Job 定时获取新闻热搜

云端explorer

Serverless Job 新闻热搜 场景搭建

[ Kitex 源码解读 ] 服务发现

baiyutang

Go 微服务架构 kitex CloudWeGo

极大似然估计

矛始

概率 极大似然估计

机器视觉在服务机器人中的应用

优必选科技

机器人

图的遍历的定义以及深度优先搜索和广度优先搜索(一)

乔乔

7月月更

Spark统一内存划分

矛始

spark 统一内存

基础到高级涵盖11个技术,Alibaba最新出品711页Java面试神册真香

程序员小毕

Java 面试 程序人生 JVM 中间件

面试OPPO,16道题甩过来,我人傻了

Java永远的神

Java 程序员 面试 分布式 项目

基础+框架+数据库+系统设计+算法,2022阿里最新Java面试突击手册我粉了

Java永远的神

Java 数据库 spring 面试 JVM

2022 云原生编程挑战赛火热报名中!看导师如何拆解 Serverless 赛题?

阿里巴巴云原生

阿里云 Serverless 云原生编程挑战赛

融云直播 SDK 玩法翻新,入围信通院「实时互动创新应用优秀案例」

融云 RongCloud

直播 sdk

洋葱集团携手OceanBase实现分布式升级,全球数据首次实现跨云融合

OceanBase 数据库

就这一次!详细聊聊分布式系统的那些技术方案

Java全栈架构师

程序员 面试 分布式 系统设计 架构师

有一说一,阿里P7的薪资待遇是真的香

程序员小毕

Java 程序员 程序人生 后端 架构师

B站713事故后的多活容灾建设|TakinTalks大咖分享

TakinTalks稳定性社区

故障 稳定性保障

kudu设计-tablet

矛始

kudu tablet

MySQL精品学习资源合集 | 含学习教程笔记、运维技巧、图书推荐

墨天轮

MySQL 数据库 学习笔记 运维技术

兆骑科创海外高层次人才引进平台,创业赛事活动路演

兆骑科创凤阁

高层次人才引进平台

如何组装一个注册中心

捉虫大师

注册中心 7月月更 后端启示录

RocketMQ—(总结)一篇就搞懂RocketMQ

IT巅峰技术

如何通过学会提问,成为更加优秀的数据科学家

Baihai IDP

AI 数据科学 职业发展

浅谈云原生边缘计算框架演进

谐云

7月月更

深圳云管平台厂商哪家好?有哪些功能?咨询电话多少?

行云管家

云计算 云管平台

Spark数据格式UnsafeRow

矛始

spark 内存 UnsafeRow

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