SOA对微服务的残余影响
2017-11-20 00:00
351 查看
近日,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号召开。
原文:http://www.infoq.com/cn/news/2017/11/soa-impact-microservices
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
OpenCredo CTO Abedrabbo在大公司和小公司都工作过,这些公司在向微服务架构迁移的过程中仍然受到SOA的影响。他在演讲中对SOA和微服务进行了有趣的对比,不过他也强调,尽管SOA存在问题,但不能把全部责任都推给SOA。
重用性与变更管理。Abedrabbo认为,重用性之所以对SOA来说十分重要,主要是因为SOA缺乏成熟的变更管理工具。服务一旦部署好了,就不太愿意做出变更,因为成本太高。而微服务在变更管理方面具有一定的优势,因为对微服务做出变更的成本要小得多。
集成与组合。SOA架构强调的是集成,客户端可以向服务器端发送任何格式的数据,包括XML,服务器端负责解析和处理这些数据。而在微服务架构里则恰好相反,微服务注重组合,服务调用端需要自己知道如何调用其他服务。Abedrabbo对此总结说,集成增加复杂性,而组合降低复杂性。
技术重用与功能重用。SOA注重技术重用,我们总是希望尽可能多地重用一个服务,尽管对服务做出变更有很大阻力。而微服务架构更注重让小型的服务专注于特定的业务功能上。
静态与动态。SOA需要处理所有的事情,一个SOAP调用不仅要处理业务逻辑,还要处理安全和事务方面的问题。而微服务更加动态,微服务生态系统的不同部分负责处理不同的问题。
有SOA背景的开发人员在构建微服务时容易使用反模式,比如分布式单体,他们只是对一个边界进行无机拆解。对一个已有的单体进行解耦时,如果不考虑边界问题就很容易犯这个错。在与遗留系统进行集成时太过关注底层的解耦,但没有考虑到通信保证、幂等性等因素,这也是很常见的问题。这样的系统只会增加复杂性,体现不出微服务的优势。
Abedrabbo给出了一些建议用于解决这方面的问题:
采用领域驱动设计。使用微服务实现领域逻辑,避免单纯地从技术角度设计可重用的微服务。
不要使用规范的数据模型。规范的数据模型只会阻碍微服务系统的演化,所以我们应该使用局部数据视图。
正常化元数据,并将它们从其他数据中分离出来。
使用正确的工具。比如,每个微服务都应该有自己的数据库。多个服务共享一个数据库是一种反模式,不过如果使用图数据库或许会是个好办法。
明年的微服务大会将于2018年11月5号至6号召开。
原文:http://www.infoq.com/cn/news/2017/11/soa-impact-microservices
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
相关文章推荐
- 为什么说社会形态影响着SOA面向服务架构思想?
- 为什么说社会形态影响着SOA面向服务架构思想?
- 面向服务的架构(SOA)的推荐方法
- 使用WC“.NET研究”F实现SOA面向服务编程——使用AJAX+WCF服务页面开发
- SOA 建模之服务实施
- 精通soa:构建服务组合
- SOA— 服务为导向的架构是什么?
- 理解SOA中的服务生命周期:设计时
- SOA 服务管理
- 我的WCF之旅(5):面向服务架构(SOA)和面向对象编程(OOP)的结合——如何实现Service Contract的重载(Overloading)
- [转载]微观SOA:服务设计原则及其实践方式
- SOA面向服务的架构
- SOA之路 -- 区别对待服务
- SOA服务总线设计
- 面向服务的体系结构(SOA)——(4)对于服务的理解
- HBase Flush操作流程以及对读写服务的影响
- SOA (面向服务的架构)
- 用于实现 Web 服务的 SOA 编程模型,第 10 部分: SOA 用户角色
- 遇到影响服务器性能的cpuspeed 服务
- 使用WCF实现SOA面向服务编程—— 架构设计