写点什么

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

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

关注

评论

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

我期待,这是个多彩的世界

瓜藤老祖

大三儿 乐队的夏天 九连真人

第十周学习总结

赵龙

Code Review 失败后总结的几个实践技巧

Phoenix

团队管理 团队协作 技术人 代码质量

腾讯一面面试官让我关闭连接

我是程序员小贱

架构师训练营第十周作业

qihuajun

有意思:Go函数的闭包

申屠鹏会

闭包 函数 Go 语言

如何优雅的编写GO程序?

八两

优雅 语法 Go 语言

一文读懂GaussDB(for Mongo)的计算存储分离架构

华为云开发者联盟

数据库 mongodb 数据 GaussDB 存储分离

链表应用之设计高性能访客记录系统

架构师修行之路

数据结构 链表 架构师

远程办公暴露过程管理的不足

持续交付实践指南

管理 软件工程 远程办公

40张图入门Linux——(前端够用,运维入门)

执鸢者

Linux 大前端

socket通信,你还会实现么?

小隐乐乐

环信助力OFashion迷橙开辟海外直播带货新通路

DT极客

架构师训练营第十章作业

叮叮董董

关于微服务架构(中台架构、领域驱动设计、组件设计原则)的一点思考

jason

Dubbo源码分析--dubbo-config配置层的套路

jason

架构师训练营--第10周作业

Just顾

架构师训练营第十章总结

叮叮董董

可读代码编写炸鸡十 - 保持单纯

多选参数

代码质量 代码 代码优化 可读代码编写 可读代码

troubleshoot之:使用JFR解决内存泄露

程序那些事

Java 内存泄露 性能调优

热乎的宇宙条总部面经,已拿offer,速来围观

我是程序员小贱

微服务与DDD学习总结

qihuajun

[翻译]分布式系统的模式-综述

流沙

架构 分布式系统

芯片破壁者(十一):回看日本半导体的倾塌

脑极体

六张图从HTTP/0.9进化到HTTP3.0

执鸢者

大前端 网络 HTTP

Week 10

一叶知秋

Newbe.Claptrap 框架如何实现 Claptrap 的多样性?

newbe36524

容器 微服务 .net core ASP.NET Core

第十周命题作业

赵龙

Go make 和 new 的区别

曲镇

make Go 语言

炸裂!40+图万字长文拿下HTTP

我是程序员小贱

计算机网络

招银网络问了啥?这么尬?妥妥的安排

我是程序员小贱

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