mosn
The Cloud-Native Network Proxy Platform
MOSN is a high-performance network proxy written in Go, battle-tested at massive scale by Ant Group, that routes traffic between services and handles load balancing, health checks, circuit breaking, and observability in a service mesh.
MOSN (Modular Open Smart Network) is a network proxy written in Go, open-sourced by Ant Group, the financial technology company behind Alipay. According to the README, it has been verified in production by hundreds of thousands of containers during Ant Group's annual 11.11 global shopping festival, one of the largest retail traffic events in the world.
In practical terms, MOSN sits in front of your services and handles how network traffic gets routed between them. This is the role of a service mesh data plane proxy. Instead of each service in your system needing to handle routing, retries, load balancing, and security on its own, you run a MOSN proxy alongside each service, and those proxies handle that work transparently.
MOSN can integrate with Istio, which is a widely-used service mesh control plane. In that setup, Istio tells MOSN how to route traffic, and MOSN carries out the actual work. But MOSN can also run independently as a load balancer, an API gateway, or a Kubernetes ingress controller without Istio.
The feature list in the README is long. On the protocol side it supports HTTP/1.1, HTTP/2, gRPC, and an extension framework for custom protocols. Routing can be based on headers, URL paths, prefixes, variables, and weighted splits. For backend management it supports connection pooling, health checks, circuit breakers, and several load balancing strategies. For observability it integrates with Jaeger and SkyWalking for tracing, and exposes Prometheus-compatible metrics. TLS with certificate rotation is supported, as is hot reload for zero-downtime upgrades.
Extensions can be written in Go as plugins, as separate processes, or compiled to WebAssembly.
Where it fits
- Replace Envoy as the data plane proxy in an Istio service mesh using MOSN for better Go ecosystem integration
- Run MOSN as a standalone API gateway or load balancer without needing a full service mesh control plane
- Deploy MOSN as a Kubernetes ingress controller to handle all incoming cluster traffic
- Extend MOSN with custom routing logic written as WebAssembly plugins