What is a Service Mesh?
Adopting a microservices architecture to modernize your applications has numerous benefits, but it also presents a number of new challenges. Container orchestration engines such as >Kubernetes help to address many of these concerns, but it’s not the tool to solve all concerns. For example, how do you find out why your application is suddenly running slow? How will one service find a remote service in another cluster? How can I limit which services should be allowed to communicate with each other? How to efficiently distribute traffic throughout my cluster as it grows and shrinks? How can I release a new version of software to only a single geography? How can I stop trusting my network completely? All of these challenges can be addressed using a service mesh. This talk explains what a service mesh is, how it’s different from the tools you’ve already heard about, and how you can solve each of these challenges using one. Istio, an open source project complimentary to Kubernetes, allows you to set up a service mesh of your own to start learning more about how it works. We also explain how Google has used these solutions to address challenges in our own systems using a range of best practices for managing distributed systems both for software developers, and system operators.