摘要:微服务已经开始形成一套正式标准,也带来了一票提供相应服务的供应商。结论源于一组概念,它们与微服务架构具有相同的核心概念。
服务导向架构(简称SOA,service-oriented architecture)已经死亡?你可能会这么想。
但其实不然。的确,随着新技术的出现,SOA本身的价值可能已经大不如前,但是SOA的遗产仍在推动微服务市场发展。
将SOA原则纳入微服务的设计和构建是确保您的产品或服务长期处于有利地位的最佳方式。从此意义上讲,理解SOA,对于在微服务世界中取得成功至关重要。
在本文中,我将解释设计微服务应用程序时应采用哪些SOA原则。
介绍如今,在移动终端开发环境中,代码为王,构建具有RESTful界面的服务变得前所未有的容易,将其连接到数据存储就可以了。如果你想要更进一步,就把几个公共软件服务(免费或付费)整合在一起,这样你就可以拥有一个满足需求的持续交付流水线。欢迎来到现代Web和完全buzzworthy兼容的应用程序开发过程。
在许多方面,微服务是SOA的直接产物,有点像服务世界的朋克摇滚。没有严格的规则,只是一些基本原则让所有人保持大体想法一致。就像朋克摇滚,微服务最初信奉的是一种按自己的节奏来的行业伦理。此后微服务一直在不断发展,一些架构方式开始让微服务转变为主流。不光是使用微服务的dot com或Web公司——所有的公司都对此感兴趣。
定义为体现本讨论的目的,以下是我将要使用的定义。
微服务:特定业务功能的实现,使用队列或RESTful(JSON)接口作为多带带的可部署工件,可以用任何语言编写,并利用持续交付流水线。
SOA:基于组件的架构,其目标是在组织内部跨技术组合促进重用。这些组件需要松耦合,可以是集中管理的服务或库,并要求组织使用单个技术栈来最大限度地实现可重用性。
基于微服务的开发的优点正如您所知,微服务具有SOA所缺乏的几个很好的特性:
允许规模较小、自给自足的团队拥有支持特定业务功能的产品/服务,这大大提高了他们渴望的业务敏捷性和IT响应能力。
自动构建和测试,虽然可能不及SOA,现在是关键的筹码。
允许团队使用他们想要的工具,主要围绕使用哪种语言和IDE。
以敏捷为基础的开发与直接访问业务。微服务和移动开发团队已经成功地向企业展示了技术人员如何适应并接受不断反馈的业务。以往,瀑布式软件交付方法受制于不必要的开销和交付日期延长的影响,随着业务的变化,开发团队一开始创建的产品,在交付时常常无法满足业务需求。甚至像Rational Unified Process(RUP)这样的迭代开发方法在业务、产品开发和开发人员进行实际工作之间都有抽象层。
对服务的最小粒度的普遍了解。关于“添加客户端业务功能还是客户端管理业务功能”的争论一直存在,这并不完美,但至少两者都可以被实际运营业务的业务方所了解。你可能不愿相信,但技术并不是所有业务(对于世界上大多数企业而言)。回溯到SOA还是行业霸主时期,一些服务只执行一个数据库操作,其他服务则在系统中添加客户端,当IT缺乏一致的标准,就会导致业务的混乱。
SOA如何助力?看完这些定义后,你可能会想:“微服务听起来好得多”。的确,这正是未来发生演变的原因,只是它抛弃了许多在SOA世界中获得的经验教训。它放弃了SOA尝试实现的所有美好的事物,因为这一领域的IT供应商们为了推出更多的产品,而改变了一切。
企业集成模式(定义企业如何采用新技术或概念)是微服务利用SOA世界所做的工作的关键所在。每个参与整合空间的人都可以从这些模式中获益,然而它们只是概念,微服务是实现这些概念的一种很好的技术方法。
下面,我列出了微服务生态系统中应用SOA原理获得巨大成功的另外两个领域。
API网关(née ESB)微服务鼓励点对点连接,每个客户端都可以按自己的方式处理日期和其他细微之处。由于大多数公司提供的微服务的数量急剧增加,这种方式不可持续。
因此,在SOA环境中,企业服务总线(ESB)旨在为不同应用程序提供通信方式。SOA原本打算将ESB用于服务组件之间进行传输—而不是整个企业的中心。厂商推动,大公司购买,人们对这种模式的评价十分糟糕。
ESB中成功的产品已经转变为今天的API网关供应商,便于单一组织集中管理它们所呈现的端点,并为那些多年来尚未触及但对业务至关重要的旧式服务 (通常是soa/soap) 提供转换服务。
首要标准SOA具有WS- *标准。此标准虽然严厉,但在很大程度上保证了互用性。这些标准,特别是像WS-Security和WS-Federation这类更常见的标准,允许企业调用在其合作伙伴系统中使用的服务——虽然它们只是一个清单,任何人都能理解。
微服务已经开始形成一套正式标准,也带来了一票提供相应服务的供应商。OAuth和OpenID认证框架就是两个很好的例子。随着微服务的成熟,在内部构筑一切是有趣、充实、且对自身有益的,但最终令人沮丧的是,随着新特性的引入,它会产生大量的技术债务,代码不断地需要被修改。
标准正迅速整合的另一面是API设计和描述。在SOA世界中,有一种方法。对人而言它既没有美感,又几乎不可读,但是Web服务定义语言(WSDL)是一种通用的标准化的编目网络服务的格式。
截至2017年4月,所有主要的参与者(包括谷歌、IBM、Microsoft、MuleSoft和Salesforce.com)都参与了提供构建RESTful api的工具,这些都是OpenAPI倡议的成员。曾经那个有多个标准(JSON API、WASL、RAML和Swagger)的破碎市场,现在变成了可以用单一方式描述所有内容。
结论SOA源于一组概念,它们与微服务架构具有相同的核心概念。SOA落后是因为是驱动了太多管理,而“仅仅让它工作”是不够的。
为了使微服务继续生存下去,利用这些服务的团队不仅需要汲取以往的宝贵经验, 并使用敏捷开发的方法重新引入它们,此外还需采取适当的反治措施,防止SOA管理机制的重演。接下来还需把 ITIL安全地置于能够令其茁壮成长的运营团队中。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/26912.html
摘要:微服务架构概述应用架构的发展应用是可独立运行的程序代码,提供相对完善的业务功能。阿里开源的是的典型实现。它目前由官方开发维护,基于开发,提供一套完整的微服务解决方案。 微服务与Spring Cloud 随着互联网的快速发展, 云计算近十年也得到蓬勃发展, 企业的IT环境和IT架构也逐渐在发生变革,从过去的单体应用架构发展为至今广泛流行的微服务架构。 微服务是一种架构风格, 能给软件应用...
摘要:微服务集成服务间通信微服务架构下,应用的服务直接相互独立。微服务架构倾向于降低中心消息总线类似于的依赖,将业务逻辑分布在每个具体的服务终端。 引言:微服务是当前软件架构领域非常热门的词汇,能找到很多关于微服务的定义、准则,以及如何从微服务中获益的文章,在企业的实践中去应用微服务的资源却很少。本篇文章中,会介绍微服务架构(Microservices Architecture)的基础概念,...
摘要:微服务集成服务间通信微服务架构下,应用的服务直接相互独立。微服务架构倾向于降低中心消息总线类似于的依赖,将业务逻辑分布在每个具体的服务终端。 引言:微服务是当前软件架构领域非常热门的词汇,能找到很多关于微服务的定义、准则,以及如何从微服务中获益的文章,在企业的实践中去应用微服务的资源却很少。本篇文章中,会介绍微服务架构(Microservices Architecture)的基础概念,...
摘要:如何快速搭建一个微服务架构上图异步通信方式通常异步的生产者消费者模式,通过等异步消息通讯协议规范。数据的去中心化,进一步降低了微服务之间的耦合度,不同服务可以采用不同的数据库技术等。 什么是微服务? 微服务(Microservices Architecture)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服...
阅读 3076·2021-02-22 17:12
阅读 678·2019-08-30 15:55
阅读 3012·2019-08-30 15:54
阅读 1358·2019-08-29 16:56
阅读 1844·2019-08-29 15:13
阅读 1682·2019-08-29 13:19
阅读 577·2019-08-26 13:40
阅读 2797·2019-08-26 10:26