本文共 981 字,大约阅读时间需要 3 分钟。
SOA和 Microservices的差异不是大小的问题
Stephen O'Grady | July 20, 2017对于那些已经在科技行业一段时间,有一种倾向,就是把当前的Microservices与古老的面向服务架构(SOA)比较甚至等同的做法。有很多类似“ Microservices”无非是新的SOA”或“亚马逊是把SOA作对的唯一的公司。”的论调。这不足为奇,因为它也是事实。尽管有很多问题,SOA企业应用的场景,看起来非常像当前正在发展的的,基于原生云架构,由Microservices与其他技术一起构成的应用架构。剥离到其核心,SOA的想法就是架构应该由服务而不是单一的应用程序组成。如果SOA和 Microservices从功能的角度来看,至少有一些共同点,那么,为什么大家拒绝前者和拥抱后者?许多人会认为大小为关键的区别。SOA描述的服务没有足够的粒度(这是有争议的)因此很难构建和更难管理。这其实掩盖了将大服务分解成大量小的服务造成大量管理开销的显而易见的事实,同时忽略了更为重要的区别:SOA是一个主要由供应商主导的概念, 而Microservices则相反的是的自下而上驱动的。考虑到像AWS这样的平台的成功,很难提出这样一个论点:服务驱动的平台不是构建平台的有效方法,或者说它们不是当前的主流方法。但值得注意的是,基于服务的平台目前一般都是开发人员现在建设的。而大型供应商最初设想的SOA驱动的世界,其服务是建立在一个复杂的(经常是政治化的)标准的拜占庭框架(译者:应该是指受大型供应商控制)之上的,这一点从未发生过,原因很简单,开发人员不想要它--任何部分。可以肯定的是, Microservices也受益于由各种SOA实践者的经验教训,通过努力推广和社交推广简化了从前者转向后者的难度。但是,从SOA中获得的最重要的一点(有争议)是开发人员将在一个决定性的作用——在许多情况下决定什么将被使用,什么将不被使用。Microservices比一个全部由供应商来决定的SOA让他们更容易接受。在这个行业中,我们常常寻找管于技术或功能的成功或失败的解释,而成功或失败的真正原因则要简单得多:这技术些会使国王(指开发人员)想使用它吗?这篇文章很好的指出了SOA和Microservices的区别,翻译过程中有简化,原文链接:转载地址:http://jfytx.baihongyu.com/