GrabHilman KurniawanProblem & solution
Grab's service mesh evolution: From Consul to Istio
Summary
Grab describes migrating its service mesh from Consul and the Catcher fallback across a microservices ecosystem of more than 1,000 services spanning VMs, EKS clusters, AWS, and GCP. The existing setup exposed fleet-wide risk from a single Consul server issue, added fallback complexity, and lacked advanced traffic management, security controls, and robust multi-cluster support. After evaluating Application Load Balancer, Istio, AWS Lattice, and Linkerd for stability, performance, integration, and operational simplicity, the team selected Istio for its Kubernetes integration, flexible deployment models, and feature set. The design uses multiple control planes on dedicated Kubernetes clusters, active-active pairs, organization-based mesh boundaries, custom resource definitions, and cross-cluster endpoint discovery to support isolation, availability, routing, security, and observability. Migration began in Q4 2024 with GCP-to-AWS work alongside gRPC and HTTP traffic initiatives, using gradual shifting, rollback mechanisms, and performance monitoring while teams manage legacy systems and cross-mesh connectivity.
Context
Grab’s existing Consul-based service mesh and Catcher fallback were becoming difficult to operate across more than 1,000 services distributed over VMs, EKS clusters, AWS, and GCP. A single Consul server issue could affect many services, while the architecture lacked robust multi-cluster support and advanced traffic management and security capabilities. Grab also needed to handle HTTP and gRPC traffic across multiple organizations, cloud providers, and isolated networks.
Approach / What changed
Grab evaluated Application Load Balancer, Istio, AWS Lattice, and Linkerd, then selected Istio. The architecture uses multiple control planes on dedicated Kubernetes clusters with active-active pairs, organization-based mesh boundaries, custom resource definitions, and cross-cluster endpoint discovery. Migration work includes GCP-to-AWS movement plus gRPC and HTTP traffic migration, gradual traffic shifting, rollback mechanisms, cross-mesh connectivity, and performance monitoring.
Takeaways
Grab selected Istio after comparing Application Load Balancer, Istio, AWS Lattice, and Linkerd on stability under high load, communication performance, infrastructure integration, and operational simplicity.
The planned architecture departs from the one-control-plane-per-cluster pattern by using multiple control planes on dedicated Kubernetes clusters, with active-active pairs for isolation, scalability, and high availability.
Migration began in Q4 2024 and combines cloud migration with gRPC and HTTP traffic initiatives, using gradual shifting, quick rollback mechanisms, and close performance monitoring to maintain service continuity.
Source and freshness
- Source
- engineering.grab.com
- Published
- Added to Yomu
- Last updated
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.