Service Mesh简介

什么是Service Mesh

Service Mesh被译作服务网格,实质是一种网络代理服务。网络代理代理就是中介,可以对请求进行拦截修改,最简单的例子就是电信运营商在流量中插入广告。

Service Mesh 可以看做是传统代理的升级版,用来解决现在微服务框架中出现的问题(网络相关),可以把 Service Mesh 看做是分布式的微服务代理。

传统意义的代理的主体更强调底层网络数据,而Service Mesh 等强调程序级别的api级别的通用功能,和业务逻辑有一定关心,是以应用(服务)为具体核心服务对象的。是把和网络api基本配置相关的通用功能独立出来。

Service Mesh 是把和网络相关、但不依赖于具体流程、可以独立抽象出来的功能抽出一层,并提供一个公共的数据和控制面板,方便用户使用。

Service Mesh 为独立的异构微服务体系提供统一的网络相关标准服务,方便服务管理,并且提高开发效率,同时增加其可维护性。Service Mesh 可以为遗留的老项目套上一层壳,可以在不改变代码的情况下为其添加提安全,容错等高级服务,减轻维护负担。

Service Mesh 是整个网络层管理,不是只针对服务api ,还包括数据库redis等等,是全面的网络层控制。

Service Mesh 功能

四个层面

  1. 连接(Connect):智能控制服务之间的调用流量,能够实现灰度升级、AB 测试和红黑部署等功能
  2. 安全加固(Secure):自动为服务之间的调用提供认证、授权和加密。
  3. 控制(Control):应用用户定义的 policy,保证资源在消费者中公平分配。
  4. 观察(Observe):查看服务运行期间的各种数据,比如日志、监控和 tracing,了解服务的运行情况。

具体功能

服务注册与发现

服务的伸缩控制

反向代理与负载均衡

路由控制

流量切换

日志管理

性能度量、监控与调优

分布式跟踪

过载保护

服务降级

服务部署与版本升级策略支持

错误处理

解决方案 istio

https://github.com/istio/istio

istio 是对envoy的封装,通过k8s资源文件来描述和使用,使用更方便,提供了一个控制面板,对k8s 和envoy提供了适配接口,增加了数据监控接口(普罗米修斯)。


分享到:


相關文章: