SOA对微服务仍有残余影响
极客时间编辑部
讲述:丁婵大小:1.17M时长:02:33
近日,在伦敦 2017 µCon 微服务大会上,OpenCredo CTO 塔里克 (Tareq Abedrabbo) 分享了他关于微服务的观点,在他看来,SOA 对微服务架构设计的残余影响仍然存在,包括技术选型和组织方面的问题。最直接的一个例子就是大多数企业仍然区分对待架构师和开发人员,架构师负责出规范,而开发人员负责实现。
塔里克在大公司和小公司都工作过,这些公司在向微服务架构迁移的过程中仍然受到 SOA 的影响。他在演讲中对 SOA 和微服务进行了有趣的对比:
1. 重用性与变更管理
塔里克认为,重用性之所以对 SOA 来说十分重要,主要是因为 SOA 缺乏成熟的变更管理工具。同时,因为成本太高,SOA 中的服务一旦部署好了,就不太愿意做出变更。而微服务在变更管理方面具有一定的优势,因为对微服务做出变更的成本要小得多。
2. 集成与组合
SOA 架构强调的是集成,客户端可以向服务器端发送任何格式的数据,由服务器端负责解析和处理这些数据。而在微服务架构里则恰好相反,微服务注重组合,服务调用端需要自己知道如何调用其他服务。塔里克对此总结说,集成增加复杂性,而组合降低复杂性。
3. 技术重用与功能重用
SOA 注重技术重用,人们总是希望尽可能多地重用一个服务,而微服务架构更注重让小型的服务专注于特定的业务功能上。
4. 静态与动态
SOA 需要处理所有的事情,一个 SOAP 调用不仅要处理业务逻辑,还要处理安全和事务方面的问题。而微服务更加动态,微服务生态系统的不同部分负责处理不同的问题。
有 SOA 背景的开发人员在构建微服务时容易使用反模式,比如分布式单体,他们只是对一个边界进行无机拆解。对一个已有的单体进行解耦时,如果不考虑边界问题就很容易犯这个错。在与遗留系统进行集成时太过关注底层的解耦,但没有考虑到通信保证、幂等性等因素,这也是很常见的问题。这样的系统只会增加复杂性,体现不出微服务的优势。
不过塔里克也在演讲中强调,尽管 SOA 存在问题,但开发人员也不能把全部责任都推给 SOA。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论