SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
Securing Microservices with Istio
Dan Berg
@dancberg
Lin Sun
@linsun_unc
Problem Statement
IT’s shift to a modern distributed architecture
has left enterprises unable to monitor, manage
or secure their services in a consistent way.
http://istio.io
Introducing Istio
Intelligent Routing and Load Balancing
Control traffic between services with dynamic
route configuration, conduct A/B tests, release
canaries, and gradually upgrade versions using
red/black deployments.
Resilience Across Languages and Platforms
Increase reliability by shielding
applications from flaky networks and
cascading failures in adverse conditions.
Secure Access with Fleet Wide Policy Enforcement
Apply organizational policy to
the interaction between services,
ensure access policies are
enforced and enable secure
communication between
services.
In-Depth Telemetry and Reporting
Understand the dependencies
between services, the nature and flow
of traffic between them and quickly
identify issues with distributed
tracing.
Components of Istio
1. Envoy proxy, to mediate all inbound and outbound trafïŹc for all services in the service
mesh. Leverages Envoy features such as dynamic service discovery, load balancing, TLS
termination, HTTP/2 & gRPC proxying, circuit breakers, health checks, staged rollouts
with %-based trafïŹc split, fault injection, and rich metrics.‹
2. Pilot: Programming envoys and responsible for service discovery, registration and load
balancing‹
3. Istio-Auth provides strong service-to-service and end-user authentication using mutual
TLS, with built-in identity and credential management‹
4. Mixer is responsible for enforcing access control and usage policies across the service
mesh and collecting telemetry data from the Envoy proxy and other services.‹
Our sidecar of choice - Envoy
A C++ based L4/L7 proxy
Low memory footprint
Battle-tested @ Lyft
100+ services
10,000+ VMs
2M req/s
Plus an awesome team willing to work with the
community!
Goodies:
❖ HTTP/2 & gRPC
❖ Zone-aware load balancing w/ failover
❖ Health checks, circuit breakers, timeouts, retry
budgets
❖ No hot reloads - API driven config updates
Istio’s contributions:
❖ Transparent proxying w/ SO_ORIGINAL_DST
❖ Traffic routing and splitting
❖ Request tracing using Zipkin
❖ Fault injection
Putting it all together
svcA
Envoy
Pod
Service A
svcB
Envoy
Service B
Pilot
Control Plane API
Mixer
Discovery & Config
data to Envoys
Policy checks,
telemetry
Control flow during
request processing Istio-Auth
TLS certs
to Envoy
Traffic is transparently
intercepted and proxied. App is
unaware of Envoy’s presence
HTTP/1.1, HTTP/2,
gRPC, TCP with or
without TLS
Envoy
HTTP/1.1, HTTP/2,
gRPC, TCP with or
without TLS
Internet
Ingress gateway
Istio - Security at Scale
spiffe.io
Resiliency
Istio adds fault tolerance to your application
without any changes to code
Resilience features
❖ Timeouts
❖ Retries with timeout budget
❖ Circuit breakers
❖ Health checks
❖ AZ-aware load balancing w/
automatic failover
❖ Control connection pool size and
request load
// Circuit breakers
destination: serviceB.example.cluster.local‹
policy:‹
- tags:‹
version: v1‹
circuitBreaker:‹
simpleCb:‹
maxConnections: 100‹
httpMaxRequests: 1000‹
httpMaxRequestsPerConnection: 10‹
httpConsecutiveErrors: 7‹
sleepWindow: 15m‹
httpDetectionInterval: 5m‹
Resiliency Testing
Systematic fault injection to identify weaknesses in failure recovery policies
HTTP/gRPC error codes
Delay injection
svcA
Envoy
Service A
svcB
Envoy
Service B
svcC
Envoy
Service C
Timeout: 100ms
Retries: 3
300ms
Timeout: 200ms
Retries: 2
400ms
Traffic Splitting
svcA
Envoy
Pod
Service A
svcB
Envoy
ServiceB
http://serviceB.example
Pod Labels:
version: v1.5
env: us-prod
svcB
Envoy
Pod Labels:
version: v2.0-alpha,
env:us-staging
serviceB.example.cluster.local
Traffic routing
rules
99%
1%
Rules API
Istio-Manager
Traffic control is decoupled from infrastructure scaling
// A simple traffic splitting rule
destination: serviceB.example.cluster.local
match:‹
source: serviceA.example.cluster.local‹
route:‹
- tags:‹
version: v1.5
env: us-prod
weight: 99
- tags:‹
version: v2.0-alpha
env: us-staging
weight: 1
svcA
Service A
svcB
Service B
version: v1
Pod 3
Pod 2
Pod 1
Content-based traffic steering
svcA
Service A
svcB
Service B
version: v1
Pod 3
Pod 2
Pod 1
User-agent: *Android*
svcB’
version: canary
Pod 4
User-agent: *iPhone*
Traffic Steering
// Content-based traffic steering rule
destination: serviceB.example.cluster.local‹
match:‹
httpHeaders:‹
user-agent:‹
regex: ^(.*?;)?(iPhone)(;.*)?$‹
precedence: 2‹
route:‹
- tags:‹
version: canary
Demo Time
Thank You!
RedHat
Pivotal
WeaveWorks
Tigera
Datawire
Scytale (SPIFFE)
MicroSoft
Uber (Jaeger)

 and you!
Community Partners

Weitere Àhnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Application Rollout - Istio
Application Rollout - Istio Application Rollout - Istio
Application Rollout - Istio
 
Stop reinventing the wheel with Istio by Mete Atamel (Google)
Stop reinventing the wheel with Istio by Mete Atamel (Google)Stop reinventing the wheel with Istio by Mete Atamel (Google)
Stop reinventing the wheel with Istio by Mete Atamel (Google)
 
Istio a service mesh
Istio   a service meshIstio   a service mesh
Istio a service mesh
 
The Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYC
The Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYCThe Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYC
The Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYC
 
The elegant way of implementing microservices with istio
The elegant way of implementing microservices with istioThe elegant way of implementing microservices with istio
The elegant way of implementing microservices with istio
 
Istio : Service Mesh
Istio : Service MeshIstio : Service Mesh
Istio : Service Mesh
 
Microservices With Istio Service Mesh
Microservices With Istio Service MeshMicroservices With Istio Service Mesh
Microservices With Istio Service Mesh
 
Istio Service Mesh
Istio Service MeshIstio Service Mesh
Istio Service Mesh
 
A sail in the cloud
A sail in the cloudA sail in the cloud
A sail in the cloud
 
Service mesh with istio
Service mesh with istioService mesh with istio
Service mesh with istio
 
Using Istio to Secure & Monitor Your Services
Using Istio to Secure & Monitor Your ServicesUsing Istio to Secure & Monitor Your Services
Using Istio to Secure & Monitor Your Services
 
Kong API
Kong APIKong API
Kong API
 
Introduction to Istio Service Mesh
Introduction to Istio Service MeshIntroduction to Istio Service Mesh
Introduction to Istio Service Mesh
 
Linkerd – Service mesh with service Discovery backend
Linkerd – Service mesh with service Discovery backendLinkerd – Service mesh with service Discovery backend
Linkerd – Service mesh with service Discovery backend
 
The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...
The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...
The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...
 
Microservice creation using spring cloud, zipkin, ribbon, zull, eureka
Microservice creation using spring cloud, zipkin, ribbon, zull, eurekaMicroservice creation using spring cloud, zipkin, ribbon, zull, eureka
Microservice creation using spring cloud, zipkin, ribbon, zull, eureka
 
Managing Microservices With The Istio Service Mesh on Kubernetes
Managing Microservices With The Istio Service Mesh on KubernetesManaging Microservices With The Istio Service Mesh on Kubernetes
Managing Microservices With The Istio Service Mesh on Kubernetes
 
Manage your APIs and Microservices with an API Gateway
Manage your APIs and Microservices with an API GatewayManage your APIs and Microservices with an API Gateway
Manage your APIs and Microservices with an API Gateway
 
istio: service mesh for all
istio: service mesh for allistio: service mesh for all
istio: service mesh for all
 
Kong
KongKong
Kong
 

Ähnlich wie Securing Microservices with Istio

Jvvnl 071108
Jvvnl 071108Jvvnl 071108
Jvvnl 071108
amanmadhok
 
Transparent proxy - SIP - 2014 - NCC LAB
Transparent proxy - SIP - 2014 - NCC LABTransparent proxy - SIP - 2014 - NCC LAB
Transparent proxy - SIP - 2014 - NCC LAB
Benith T
 
Laurent Curnier – Monaco DataPlatform - LaurentCURNIER_.pptx
Laurent Curnier – Monaco DataPlatform - LaurentCURNIER_.pptxLaurent Curnier – Monaco DataPlatform - LaurentCURNIER_.pptx
Laurent Curnier – Monaco DataPlatform - LaurentCURNIER_.pptx
FIWARE
 
Network Security
Network SecurityNetwork Security
Network Security
Santosh K L
 

Ähnlich wie Securing Microservices with Istio (20)

Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019
 
Introduction to Istio for APIs and Microservices meetup
Introduction to Istio for APIs and Microservices meetupIntroduction to Istio for APIs and Microservices meetup
Introduction to Istio for APIs and Microservices meetup
 
Jvvnl 071108
Jvvnl 071108Jvvnl 071108
Jvvnl 071108
 
Security & Resiliency of Cloud Native Apps with Weave GitOps & Tetrate Servic...
Security & Resiliency of Cloud Native Apps with Weave GitOps & Tetrate Servic...Security & Resiliency of Cloud Native Apps with Weave GitOps & Tetrate Servic...
Security & Resiliency of Cloud Native Apps with Weave GitOps & Tetrate Servic...
 
Transparent proxy - SIP - 2014 - NCC LAB
Transparent proxy - SIP - 2014 - NCC LABTransparent proxy - SIP - 2014 - NCC LAB
Transparent proxy - SIP - 2014 - NCC LAB
 
Laurent Curnier – Monaco DataPlatform - LaurentCURNIER_.pptx
Laurent Curnier – Monaco DataPlatform - LaurentCURNIER_.pptxLaurent Curnier – Monaco DataPlatform - LaurentCURNIER_.pptx
Laurent Curnier – Monaco DataPlatform - LaurentCURNIER_.pptx
 
NUVX Technologies general solutions
NUVX Technologies general solutionsNUVX Technologies general solutions
NUVX Technologies general solutions
 
IRJET - Implementation of VPN, AWS Cloud Enabled Real Time Water Pollution Sy...
IRJET - Implementation of VPN, AWS Cloud Enabled Real Time Water Pollution Sy...IRJET - Implementation of VPN, AWS Cloud Enabled Real Time Water Pollution Sy...
IRJET - Implementation of VPN, AWS Cloud Enabled Real Time Water Pollution Sy...
 
Sangfor wan optimization data sheet 2015
Sangfor wan optimization data sheet 2015Sangfor wan optimization data sheet 2015
Sangfor wan optimization data sheet 2015
 
EastNets Resilient SWIFT Solutions
EastNets Resilient SWIFT SolutionsEastNets Resilient SWIFT Solutions
EastNets Resilient SWIFT Solutions
 
21st Docker Switzerland Meetup - ISTIO
21st Docker Switzerland Meetup - ISTIO21st Docker Switzerland Meetup - ISTIO
21st Docker Switzerland Meetup - ISTIO
 
How to Make Istio Work with Your App
How to Make Istio Work with Your AppHow to Make Istio Work with Your App
How to Make Istio Work with Your App
 
How to Make Istio Work with Your App
How to Make Istio Work with Your AppHow to Make Istio Work with Your App
How to Make Istio Work with Your App
 
What’s New: Splunk App for Stream and Splunk MINT
What’s New: Splunk App for Stream and Splunk MINTWhat’s New: Splunk App for Stream and Splunk MINT
What’s New: Splunk App for Stream and Splunk MINT
 
Ubiquity iot arpan pal
Ubiquity iot arpan palUbiquity iot arpan pal
Ubiquity iot arpan pal
 
Network Security
Network SecurityNetwork Security
Network Security
 
Istio
IstioIstio
Istio
 
Tracing of voip traffic in the rapid flow internet backbone
Tracing of voip traffic in the rapid flow internet backboneTracing of voip traffic in the rapid flow internet backbone
Tracing of voip traffic in the rapid flow internet backbone
 
Agile integration: Decomposing the monolith
Agile integration: Decomposing the monolith Agile integration: Decomposing the monolith
Agile integration: Decomposing the monolith
 
Splunk MINT for Mobile Intelligence and Splunk App for Stream for Enhanced Op...
Splunk MINT for Mobile Intelligence and Splunk App for Stream for Enhanced Op...Splunk MINT for Mobile Intelligence and Splunk App for Stream for Enhanced Op...
Splunk MINT for Mobile Intelligence and Splunk App for Stream for Enhanced Op...
 

Mehr von Daniel Berg

InterConnect 2015: 3045 Hybrid Cloud - How to get a return from an investment...
InterConnect 2015: 3045 Hybrid Cloud - How to get a return from an investment...InterConnect 2015: 3045 Hybrid Cloud - How to get a return from an investment...
InterConnect 2015: 3045 Hybrid Cloud - How to get a return from an investment...
Daniel Berg
 
Dops 1033 dev-ops_review_final
Dops 1033 dev-ops_review_finalDops 1033 dev-ops_review_final
Dops 1033 dev-ops_review_final
Daniel Berg
 

Mehr von Daniel Berg (11)

Cloud-Native Applications with Microservices and Containers
Cloud-Native Applications with Microservices and ContainersCloud-Native Applications with Microservices and Containers
Cloud-Native Applications with Microservices and Containers
 
Developing Hybrid Cloud Applications
Developing Hybrid Cloud ApplicationsDeveloping Hybrid Cloud Applications
Developing Hybrid Cloud Applications
 
InterConnect 2015: 3045 Hybrid Cloud - How to get a return from an investment...
InterConnect 2015: 3045 Hybrid Cloud - How to get a return from an investment...InterConnect 2015: 3045 Hybrid Cloud - How to get a return from an investment...
InterConnect 2015: 3045 Hybrid Cloud - How to get a return from an investment...
 
InterConnect 2015: 3540 Release and Deploy Headliner
InterConnect 2015: 3540 Release and Deploy HeadlinerInterConnect 2015: 3540 Release and Deploy Headliner
InterConnect 2015: 3540 Release and Deploy Headliner
 
InterConnect 2015: 3962 Docking DevOps
InterConnect 2015: 3962 Docking DevOpsInterConnect 2015: 3962 Docking DevOps
InterConnect 2015: 3962 Docking DevOps
 
Innovate 2014 - DevOps Technical Strategy
Innovate 2014 - DevOps Technical StrategyInnovate 2014 - DevOps Technical Strategy
Innovate 2014 - DevOps Technical Strategy
 
Innovate 2014 DevOps: Release and Deploy Keynote
Innovate 2014 DevOps: Release and Deploy KeynoteInnovate 2014 DevOps: Release and Deploy Keynote
Innovate 2014 DevOps: Release and Deploy Keynote
 
Cloud Foundry Summit 2014 - IBM Bluemix DevOps Services lightning talk
Cloud Foundry Summit 2014 - IBM Bluemix DevOps Services lightning talkCloud Foundry Summit 2014 - IBM Bluemix DevOps Services lightning talk
Cloud Foundry Summit 2014 - IBM Bluemix DevOps Services lightning talk
 
[IBM Pulse 2014] #1579 DevOps Technical Strategy and Roadmap
[IBM Pulse 2014] #1579 DevOps Technical Strategy and Roadmap[IBM Pulse 2014] #1579 DevOps Technical Strategy and Roadmap
[IBM Pulse 2014] #1579 DevOps Technical Strategy and Roadmap
 
Dops 1033 dev-ops_review_final
Dops 1033 dev-ops_review_finalDops 1033 dev-ops_review_final
Dops 1033 dev-ops_review_final
 
Pulse 2013: DevOps Review and Roadmap
Pulse 2013: DevOps Review and RoadmapPulse 2013: DevOps Review and Roadmap
Pulse 2013: DevOps Review and Roadmap
 

KĂŒrzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

KĂŒrzlich hochgeladen (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

Securing Microservices with Istio

  • 1. Securing Microservices with Istio Dan Berg @dancberg Lin Sun @linsun_unc
  • 2. Problem Statement IT’s shift to a modern distributed architecture has left enterprises unable to monitor, manage or secure their services in a consistent way.
  • 4. Intelligent Routing and Load Balancing Control traffic between services with dynamic route configuration, conduct A/B tests, release canaries, and gradually upgrade versions using red/black deployments.
  • 5. Resilience Across Languages and Platforms Increase reliability by shielding applications from flaky networks and cascading failures in adverse conditions.
  • 6. Secure Access with Fleet Wide Policy Enforcement Apply organizational policy to the interaction between services, ensure access policies are enforced and enable secure communication between services.
  • 7. In-Depth Telemetry and Reporting Understand the dependencies between services, the nature and flow of traffic between them and quickly identify issues with distributed tracing.
  • 8. Components of Istio 1. Envoy proxy, to mediate all inbound and outbound trafïŹc for all services in the service mesh. Leverages Envoy features such as dynamic service discovery, load balancing, TLS termination, HTTP/2 & gRPC proxying, circuit breakers, health checks, staged rollouts with %-based trafïŹc split, fault injection, and rich metrics.‹ 2. Pilot: Programming envoys and responsible for service discovery, registration and load balancing‹ 3. Istio-Auth provides strong service-to-service and end-user authentication using mutual TLS, with built-in identity and credential management‹ 4. Mixer is responsible for enforcing access control and usage policies across the service mesh and collecting telemetry data from the Envoy proxy and other services.‹
  • 9. Our sidecar of choice - Envoy A C++ based L4/L7 proxy Low memory footprint Battle-tested @ Lyft 100+ services 10,000+ VMs 2M req/s Plus an awesome team willing to work with the community! Goodies: ❖ HTTP/2 & gRPC ❖ Zone-aware load balancing w/ failover ❖ Health checks, circuit breakers, timeouts, retry budgets ❖ No hot reloads - API driven config updates Istio’s contributions: ❖ Transparent proxying w/ SO_ORIGINAL_DST ❖ Traffic routing and splitting ❖ Request tracing using Zipkin ❖ Fault injection
  • 10. Putting it all together svcA Envoy Pod Service A svcB Envoy Service B Pilot Control Plane API Mixer Discovery & Config data to Envoys Policy checks, telemetry Control flow during request processing Istio-Auth TLS certs to Envoy Traffic is transparently intercepted and proxied. App is unaware of Envoy’s presence HTTP/1.1, HTTP/2, gRPC, TCP with or without TLS Envoy HTTP/1.1, HTTP/2, gRPC, TCP with or without TLS Internet Ingress gateway
  • 11. Istio - Security at Scale spiffe.io
  • 12. Resiliency Istio adds fault tolerance to your application without any changes to code Resilience features ❖ Timeouts ❖ Retries with timeout budget ❖ Circuit breakers ❖ Health checks ❖ AZ-aware load balancing w/ automatic failover ❖ Control connection pool size and request load // Circuit breakers destination: serviceB.example.cluster.local‹ policy:‹ - tags:‹ version: v1‹ circuitBreaker:‹ simpleCb:‹ maxConnections: 100‹ httpMaxRequests: 1000‹ httpMaxRequestsPerConnection: 10‹ httpConsecutiveErrors: 7‹ sleepWindow: 15m‹ httpDetectionInterval: 5m‹
  • 13. Resiliency Testing Systematic fault injection to identify weaknesses in failure recovery policies HTTP/gRPC error codes Delay injection svcA Envoy Service A svcB Envoy Service B svcC Envoy Service C Timeout: 100ms Retries: 3 300ms Timeout: 200ms Retries: 2 400ms
  • 14. Traffic Splitting svcA Envoy Pod Service A svcB Envoy ServiceB http://serviceB.example Pod Labels: version: v1.5 env: us-prod svcB Envoy Pod Labels: version: v2.0-alpha, env:us-staging serviceB.example.cluster.local Traffic routing rules 99% 1% Rules API Istio-Manager Traffic control is decoupled from infrastructure scaling // A simple traffic splitting rule destination: serviceB.example.cluster.local match:‹ source: serviceA.example.cluster.local‹ route:‹ - tags:‹ version: v1.5 env: us-prod weight: 99 - tags:‹ version: v2.0-alpha env: us-staging weight: 1
  • 15. svcA Service A svcB Service B version: v1 Pod 3 Pod 2 Pod 1 Content-based traffic steering svcA Service A svcB Service B version: v1 Pod 3 Pod 2 Pod 1 User-agent: *Android* svcB’ version: canary Pod 4 User-agent: *iPhone* Traffic Steering // Content-based traffic steering rule destination: serviceB.example.cluster.local‹ match:‹ httpHeaders:‹ user-agent:‹ regex: ^(.*?;)?(iPhone)(;.*)?$‹ precedence: 2‹ route:‹ - tags:‹ version: canary