ServiceMesh 主要解决的三大痛点
Service Mesh 是一个致力于解决服务间通信的基础设施层,其负责在现代云原生应用的复杂服务拓扑下实现请求的可靠传递,在实践中 Service Mesh 通常实现为一组轻量级网络代理,这些代理与应用程序部署在一起,并且对应用程序透明。
基础设施层是 Service Mesh 的定位,致力于解决微服务基础设施标准化、配置化、服务化和产品化问题;服务间通信是 Service Mesh 技术面对的问题域,对微服务屏蔽通信的复杂度,解决微服务的通信治理问题;请求的可靠传递是 Service Mesh 的目标;轻量级网络代理是 Service Mesh 的部署方式;对应用程序透明是 Service Mesh 的亮点和特色,Service Mesh 接入对业务无侵入,可以非常方便地获取 Service Mesh 带来的便捷性。
Service Mesh 主要解决用户如下 3 个维度的痛点需求。
一、完善的微服务基础设施
Service Mesh 通过将微服务通信下沉到基础设施层,屏蔽了微服务处理各种通信问题的复杂度,可以看成是微服务之间的抽象协议层,抽象层面可以看成是 TCP/IP 协议栈的一部分。对于微服务的开发者来说,比如当前使用 HTTP 或者 Thrift 进行 RPC 通信时,你不需要关注 TCP/IP 这一层的具体实现;有了 Service Mesh 之后,微服务也不再需要关注 RPC 通信(包含服务发现、负载均衡、流量调度、限流降级、监控统计等)的一切细节,真正像本地调用一样使用微服务,通信相关的一切工作直接交给 Service Mesh。因此,对于一些需要通过微服务改造提升业务敏捷性,但没有相应技术能力的中小团队来说,可以借助 Service Mesh 提供的完善微服务基础设施,加速微服务的落地。
二、语言无关的通信和链路治理
功能上,Service Mesh 并没有提供任何新的特性和能力,Service Mesh 提供的所有通信和服务治理能力在 Service Mesh 之前的技术中均能找到,比如 Spring Cloud 就实现完善的微服务 RPC 通信和服务治理支持。Service Mesh 改变的是通信和服务治理能力提供的方式,通过将这些能力实现从各语言业务实现中解耦,下沉到基础设施层面,以一种更加通用和标准化的方式提供,屏蔽不同语言、不同平台的差异性,这样不仅有利于通信和服务治理能力的迭代和创新,业务使用的时候也会更加方便。Service Mesh 避免了多语言服务治理上的重复建设,通过 Service Mesh 语言无关的通信和服务治理能力,助力多语言技术栈的效率提升。
三、通信和服务治理的标准化
微服务治理层面,Service Mesh 是标准化、体系化、无侵入的分布式服务治理平台。
标准化方面,Sidecar 成为所有微服务流量通信的约束标准,同时 Service Mesh 的数据平面和控制平面也通过标准协议进行交互。
体系化方面,从全局考虑,提供多维度立体的微服务可观测能力(Metric、Trace、Logging),并且提供体系化的服务治理能力,比如限流、熔断、安全、灰度等;最为重要的是,Service Mesh 通过透明无侵入的方式提供全面的服务治理能力,对微服务本身不会带来直接影响。
通过标准化,带来一致的服务治理体验,减少多业务之间由于服务治理标准不一致带来的沟通和转换成本,提升全局服务治理的效率。
版权声明: 本文为 InfoQ 作者【阿泽🧸】的原创文章。
原文链接:【http://xie.infoq.cn/article/9cf10a94f84eb3beb2fa5a355】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论