写点什么

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

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

关注

评论

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

跨国视频传输速度太慢?那是因为没有好的跨国文件传输工具

镭速

跨国传输大文件 跨国传输

Python案例|Pandas正则表达式

TiAmo

Python pandas 数据清洗

异常追踪频道与 IM 双向互动

观测云

可观测性用观测云 异常追踪

生成式AI掀起创意革命

百度开发者中心

人工智能 文心一言

生成式AI助力中国汽车产业发展

百度开发者中心

人工智能 汽车 文心一言

StoneData 2.0 正式上线阿里云市场,高性能、低成本一站式实时数仓,满足用户全场景分析需求

StoneDB

MySQL 数据库 HTAP StoneDB

解锁数据潜力:信息抽取、数据增强与UIE的完美融合

汀丶人工智能

人工智能 自然语言处理 信息抽取

华为云零代码新手教学-体验通过Astro Zero快速搭建微信小程序

华为云PaaS服务小智

开发者 低代码 华为云

【墨菲安全实验室】jeecg-boot/积木报表基于SSTI的任意代码执行漏洞

墨菲安全

漏洞 jeecg-boot MPS-4hzd-mb73

生成式AI的数据需求与保障

百度开发者中心

人工智能 文心一言

九科信息成功中标中国核动力研究设计院安全自动化应用开发项目

九科Ninetech

生成式AI助力开发者创新

百度开发者中心

人工智能 百度文心一言

软件测试/测试开发丨Python 常用第三方库 urllib3

测试人

Python 程序员 软件测试 测试开发 urllib

生成式AI:游戏研发的新革命

百度开发者中心

人工智能 文心一言

软件测试 | web测试-辨别时间格式

测吧(北京)科技有限公司

测试

软件测试 |web测试—截获和修改POST请求

测吧(北京)科技有限公司

深入探索智能未来:文本生成与问答模型的创新融合

汀丶人工智能

自然语言处理 文本生成

生成式AI:内容创作的新革命

百度开发者中心

生成式AI:改变生活与工作的未来力量

百度开发者中心

人工智能 文心一言

JVM关闭前做点什么

FunTester

三分钟上手!一文看懂 Git 的底层工作原理

高端章鱼哥

git

生成式AI引领视频制作创新

百度开发者中心

人工智能 视频 文心一言

【墨菲安全实验室】企业微信私有化2.5-2.6.93版本后台API未授权访问漏洞

墨菲安全

网络安全 安全 企业微信 漏洞分析

在 React 中获取数据的6种方法

互联网工科生

JavaScript React Promise

中小企业数字化转型系列研究——CLM测评报告

向量智库

生成式AI:企业创新与效率的新引擎

百度开发者中心

人工智能 文心一言

什么文件传输协议才能保障跨国文件传输安全又稳定

镭速

文件传输协议 跨国文件传输

【墨菲安全实验室】jeecg-boot/积木报表基于H2驱动的任意代码执行漏洞

墨菲安全

网络安全 安全 漏洞 JeecgBoot MPS-bjs4-n6dm

龙举云兴|顶级项目 Apache InLong 核心技术探秘

腾讯云大数据

Apache

「你说,PC做」AIGC智能体产品化时代到来

ToB行业头条

软件测试 | 以编程方式对时间值进行编码

测吧(北京)科技有限公司

测试

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