微服务,正确实施的微服务,正确实施的SOA??
对于组织来说,能够构建、发展和扩展大型应用程序是至关重要的, 但所涉及的挑战使其成为一项艰巨的任务。正因为如此, 微
服务凭借能够将单个组件拆分成围绕特定业务功能的独立服务,已成为构建现代云应用程序的主要模式。
微服务架构是一种分布式系统的方法,它可以促进使用具有自身生命周期的细粒度服务。由于微服务主要是围绕单个业务流
程/功能而建模的,所以它们避免了传统分层 (多层/n 层)体系结构(如单体应用) 的问题。微服务同时还集成了过去十年出现的
技术和新兴技术,因此避免了许多面向服务体系结构实现的缺点。
虽然使用微服务在使大型应用程序更易于管理方面有诸多好处,但是在任何情况下,构建一个可靠的分布式系统都是非常具有
挑战性的,因为在处理故障、一致性和性能等方面有很多需要考虑的因素。
关于域
SOA:面向服务的架构
面向服务的体系架构SOA是一种可根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用的方法。每
个服务都将实现预定义的业务目标,并执行分离的工作单元。这些服务是独立的,不依赖于其它服务的上下文或状态。它们在
分布式系统体系结构中工作。
在某些方面,SOA架构是分布式技术(COM和CORBA)的进化。与这些类似,SOA强调服务与消费者(WSDL)以及特定服
务发现(UDDI)、传输(SOAP)、中介(WS-mediation)、路由(WS-寻址)、安全(WS-security、WS-trust、WS-
secure conversation等)和分布式计算的其他方面之间的严格契约。此外,SOA通过企业存储库、服务生命周期管理和服务
级别监控工具,强调对服务的设计、开发和运营治理.
1 Introduction
微服务是一种体系结构风格。它是一种将单个应用程序开发为一组小型服务的方法,每个服务都运行自己的流程,并与轻量级
机制通信,通常是 HTTP API。这些服务是围绕业务功能构建的,可以独立部署。
微服务模式有着显著的好处,特别是在支持复杂企业应用程序的敏捷开发和交付方面。
微服务体系结构模式将应用程序分解为可管理的块,从而实现执行模块级别,而在实践中,通过单一代码库实现模块级别是极
其困难的。因此,单个服务的开发速度更快,也更容易理解和维护。
另外,这种方法更倾向于轻量级消息总线。简单来说,基于微服务构建的应用程序,其目的是尽可能地做到解耦和聚合。它们
拥有自己的单个域逻辑,并更多地充当过滤器——接收请求,根据需要适当地应用逻辑,并产生响应。
微服务体系结构的本质并不新鲜,分布式系统的概念由来已久。微服务体系结构也类似于SOA。微服务背后的理念是构建大
型的、复杂的、长期存在的应用程序,即随着时间的推移,而演进成一套统一的(有组织的或相互连接的)服务。“微服务”这
一术语强烈表明了服务应该是小型的。
然而,尽管拥有小型服务是可取的,但这不应该是主要目标。相反,你的目标应该在于将系统分解为服务,以解决开发和部署
的问题。有些服务可能确实很小,而另一些可能相当大。
应用程序的发展演变
单层应用程序
在早期发展进程中,应用程序作为一个单一实体开发部署。这些单层应用程序易于部署,因为它们只有一个代码基和部署配
置。
可伸缩性对于这种应用程序来说,是一个巨大的挑战,因为它只能通过复制整个应用程序来实现。这将直接增加企业的成本,
并随着流量和负载的增加而造成资源浪费。
多层 (或 n 层)