ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Istio读书笔记-01

2021-10-04 12:33:57  阅读:373  来源: 互联网

标签:01 架构 读书笔记 Envoy 网格 Istio 服务 Sidecar


《Istio实战指南》 by 马若飞 2019年9月第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、

标签:01,架构,读书笔记,Envoy,网格,Istio,服务,Sidecar
来源: https://www.cnblogs.com/luo630/p/15366136.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有