Istio读书笔记-01

《Istio实战指南》 by 马若飞 2019年9月第1版

书中的 Istio 为 1.1版

---

 

https://istio.io/ 官网,访问不了!著名的国内网络环境问题导致的吗?

 

单体应用》多层结构》SOA(企业服务总线,ESB)》微服务架构(Microservice)》服务网格(Service Mesh)

 

微服务架构痛点:

服务数量激增,几十、几百,甚至更多,

如何有效地管理服务?

保障服务间的通信稳定可靠?

网络层面的问题(L.Peter Deutsch等人提出的著名理论——分布式环境下的8个谬论)。

版本控制、监控、故障转移。A/B测试、灰度发布、限流、熔断和访问控制等一些列和网络相关的问题

 

于是,服务网格 诞生了

 

Sidecar模式:

2013年, Airbnb开发了Synapse和Nerve

2014年,Netflix退出了Prana

对应于服务 没有入侵性

不会受到应用服务的 语言和技术限制

控制层和业务逻辑 的分开升级和部署

主要功能:

服务注册、服务健康检查、服务发现、接管进出流量(日志监视、调用链跟踪、流控熔断等)、控制应用服务(流控、下线等)

来源:Sidecar模式初识

微服务网络通信功能的演进过程

Sidecar模式 最终演变成了 服务网格。

 

服务网格(Service Mesh)

2016年9月 由 Buoyant公司 的 CEO William Morgan首先提出

服务网格的出现 解决了微服务架构中的痛点,使开发人员专注于业务本身

将服务通信及相关管控功能从业务程序中 分离到基础设施层。

作为微服务架构中 负责网络通信的基础设施。

 

服务网格的

主要功能:

  1. 动态路由
  2. 故障注入
  3. 熔断
  4. 安全
  5. 多语言支持
  6. 多协议支持
  7. 指标和分布式追踪

主要特性:

  1. 可见性
  2. 可管理性
  3. 健壮性
  4. 安全性(服务间访问控制等)

 

服务网格产品:

Linkerd

2016年初,前Twitter工程师 William Morgan和Oliver Gould组建 创业公司Buoyant。

业界公认的第一个 S.M.。

著名博文:What's a service mesh? And why do I need one?

Envoy

2016年9月,Lyft公司的Matt Klein发布。

2017年,Envoy加入CNCF,2018年孵化完毕。

一个高性能的C++语言实现的分布式代理,也是一个通信总线。

已从CNCF毕业,作为 数据平面,以Sidecar代理的形式存在于Istio架构体系中。

Istio

2017年5月发布0.1版,标志 第二代S.M.产品诞生。

2018年7月发布1.0版。

是Google、IBM、Lyft联合发布的产品。

Envoy成为Istio默认的数据平面,Linkerd、Ngimesh也放弃竞争,选择与其集成。

一个微服务的开放平台,提供了 统一的方式 去 连接、管理和保护微服务。

好处:有了Istio,就几乎可以不需要其它微服务框架(!!!)、也不需要自己去实现服务治理、把网络层委托给Istio。

其它-Conduit

2017年底,Buoyant公司,轻量级S.M.产品,基于Rust实现。

其它-NginMesh

Nginx开发的S.M.产品。

2017年9月加入Istio网络工作组,作为Istio平台中 负载平衡和服务代理。

不活跃状态,趋于停滞

其它-SOFAMesh

蚂蚁金服发起。

控制面板 克隆了Istio并改进,MOSN是基于Golang开发的权限数据面板,用以替换Envoy。

官网声明:(更新时间: 2020-04-29)该项目仓库已弃用。该项目将直接向 Istio 贡献,不会继续在 fork 的仓库中开发,请转至 Istio 官网。

 

Istio 提供一种简单的方式来为已部署的服务建立网络,该网络具有负载均衡、服务间认证、监控等功能,而不需要对服务的代码做任何改动。

 

Istio主要功能:

  1. 对HTTP GRPC WEBSOCKET TCP流量的自动负载均衡
  2. 细粒度的流量控制
  3. 插件式的策略层、配置API支持访问控制、速率限制和配额请求
  4. 对集群所有进出流量进行 测量、记录并追踪
  5. 身份验证 和 授权 保证服务间通信的安全

 

对于S.M.来讲,1)业务代码无侵入 和 2)网络层的全权代理 是其重要的优势。

Istio架构如何做到的?

数据平面(Data Plane)、控制平面(Control Plane)

D.P.

一组和业务服务成对出现的Sidecar代理(Envoy)构造

接管服务进出流量、传递并控制服务、和Mixer组件的所有网络通信

C.P.

主要包括 Pilot、 Mixer、 Citadel和Galley 共4个组件

来源:参考文档2

 

Istio被设计为 支持多种平台。

不过,

目前仍然深度依赖 Kubernetes(仅支持)。

 

参考文档

1、istio 简介

2、Istio架构剖析

3、

posted @ 2021-10-04 12:12  快乐的欧阳天美1114  阅读(70)  评论(0编辑  收藏  举报