Service Mesh Explained - Do You Actually Need Istio?
A team adds Istio to a cluster with six services, spends two months fighting sidecar configs, and never touches half the features. This question shows up constantly because it separates engineers who chase trendy tooling from ones who can reason about operational cost versus benefit.
The answer interviewers want
A service mesh is middleware for your microservices. It handles service-to-service communication - retries, mTLS, traffic splitting, observability - so your application code doesn't have to implement that logic itself.
The catch is that this only pays off at a certain scale. You need dozens of services before Istio's operational complexity is worth it. For smaller setups, plain Kubernetes Service objects and an ingress controller handle routing and load balancing just fine, with far less to operate and debug.
The real signal for when to adopt a mesh isn't a headcount of microservices or a feeling that you might need it someday. It's a recurring operational pain point: if you're debugging cross-service failures on a weekly basis, that's the point where a mesh's built-in retries, circuit breaking, and distributed tracing start solving real problems instead of adding new ones. Adopting Istio because it's a popular name in the Kubernetes ecosystem, without that pain already present, usually means taking on sidecar proxies, control plane upgrades, and a steep learning curve for a problem you don't have yet.
Why interviewers ask this
They're checking whether you default to "add more infrastructure" or whether you can tie a tool's adoption to a specific, observed operational problem. Anyone can describe what Istio does; fewer people can explain when it's the wrong call. This also signals whether you've actually operated a mesh or just read about one.
Follow-ups to expect
What problems does a mesh solve that an ingress controller and Kubernetes Services can't? Ingress and Services handle north-south traffic and basic routing well, but they don't give you mTLS between services, fine-grained traffic splitting, or consistent retry/circuit-breaking logic across every service without each team coding it themselves.
What's the cost of adopting a mesh too early? You take on sidecar proxies on every pod, a control plane to upgrade and secure, and a real learning curve, all before you have enough services generating cross-service failures for that investment to pay off.
How would you know it's time to introduce one? Track how often cross-service failures require debugging. If that's a weekly occurrence rather than an occasional incident, the mesh's observability and resilience features are addressing a live problem instead of a hypothetical one.
The common wrong answer
Candidates describe Istio's feature list in detail - mTLS, traffic shifting, observability - and treat that as the whole answer. That misses the actual question, which is about judgment: knowing that a handful of services with standard Kubernetes networking is often the right call, and that reaching for a mesh before you have the scale or the recurring pain to justify it is itself a failure of engineering judgment, not a sign of sophistication.
Prefer it spoken? Watch the 30-second answer on YouTube