引言

在微服务的概念下,通过将复杂系统切分为若干个微服务来分解和降低复杂度,使得这些微服务基于被小型的开发团队所理解和维护。但是复杂度并非从此消失。微服务被拆分后,单个微服务的复杂度大幅降低,但是由于系统被从一个单体拆分为几十甚至更多的微服务,就带来了另外一个复杂度:微服务的连接、管理和监控。

目前微服务存在的问题

对于一个大型系统,需要对多达上百个甚至上千个微服务的管理、部署、版本控制、安全、故障转移、策略执行、遥测和监控等,这是非常不容易的,更不用说复杂的运维需求,如A/B测试,金丝雀发布,限流,访问控制和端到端认证等。
总的来说就是:运维不友好,管理复杂,围绕服务调用的各种功能太过散乱。

Service Mesh是什么

什么是Service Mesh(服务网格)?

  • 服务网格是一个基础设施层,用于处理服务间通信,应用有着复杂的服务拓扑结构,服务网格负责在这些拓扑中实现请求的可靠传递,在实践中,服务网格通常被实现为一组轻量级的网络代理,与应用程序部署在一起,对应用程序透明。
  • 可以将它比作是应用程序或者微服务之间的TCP/IP协议,负责服务之间的网络调用、限流、熔断和监控。