• 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、

  • 相关阅读:
    关于防盗链
    原生php登陆注册
    thinkPHP的D方法和M方法用法和区别
    Python中类与对象的关系
    解决_CRT_SECURE_NO_WARNINGS 警告
    骨头汤、豆浆、海带都不能补钙,最补钙的食物是它
    蘑菇鸡蛋汤
    CString和string在unicode与非unicode下的相互转换(转)
    【CString与string转换】不存在从 "LPWSTR" 转换到 "std::basic_string<char, std::char_traits<char>, std::allocator(转)
    LINK : fatal error LNK1104: 无法打开文件“mfc71.lib”(转)
  • 原文地址:https://www.cnblogs.com/luo630/p/15366136.html
Copyright © 2020-2023  润新知