Istio 101
Mesh for Microservices
Prerequisite
Monolith Applications
Great to begin with
Customer
Preferences
Recommendation
Customer Service
Hard to upgrade
Customer
Preferences
Recommendation
Customer Service�V1
Decrease velocity
Customer
Preferences
Recommendation
Customer Service
V1
Customer
Preferences
Recommendation
Customer Service
V2
Every 3 weeks or 1 month
Stack limitations
Bookinfo application
Customer
Reviews
Ratings
Customer
Preferences
Recommendation
Customer Service
How to solve
Monolith Application
problems?
Small Applications (AKA microservices)
Customer Service
Customer
Preferences
Recommendation
Process
Easy Upgrades
Customer Service
Customer v1
Preferences v3
Recommendation v2
Better velocity & team agility
Customer Service
Customer
Preferences
Recommendation
Polyglot stack
Customer Service
Customer
Preferences
Recommendation
Small Applications (AKA microservices)
Service Discovery (connect)
Customer
Preferences
Recommendation
http:// X
Service Discovery (connect)
Customer
Preferences
Recommendation
http:// X
Recommendation
http:// Y
Service Discovery (connect)
Load balancing
Customer
Customer
Load balancing
Customer
Customer
Preferences
Preferences
Monitoring & Observability
Bookinfo�App
Bookinfo�App
Customer Service
3 X
Customer
Preferences
Recommendation
Customer
Preferences
Recommendation
Customer
Preferences
Recommendation
10 X
Network resiliency and latencies
Customer
Preferences
Recommendation
Security
Bookinfo�App
Bookinfo�App
Customer Service
Customer
Preferences
Recommendation
Service Challenges
Putting it all together
Solution?
Kubernetes
Who solves other Challenges?
Canary deployment, ACL, Quotas
Monitoring and Observability
Network Resiliency
Security
DIY Way
POD
Customer
Load balancer
Service discovery
TLS
Circuit Breaker
Metrics, Traces
Better way!
POD
Customer
Application�Container
Sidecar Proxy
Load balancing
Service discovery
TLS
Circuit Breaker
Metrics, Traces
POD
Customer�
Sidecar Proxy
POD
Preference�
Sidecar Proxy
Need something more?
POD
Product Info�
Sidecar Proxy
POD
Reviews�
Sidecar Proxy
Control Interfaces for sidecar
Services discover information
Configure route rules, policies
Collect metrics data
Istio - Connect, manage, Secure
Show me some
Demo
Customer Service Application
Pod
Container
Customer
Proxy Sidecar
Pod
Container
Preferences
Proxy Sidecar
Pod
Pod
Container
Recommend
Proxy Sidecar
Dark Launch Deployment
Pod
Container
Customer
Proxy Sidecar
Pod
Container
Preference
Proxy Sidecar
100%
Pod
Container
Recommend�V1
Proxy Sidecar
Pod
Container
Recommend�V2
Proxy Sidecar
mirror
Pod
Container
Preferences
Proxy Sidecar
Canary Deployment
Pod
Container
Customer
Proxy Sidecar
Pod
Container
Preference
Proxy Sidecar
90%
Pod
Container
Recommend�V1
Proxy Sidecar
Pod
Container
Recommend�V2
Proxy Sidecar
10%
Pod
Container
Preferences
Proxy Sidecar
Canary Deployment
Pod
Container
Customer
Proxy Sidecar
Pod
Container
Preference
Proxy Sidecar
All user agent
Pod
Container
Recommend�V1
Proxy Sidecar
Pod
Container
Recommend�V2
Proxy Sidecar
iPhone user agent
Pod
Container
Preferences
Proxy Sidecar
Istio Components
Istio Architecture
Pod
Container
Runtime
Service B
Pod
Container
Runtime
Service C
Envoy Sidecar
HTTP1.1, HTTP2, gRPC, TCP w/TLS
HTTP1.1, HTTP2, gRPC, TCP w/TLS
HTTP1.1, HTTP2, gRPC, TCP w/TLS
Istio Pilot
Istio Mixer
Istio Auth (Citadel)
istioctl, API, config
Quota, Telemetry�Rate Limiting, ACL
CA, SPIFFE
Data Plane
Control Plane
Pod
Container
Customer
Envoy Sidecar
Runtime
Preferences
Recommend
Istio Pilot - Envoy
Pod
Container
Runtime
Customer
Pod
Container
Runtime
Service B
Pod
Container
Runtime
Service C
Istio Pilot
istioctl
Data Plane
Control Plane
K
8
s
.
.
.
.
Service Discovery Route Config �
Preferences
Recommend
Istio Mixer - Envoy
Pod
Container
Runtime
Customer
Pod
Container
Runtime
Service B
Pod
Container
Runtime
Service C
Istio Mixer
Data Plane
Control Plane
P
R
Telemetry�Traces�
Policy �Checks
.
.
.
.
Preferences
Recommend
Demo: bit.ly/msa-instructions
Slides: bit.ly/microservicesdeepdive
Video Training: bit.ly/microservicesvideo
More Istio Examples
We are open for questions
Savita Ashture
Sr. Software Engineer @ RedHat�Contributing to KNative project
Hrishikesh Shinde
Sr. Software Engineer @ RedHat�Contributing to TektonCD project