Service Mesh理解

Service Mesh 解决了什么问题

Service Mesh1.Service Mesh基本概念

1.1.什么是Service Mesh服务网格

在熟悉和使用Istio之前首先要了解什么是Service Mesh。

Service Mesh即为 "服务网格" ,是用于处理服务与服务之间通信的基础设施层,主要负责为复杂构建的云原生应用提供一个可靠网络传递请求,并为微服务通信实现了基本的功能,例如服务发现、负载均衡、监控、流量管理、访问控制等等。

服务网格通常是将一个应用程序与一个代理程序部署在一起,并进行关联,对于应用程序来说是透明的,所有的请求都是由代理程序进行处理。

如下图所示:整张图好比是微服务应用,每一个方框都可以看作是一个微服务程序,其中绿框表示具体的应用,蓝框表示代理程序(Sidecar Proxy),各个微服务之间的通信都是通过代理程序完成的,图中的蓝线就表示各个微服务程序之间的通信路线,整张图看起来就像是错综复杂的网格,这也就是服务网格名称的由来。

1.2.服务网格的特点

Service Mesh服务网格主要是方便管理微服务而诞生的,在微服务环境中,少到几个微服务程序多到上百个微服务应用程序,使用传统模式时,需要为不同的微服务程序分别配置代理,当微服务数量庞大时运维的成本会大大提高,并且不易管理,当使用服务网格后,每一个微服务程序都会关联一个代理程序,所有的流量请求都有代理程序处理,并且服务网格具备控制中心概念,所有的代理程序均通过控制中心进行统一管理,减少人工维护的成本。

以Sidecar代理程序为例,既然所有的流量请求都是有服务网格中的代理程序处理,那么可以做到的事情就非常之多了。