The document provides an introduction to service meshes and discusses Istio as an example service mesh. It defines a service mesh as a software layer that controls and monitors internal traffic between microservices. It describes how a service mesh provides traffic management, observability, and security features through proxies and a control plane. These features include routing, load balancing, failure handling, monitoring, tracing, and mutual TLS encryption. The document uses Istio concepts and components to illustrate how a service mesh works.
33. How did we manage before?
First web giants
Big distributed systems in early web-scale companies are managed by libraries dealing with RPC
Stubby
Hystrix
Finagle
?
Open Transaction Framework
Service Integrator
43. Traffic Management
Request Routing
_ A way to achieve service integration like we do with SI.
• For most of the cases yes
• No dynamic values in rules
• Not possible to do affinity using rules
_ A way to better control routing while doing:
• Canary and A/B testing
• User selection
• Destination selection
• Weight based
_ Tag traffic (L7):
• Useful for opentracing
_ Mirroring _ Extend to external service
44. Traffic Management
Loadbalacing
_ Support envoy loadbalancing algorithms:
• Round Robin
• Weighted least request
• Ring hash
• Maglev
• Random
• +Zone aware load balancing (envoy feature to be activated)
• % to be routed to same zone (default 100%)
• Min cluster size (default 6)
45. Traffic Management
Handling failures
_ Timeouts
• Server side (by config)
• Client side (by http header)
_ Bounded retries with timeout budgets and variable jitter between retries
_ Limits on number of concurrent connections and requests to upstream services
_ Active (periodic) health checks on each member of the load balancing pool
_ Fine-grained circuit breakers (passive health checks) – applied per instance in the load
balancing pool
46. Traffic Management
Handling failures
_ Timeouts
• Server side (by config)
• Client side (by http header)
_ Bounded retries with timeout budgets and variable jitter between retries
_ Limits on number of concurrent connections and requests to upstream services
_ health checks:
• Active: on each member of the load balancing pool
• Passive: Fine-grained circuit breakers – applied per instance in the load balancing pool
+ Fault injection