微服务 + Docker + 云平台 =ESB的死亡

大概看完这篇文章,并不是很同意文章的观点,在过去SOA中服务是一种粗粒度的服务,也就是与微服务相反,粗粒度的服务有两个好处:易于重用,减轻ESB的负载;而微服务催生,比如对事件总线的性能和可靠性要求提高,因为每个微服务是很小的组件,甚至是一个类,微服务之间的通讯几近类似于两个单个对象之间交互调用,性能称为至关重要,而过去的ESB产品主要面向工作流程的编排与灵活性上,性能是第二位的。

另外,微服务对团队组织也产生不同于ESB时代的影响,ESB时代,很多集成业务逻辑,也就是跨服务调用的逻辑放在ESB中,形成了专门的ESB产品开发团队,这是以ESB团队为核心的开发模式,众星捧月,树形结构;而微服务代理扁平的矩阵式管理模型,没有核心团队,不是面向ESB的开发模式,而是一个微服务一个团队。

第三,微服务概念基于云平台和Docke之类虚拟容器,允许不同语言开发方便轻量集成,而ESB的集成不同平台服务的规范复杂,非常重量,这两者存在矛盾性。

所以,从上面三个方面的矛盾性可以看出,微服务不能简单和ESB和平相处。微服务在新技术背景下集成的方式肯定与以前不同,主要区别是云平台的区别,现在我们开发的微服务需要无缝直接部署在操作系统上,也可以无缝不需要更改任何微服务配置,直接运行在云平台上,而使用过去的ESB是做不到这点的,因为以前没有云计算。如今我们的微服务集成可以通过Docker集成实现,比如Fig是一种Docker指挥编排器。

如今我们必须从这种DevOps全新角度去看过去,而不是像文章从过去SOA角度看今天。角度不同,深度不同。

[该贴被banq于2015-01-12 17:31修改过]