写点什么

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

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

关注

评论

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

你真了解开源许可证吗?

郭旭东

开源

Java学习之路 -- Java怎么学?

秦怀杂货店

Java 编程 基础 书籍

Hudi on Flink 快速上手指南

Apache Flink

flink

常用的视频剪辑软件介绍,自媒体必备工具!

奈奈的杂社

满满干货|支付宝美女面试官的贴心锦囊

Lily

聊聊集群、分布式和微服务之间的异同点

架构精进之路

分布式 微服务 集群 3月日更

推动产业数字化 提升服务实体经济质效

CECBC

科技

Java + opencv 实现图片人脸检测

张音乐

Java AI OpenCV ffmpeg 人脸识别

Java + opencv实现视频人脸检测

张音乐

OpenCV 人脸识别 视频

面试官:说说JavaScript中的事件模型

我家有萌🐱

JavaScript 面试 大前端 js

2021突击银四必备:BAT900道Java面试清单!免费开放

比伯

Java 编程 架构 面试 计算机

《MySQL》系列 - select 查询语句到底是怎么执行的?

一个优秀的废人

MySQL 数据库 原理 sql查询

工作三年,小胖不知道 MySQL 日志是干嘛的。真的菜

一个优秀的废人

MySQL mysql事务 MySQL日志

百度飞桨中国行南京站开启!共研AI赋能产业新模式

百度大脑

百度 AI 飞桨

微服务时代组件化和服务化的抉择

vivo互联网技术

微服务 组件化 服务化 服务调用

普元CTO焦烈焱:成长之路务必重视工程能力

EAWorld

程序员

Java反射简析

Langer

Java java反射

“数字足迹”怕暴露,数字人民币如何守护你我隐私安全?

CECBC

数字货币

EGG NETWORK阿凡提超级公链  EFT流量通证信息完全公开源

币圈那点事

零信任提升组织的数字安全性

龙归科技

网络 数字时代 零信任

FFmpeg应用篇

Changing Lin

3月日更

跨越数据的“叹息墙”:华为下一代数据湖与HPDA时代

脑极体

JVM-技术专题-Class文件加载虚拟机

洛神灬殇

JVM Class字节码

如何快速掌握 Kubernetes 网络

倪朋飞

学习方法 Kubernetes 云原生

高性能公链能为 DeFi 带来什么?

CECBC

区块链

OKR实践中的痛点(4):再谈老板的KR我的O

大叔杨

OKR 敏捷 绩效 敏捷绩效

一位入职蚂蚁金服,年薪180万的大佬扔给我的笔记,看完发现差距不止一点点!

Java架构追梦

Java 阿里巴巴 架构 面试

中国唯一入选 Forrester 领导者象限,阿里云 Serverless 全球领先

Serverless Devs

阿里云 Serverless 云原生

记一次生产环境大面积404问题!

冰河

nginx 网关

软件架构中的模块与组件

Simon

架构实战营

如何激励员工?—— 马斯洛需求理论

石云升

激励 28天写作 职场经验 管理经验 3月日更

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