What is a service mesh?
Service mesh is an architectural pattern for large-scale cloud-native applications that are composed of many microservices. When your application is structured as a collection of microservices, there is a lot going on in the boundary between microservices inside your Kubernetes cluster. This is different from traditional monolithic applications where most of the work is done by a single OS process.
Here are some concerns that are relevant to each microservice or interaction between microservices:
- Advanced load balancing
- Service discovery
- Support for canary deployments
- Caching
- Tracing a request across multiple microservices
- Authentication between services
- Throttling the number of requests a service handles at a given time
- Automatically retrying failed requests
- Failing over to an alternative component when a component fails consistently
- Collecting metrics
All these concerns are completely...