Just what is a Service Mesh?
And if I get one, will it make everything OK?
@EltonStoneman | elton@docker.com | @DockerDublin
• Understanding the service mesh
• Using Istio with Kubernetes
• Evaluating service meshery
WHAT IS A SERVICE MESH?
It's the communication
between software components,
made into its own thing
web
api
database
• Address
• Timeout
• Retry
• Encryption
• Address
• Timeout
• Retry
• Encryption
microservices-demo
web
api
database
service-mesh
• Address
• Timeout
• Retry
• Encryption
web
api
database
service-mesh
SERVICE MESH FEATURES
• Traffic management
• Discovery, load-balancing, failure handling
• Security
• Encryption, authentication, authorization
• Observability
• Visualization, tracing, monitoring, logging
INTRODUCING ISTIO
• Open source, platform-agnostic*
• 0.1 in 2017, 1.0 in 2018
• Other service meshes are
available (Consul & Linkerd)
INTRODUCING ISTIO
• Optimal with Kubernetes
• Uses Envoy proxy
• So… best on Linux for now
* https://istio.io/docs/concepts/what-is-istio/
* https://istio.io/docs/concepts/what-is-istio/
* https://istio.io/docs/concepts/what-is-istio/
* https://istio.io/docs/concepts/what-is-istio/
YOUR SERVICE MESH IS NOT FREE
• Istio: ~2M LOC
• Envoy: ~250K
• Kubernetes: ~3.1M
• Docker: ~950K
YOUR SERVICE MESH IS NOT FREE
Here at Shopify, we’re working
on deploying Istio as our service
mesh. We’re doing quite well,
but are hitting a wall: Cost.
https://is.gd/ZqwILb
istio/istio
istio/istio
istio/istio
USING ISTIO
• Deploying on Kubernetes
• Automatic service registration
• Running apps with Istio
> demo
productpage
reviews
Virtual Service
Destination
Subset
Pod
Container
productpage
reviews
Virtual Service
Pod
Container
- route:
- destination:
host: reviews
subset: v2
weight: 50
Destination
Subset
TRAFFIC MANAGEMENT
• Runtime management
• Healthchecks, load-balancing, retries
• Quality control
• Personalized routing, fault injection
• Deployment
• A/B testing, staged rollouts
> demo
productpage
reviews
Mutual TLS
Secure naming
Identity/Authn/Authz
Certificate mgmt
Issue/Store/Rotate
> demo
productpage
reviews
Visualization
Distributed Tracing
Monitoring
Logging
> demo
SERVICE MESH ALTERNATIVES
• Traffic management
• DNS, feature toggles, libraries
• Security
• Platform, OSS integration
• Observability
• Prometheus, Grafana, Jaeger…
DO I NEED A SERVICE MESH?
• Service sprawl
• Release bottlenecks
• Snowflake implementations
• Cloud-native app pilot
THINK ABOUT THE COST
• Lock-in: tech & architecture
• Learning curve
• Environment drift
• Anti-DevOps
NEXT STEPS
• Istio by Docker Captain, Lee Calcote | layer5.io
• Docker learning path on Pluralsight | is.gd/O0fYmU
• Today’s demos | bit.ly/2WDHe7C
• ShipItCon | Dublin, September 6th 2019
THANK YOU :)
@EltonStoneman | elton@docker.com | @DockerDublin

Docker Dublin: Just What is a Service Mesh, and if I get one will it make everything OK?