硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

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

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

关注

评论

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

【高并发】又一个朋友面试栽在了Thread类的stop()方法和interrupt()方法上!

冰河

并发编程 多线程 高并发 异步编程 6月月更

flask框架自主学习

恒山其若陋兮

6月月更

作为软件工程师,给年轻时的自己的建议(下)

禅道项目管理

工程师 程序员进阶 程序员‘

为什么越来越多的开发者放弃使用Postman,而选择Apifox

Liam

前端 后端 Postman swagger API文档

昇腾AI的蝴蝶效应,从智能制造开始

脑极体

数据库:高并发下的数据字段变更

C++后台开发

数据库 高并发 后端开发 Linux服务器开发 C++后台开发

想做自助洗车不知道怎么加盟?

共享电单车厂家

自助洗车加盟

智能自助洗车设备什么牌子好

共享电单车厂家

自助洗车机 智能自助洗车设备 智能共享洗车机

中建普联与数商云达成战略合作协议,共同打造建设行业数智化发展新高地

数商云

产业互联网 数字化转型 企业数字化

小游戏开发是进行网游的必需环节,你知道吗?

开源直播系统源码

软件开发 小游戏开发 直播系统 app源码

低代码开发是新瓶装老酒吗?

菜根老谭

进出口管理系统解决方案

低代码小观

供应链 企业管理系统

使用APICloud AVM多端框架开发课程表功能

YonBuilder低代码开发平台

前端开发 APP开发 APICloud 多端开发 AVM

无人24小时自助洗车代理怎么做

共享电单车厂家

自助洗车加盟 自助洗车代理

网站FAQ页面有必要做吗?该如何做?

小炮

flutter系列之:构建Widget的上下文环境BuildContext详解

程序那些事

flutter 程序那些事 6月月更

全网对OSPF最言简意赅的归纳!强烈建议收藏!

wljslmz

OSPF 网络工程师 动态路由 6月月更 路由协议

OpenHarmony 3.1 Release版本关键特性解析——HDI硬件设备接口介绍

OpenHarmony开发者

OpenHarmony 3.1 Release

为什么不能使用 datax 直接读写 hive acid 事务表?

明哥的IT随笔

ESB基础样例前置资源配置

agileai

数据治理 系统集成 数据集成 企业服务总线 预置样例

openGauss“用户故事”正式上线!一键分享实践经验,限量版礼物等你拿

opengauss 开源社区 用户故事

如何删除 git 仓库中的 .idea 文件?

程序员小航

git IDEA

百度发布首个数字人度晓晓挑战高考作文

开源直播系统源码

高考 百度AI 度晓晓 百度数字人

2022年公共充电站运营端用户体验指数(UEI)发布

易观分析

汽车 新能源

隐藏在 graph-ocean 背后的星辰大海

NebulaGraph

ORM框架 图数据库 知识图谱 Nebula Graph

如何挑选合适的共享自助洗车机

共享电单车厂家

自助洗车机 自助洗车机价格

高分神器,百万考生都在用的高效记忆方法,助你过目不忘,决胜高考!

图灵教育

高考 脑科学

半监督式机器学习提升银行业对于团伙欺诈交易行为的风控能力

易观分析

银行

TiFlash 源码阅读(三)TiFlash DeltaTree 存储引擎设计及实现分析 - Part 1

PingCAP

哈希彩hash竞猜系统开发逻辑游戏玩法(源代码)

开发微hkkf5566

没有行业经验能否加盟自助洗车

共享电单车厂家

自助洗车加盟

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