MOSN

MOSN 是蚂蚁金服开源的,使用 Go 语言开发的网络代理软件,作为云原生的网络数据平面,旨在为服务提供多协议,模块化,智能化,安全的代理能力。MOSN 是 Modular Open Smart Network-proxy 的简称。MOSN 可以与任何支持 xDS API 的 Service Mesh 集成,亦可以作为独立的四、七层负载均衡,API Gateway,云原生 Ingress 等使用。

特点

MOSN 作为一款开源的网络代理,具有以下核心功能:

  • 通过 xDS API 对接 Service Mesh,支持全动态资源配置运行
  • 支持 TCP 代理、HTTP 协议、多种 RPC 代理能力
  • 支持丰富的路由特性
  • 支持可靠后端管理,负载均衡能力
  • 支持网络层、协议层的可观察性
  • 支持多种协议基于 TLS 运行,支持 mTLS
  • 支持丰富的扩展能力,提供高度自定义扩展能力
  • 支持无损平滑升级

核心能力

  • Istio集成
    • 集成 Istio 1.0 版本与 V4 API,可基于全动态资源配置运行
  • 核心转发
    • 自包含的网络服务器
    • 支持 TCP 代理
    • 支持 TProxy 模式
  • 多协议
    • 支持 HTTP/1.1,HTTP/2
    • 支持 SOFARPC
    • 支持 Dubbo 协议
    • 支持 Tars 协议
  • 核心路由
    • 支持 Virtual Host 路由
    • 支持 Headers/URL/Prefix 路由
    • 支持基于 Host Metadata 的 Subset 路由
    • 支持重试
  • 后端管理&负载均衡
    • 支持连接池
    • 支持熔断
    • 支持后端主动健康检查
    • 支持 Random/RR 等负载策略
    • 支持基于 Host Metadata 的 Subset 负载策略
  • 可观察性
    • 观察网络数据
    • 观察协议数据
  • TLS
    • 支持 HTTP/1.1 on TLS
    • 支持 HTTP/2.0 on TLS
    • 支持 SOFARPC on TLS
  • 进程管理
    • 支持平滑 reload
    • 支持平滑升级
  • 扩展能力
    • 支持自定义私有协议
    • 支持在 TCP IO 层,协议层面加入自定义扩展

为什么要使用 MOSN 替换 Istio 的数据面?

我们在进行Mesh改造前,已经预料到作为下一代蚂蚁金服的基础架构,Mesh 化势必带来革命性的变革以及演进成本,我们有非常宏大的蓝图:准备将原有的网络和中间件方面的各种能力重新沉淀和打磨,打造成为未来新一代架构的底层平台,承载各种服务通讯的职责。

这是一个需要多年时间打造,满足未来五年乃至十年需求的长期规划项目,合作共建团队跨业务,SRE,中间件,基础架构等部门。我们必须有一个具备灵活扩展,高性能,满足长期演进的网络代理转发平面。Nginx、Envoy 在研发效率、灵活扩展等方面均有不满足的地方,同时在整个 Mesh 改造涉及到非常多的部门和研发人员,必须考虑到跨团队合作的落地成本,所以我们基于 Golang 自研了云原生场景下的新型网络代理 MOSN。对于 Golang 的性能,我们前期也做了充分的调研和测试,满足蚂蚁金服业务对性能的要求。

MOSN 与 Envoy 不同点是什么?优势在哪里?

语言栈的不同

MOSN 使用 Go 语言编写,Go 语言在生产效率,内存安全上有比较强的保障,同时 Go 语言在云原生时代有广泛的库生态系统,性能在 Mesh 场景下被我们评估以及实践是可以接受的。所以 MOSN 对于使用 Go、Java 等语言的公司和个人的心智成本更低。

核心能力的差异化

  • MOSN 支持多协议框架,用户可以比较容易的接入私有协议,具有统一的路由框架;
  • 多进程的插件机制,可以通过插件框架很方便的扩展独立 MOSN 进程的插件,做一些其他管理,旁路等的功能模块扩展;
  • 具备中国密码合规的传输层国密算法支持;

results matching ""

    No results matching ""