美文网首页
四、蚂蚁SOFAMesh/MSON与istio的不同

四、蚂蚁SOFAMesh/MSON与istio的不同

作者: yezide | 来源:发表于2020-02-01 15:34 被阅读0次

    学习完原生的istio, 再回头来看蚂蚁在service mesh的实现,本文主要分析差异点
    先献上蚂蚁的链接:https://www.sofastack.tech/projects/
    重点看SOFAMesh和MOSN两个项目

    1、整体架构

    SOFAMesh 是基于 Istio 改进和扩展而来的 Service Mesh 大规模落地实践方案。在继承 Istio 强大功能和丰富特性的基础上,为满足大规模部署下的性能要求以及应对落地实践中的实际情况,有如下改进:

    • 采用 Golang 编写的 MOSN 取代 Envoy
      扩展理解:Envoy核心是用C++11编写的

    • 合并Mixer到数据平面以解决性能瓶颈
      扩展理解: 因为Envoy发起每个请求前都需要对Policy服务进行Check请求,一方面增加了业务请求本身的延迟,一方面也给作为单点的Policy增大了负载压力

    • 增强 Pilot 以实现更灵活的服务发现机制
      扩展理解:支持自家的SOFARegister

    • 增加对 SOFARPC、Dubbo 的支持
      扩展理解:蚂蚁/阿里自家协议

    下图展示了SOFAMesh 和 Istio 在架构上的不同:


    image.png

    2、SOFA Pilot

    SOFA Mesh 项目 fork 了 Istio 项目,对 Pilot 的能力进行增强,目前在进行中的增强主要集中在下面三个方面:

    • 支持 Zookeeper 作为注册中心,并在此基础上支持 SOFA、DUBBO 等使用 Zookeeper 作为注册中心的微服务框架。
    • 支持通用协议框架,使用一个通用协议,在 Kubernetes DNS 的基础上同时支持多种协议。
    • 新增 register agent,支持 SOFA、DUBBO 和 HSF 的容器模型,即支持单个应用注册多个服务实例。

    3、MOSN

    MOSN即Modular Open Smart Network-proxy 本质上和Envoy一样,还是代理嘛
    核心不同点:
    1、 MOSN用流量接管方案: 我理解是把sidecar的端口注册到服务中心,最终调用的并不是真服务端口
    资料: https://www.sofastack.tech/projects/sofa-mosn/concept/traffic-hijack/

    2、Envoy用iptables流量劫持方案:我理解是直接劫持真服务端口
    资料: https://jimmysong.io/istio-handbook/concepts/sidecar-injection-deep-dive.html

    3、平滑升级:有点复杂,涉及到网络深层原理了,读下来的感觉就是MOSN方案更屌
    资料: https://www.sofastack.tech/projects/sofa-mosn/concept/smooth-upgrade/

    相关文章

      网友评论

          本文标题:四、蚂蚁SOFAMesh/MSON与istio的不同

          本文链接:https://www.haomeiwen.com/subject/jtcxxhtx.html