老辈SOA,火的微服务,新生代服务网格(Service Mesh)

SOA 架构

SOA 全称是:Service Oriented Architecture,“面向服务的架构”。

说SOA,必然要说ESB,ESB 的存在是为了集成基于不同协议的不同服务,ESB 做了消息的转化、解释以及路由的工作,以此来让不同的服务互联互通。

老辈SOA,火的微服务,新生代服务网格(Service Mesh)

SOA 所要解决的核心问题是:

  • 系统间的集成:站在系统的角度来看,首先要解决各个系统间的通信问题。目的是将原先系统间散乱、无规划的网状结构,梳理成规整、可治理的星形结构,这步的实现往往需要引入一些概念和规范。比如 ESB、以及技术规范、服务管理规范;这一步解决的核心问题是【有序】
  • 系统的服务化:站在功能的角度,需要把业务逻辑抽象成可复用、可组装的服务,从而通过服务的编排实现业务的快速再生。目的是要把原先固有的业务功能抽象设计为通用的业务服务、实现业务逻辑的快速复用;这步要解决的核心问题是【复用】
  • 业务的服务化:站在企业的角度,要把企业职能抽象成可复用、可组装的服务,就要把原先职能化的企业架构转变为服务化的企业架构,以便进一步提升企业的对外服务的能力。“前面两步都是从技术层面来解决系统调用、系统功能复用的问题”。而本步骤,则是以业务驱动把一个业务单元封装成一项服务。要解决的核心问题是
    【高效】

微服务(Microservices)架构

微服务不再强调传统 SOA 架构里面比较重的 ESB 企业服务总线,同时以 SOA 的思想进入到单个业务系统内部实现真正的组件化。原单个业务系统会被拆分为多个可以独立开发、设计、部署运行的小应用或组件服务。

老辈SOA,火的微服务,新生代服务网格(Service Mesh)

服务的特征:

  • 通过服务实现组件化
  • 按业务能力来划分服务和开发团队
  • 去中心化
  • 基础设施自动化(DevOps、自动化部署)

服务注册发现和负载均衡是微服务架构在技术上的根本问题,解决的办法是采用代理 Proxy。根据代理在架构上的位置不同,服务发现代理一般有三种模式:

  • 模式一:集中式代理
老辈SOA,火的微服务,新生代服务网格(Service Mesh)

  • 模式二:客户端嵌入式代理
老辈SOA,火的微服务,新生代服务网格(Service Mesh)

  • 模式三:主机独立进程代理
老辈SOA,火的微服务,新生代服务网格(Service Mesh)

服务网格(Service Mesh)架构

ServiceMesh 本质上就是模式三中主机独立进程代理,它结合了模式一和模式二的优势。

号称是下一代微服务,不知道生产环境用的多不,有人探路没有。所以没有趋于成熟的东西,生产环境慎用。

老辈SOA,火的微服务,新生代服务网格(Service Mesh)

老辈SOA,火的微服务,新生代服务网格(Service Mesh)

服务网格的特征:

  • 应用程序间通讯的中间层
  • 轻量级网络代理
  • 应用程序无感知
  • 解耦应用程序的重试/超时、监控、追踪和服务发现

以上是参考网上文章和个人理解,理解有误的地方请多多指教。

参考

SOA&微服务&服务网格&高可用

http://www.cnblogs.com/wade-luffy/p/9293090.html

微服务架构设计

https://www.cnblogs.com/wintersun/p/6219259.html

Service Mesh 及其主流开源实现解析

http://blog.51cto.com/brucewang/2144039?from=groupmessage


分享到:


相關文章: