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
Requires Kubernetes or a service mesh environment, full integration with Istio demands substantial infrastructure experience.
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.
← mosn on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.