SlideShare a Scribd company logo
Reliable application roll out and
operations with Istio
Lin Sun, IBM @linsun_unc
Mandar Jog, Google @mandarjog
Common DevOps Challenge 1
• How do I roll out a newer version of my
microservice without down time?
• How do I ensure traffic continue goes
to the current version before the newer
version is tested and ready?
Common DevOps Challenge 2
• How do I do A/B testing?
• Release a new version to a
subset of users in a precise way
• I have launched B in the dark,
but how can I keep B to myself
or a small testing group?
Common DevOps Challenge 3
• How do I do canary testing?
• I want to leverage crowdsourced
testing. How do I test the new
version to a subset of users?
• How do I proceed to a full rollout
after satisfactory testing of the new
version?
Other Common DevOps Challenges
• Things don’t always go correctly in production…
How do I inject fault to my microservices to
prepare myself?
• Our team knows different languages and our
services are written in different languages.
• My services can only handle certain rate, how
can I limit rate for some of my services?
• I need to view what is going on with each of my
services when crisis arises.
Introduce Istio
http://istio.io
Intelligent Routing and Load Balancing
http://istio.io
Resilience Across Languages and Platforms
http://istio.io
http://istio.io
Secure Access with Fleet Wide Policy Enforcement

http://istio.io
In-Depth Telemetry and Reporting
Components of Istio
• Envoy proxy, to mediate all inbound and outbound traffic 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 traffic split, fault injection, and rich metrics.

• Pilot: Programming envoys and responsible for service discovery, registration and load
balancing

• Istio-Security provides strong service-to-service and end-user authentication using mutual
TLS, with built-in identity and credential management

• 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
Putting it all together
Traffic Control
// A simple traffic control rule
destination:
name: serviceB.example.cluster.local
match:

  source: serviceA.example.cluster.local

route:

- labels:

    version: v1.5
    env: us-prod
  weight: 100
Challenge 1: How can I roll out new version without
down time or changing code?
Traffic Steering
// Content-based traffic steering rule
destination:
serviceB.example.cluster.local

match:

  httpHeaders:

    user-agent:

      regex: ^(.*?;)?(iPhone)(;.*)?$

precedence: 2

route:

- labels:

    version: v2
Challenge 2: How do I do A/B testing?
Traffic Splitting
// A simple traffic splitting rule
destination:
serviceB.example.cluster.local
match:

  source:
serviceA.example.cluster.local

route:

- labels:

    version: v1.5
    env: us-prod
  weight: 90
- labels:

    version: v2.0-alpha
    env: us-staging
  weight: 10
Challenge 3: How do I do canary testing?
Resiliency
// Circuit breakers
destination: serviceB.example.cluster.local

policy:

- labels:

    version: v1

  circuitBreaker:

    simpleCb:

      maxConnections: 100

      httpMaxRequests: 1000

      httpMaxRequestsPerConnection: 10

      httpConsecutiveErrors: 7

      sleepWindow: 15m

      httpDetectionInterval: 5m
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
Resiliency Testing
Systematic fault injection to identify weaknesses in failure recovery
policies
❖ HTTP/gRPC error codes 
❖ Delay injection
Rate Limiting
Istio protects your application from rogue
actors by imposing ratelimits Rate limit
❖ Configurable limits with overrides
❖ Multiple rate limiting backends
❖ Conditional rate limiting
Quotas:
- name: requestcount.quota.istio-system
maxAmount: 5000
validDuration: 1s
overrides:
- dimensions:
destination: ratings
source: reviews
sourceVersion: v3
maxAmount: 1
validDuration: 1s
- dimensions:
destination: ratings
maxAmount: 100
validDuration: 1s
Telemetry
Monitoring & tracing should not be an
afterthought in the infrastructure
Goals
● Metrics without instrumenting apps
● Consistent metrics across fleet
● Trace flow of requests across services
● Portable across metric backend
providers
Proposed Istio Deployment Controller
Istio Analytics
Demo
+

More Related Content

PPTX
Connecting All Abstractions with Istio
PPTX
istio: service mesh for all
PDF
The elegant way of implementing microservices with istio
PPTX
An Open-Source Platform to Connect, Manage, and Secure Microservices
PDF
Stop reinventing the wheel with Istio by Mete Atamel (Google)
PDF
Istio Service Mesh
PDF
NYC Kubernetes Meetup: Ambassador and Istio - Flynn, Datawire
PDF
Microservices with Spring
Connecting All Abstractions with Istio
istio: service mesh for all
The elegant way of implementing microservices with istio
An Open-Source Platform to Connect, Manage, and Secure Microservices
Stop reinventing the wheel with Istio by Mete Atamel (Google)
Istio Service Mesh
NYC Kubernetes Meetup: Ambassador and Istio - Flynn, Datawire
Microservices with Spring

What's hot (20)

PDF
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...
PDF
Service mesh with istio
PPTX
linkerd: The Cloud Native Service Mesh
PPTX
Tech Talks Microservices
ODP
Istio
PPTX
Navigating the service mesh landscape with Istio, Consul Connect, and Linkerd
PDF
Managing Microservices traffic using Istio
PDF
Ambassador Kubernetes-Native API Gateway
PDF
Managing microservices with Istio Service Mesh
PDF
Istio : Service Mesh
PPTX
Using an API Gateway for Microservices
PPTX
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud - An...
PDF
Managing Microservices With The Istio Service Mesh on Kubernetes
PDF
Microservices with Spring Cloud and Netflix OSS
PPTX
Microservices on kubernetes
PDF
WTF Do We Need a Service Mesh?
PDF
Asynchronous Microservices in nodejs
PDF
Securing Microservices with Istio
PPTX
Service Discovery with Consul
PDF
Istio on Kubernetes
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...
Service mesh with istio
linkerd: The Cloud Native Service Mesh
Tech Talks Microservices
Istio
Navigating the service mesh landscape with Istio, Consul Connect, and Linkerd
Managing Microservices traffic using Istio
Ambassador Kubernetes-Native API Gateway
Managing microservices with Istio Service Mesh
Istio : Service Mesh
Using an API Gateway for Microservices
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud - An...
Managing Microservices With The Istio Service Mesh on Kubernetes
Microservices with Spring Cloud and Netflix OSS
Microservices on kubernetes
WTF Do We Need a Service Mesh?
Asynchronous Microservices in nodejs
Securing Microservices with Istio
Service Discovery with Consul
Istio on Kubernetes
Ad

Similar to Application Rollout - Istio (20)

PDF
21st Docker Switzerland Meetup - ISTIO
PDF
Istio Triangle Kubernetes Meetup Aug 2019
PDF
Service Mesh Talk for CTO Forum
PPTX
Service Mesh CTO Forum (Draft 3)
PPT
Using Service Discovery and Service Proxy
 
PDF
Microservice Powered Orchestration
PPTX
Do I Need A Service Mesh.pptx
PPTX
Debugging Microservices - QCON 2017
PPTX
Do You Need A Service Mesh?
PDF
Continuous Integration and Continuous Delivery to Facilitate Web Service Testing
DOC
Ragha Deepika_Exp_4+
PDF
Blue-green deploys with Pulsar & Envoy in an event-driven microservice ecosys...
PDF
Agile integration: Decomposing the monolith
PDF
RCS Service Monitoring - 1-to-1 Chat
PDF
Testing Microservices
PDF
Hello istio
PDF
Experitest & Cigniti Co-Webinar -
PDF
Experitest & Wipro Co-Webinar
PDF
Testing in Production (TiP)
PDF
Open Source Networking Days- Service Mesh
21st Docker Switzerland Meetup - ISTIO
Istio Triangle Kubernetes Meetup Aug 2019
Service Mesh Talk for CTO Forum
Service Mesh CTO Forum (Draft 3)
Using Service Discovery and Service Proxy
 
Microservice Powered Orchestration
Do I Need A Service Mesh.pptx
Debugging Microservices - QCON 2017
Do You Need A Service Mesh?
Continuous Integration and Continuous Delivery to Facilitate Web Service Testing
Ragha Deepika_Exp_4+
Blue-green deploys with Pulsar & Envoy in an event-driven microservice ecosys...
Agile integration: Decomposing the monolith
RCS Service Monitoring - 1-to-1 Chat
Testing Microservices
Hello istio
Experitest & Cigniti Co-Webinar -
Experitest & Wipro Co-Webinar
Testing in Production (TiP)
Open Source Networking Days- Service Mesh
Ad

Recently uploaded (20)

PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PDF
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
PPTX
OOP with Java - Java Introduction (Basics)
PDF
Operating System & Kernel Study Guide-1 - converted.pdf
PDF
PPT on Performance Review to get promotions
PPTX
Internet of Things (IOT) - A guide to understanding
PPTX
bas. eng. economics group 4 presentation 1.pptx
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PPTX
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
PPT
CRASH COURSE IN ALTERNATIVE PLUMBING CLASS
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PPTX
Lecture Notes Electrical Wiring System Components
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PDF
TFEC-4-2020-Design-Guide-for-Timber-Roof-Trusses.pdf
PPT
Project quality management in manufacturing
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
OOP with Java - Java Introduction (Basics)
Operating System & Kernel Study Guide-1 - converted.pdf
PPT on Performance Review to get promotions
Internet of Things (IOT) - A guide to understanding
bas. eng. economics group 4 presentation 1.pptx
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
CRASH COURSE IN ALTERNATIVE PLUMBING CLASS
Foundation to blockchain - A guide to Blockchain Tech
Lecture Notes Electrical Wiring System Components
CYBER-CRIMES AND SECURITY A guide to understanding
Model Code of Practice - Construction Work - 21102022 .pdf
Embodied AI: Ushering in the Next Era of Intelligent Systems
TFEC-4-2020-Design-Guide-for-Timber-Roof-Trusses.pdf
Project quality management in manufacturing

Application Rollout - Istio

  • 1. Reliable application roll out and operations with Istio Lin Sun, IBM @linsun_unc Mandar Jog, Google @mandarjog
  • 2. Common DevOps Challenge 1 • How do I roll out a newer version of my microservice without down time? • How do I ensure traffic continue goes to the current version before the newer version is tested and ready?
  • 3. Common DevOps Challenge 2 • How do I do A/B testing? • Release a new version to a subset of users in a precise way • I have launched B in the dark, but how can I keep B to myself or a small testing group?
  • 4. Common DevOps Challenge 3 • How do I do canary testing? • I want to leverage crowdsourced testing. How do I test the new version to a subset of users? • How do I proceed to a full rollout after satisfactory testing of the new version?
  • 5. Other Common DevOps Challenges • Things don’t always go correctly in production… How do I inject fault to my microservices to prepare myself? • Our team knows different languages and our services are written in different languages. • My services can only handle certain rate, how can I limit rate for some of my services? • I need to view what is going on with each of my services when crisis arises.
  • 7. Intelligent Routing and Load Balancing http://istio.io
  • 8. Resilience Across Languages and Platforms http://istio.io
  • 9. http://istio.io Secure Access with Fleet Wide Policy Enforcement

  • 11. Components of Istio • Envoy proxy, to mediate all inbound and outbound traffic 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 traffic split, fault injection, and rich metrics.
 • Pilot: Programming envoys and responsible for service discovery, registration and load balancing
 • Istio-Security provides strong service-to-service and end-user authentication using mutual TLS, with built-in identity and credential management
 • 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.
  • 12. Our sidecar of choice
  • 13. Putting it all together
  • 14. Traffic Control // A simple traffic control rule destination: name: serviceB.example.cluster.local match:
   source: serviceA.example.cluster.local
 route:
 - labels:
     version: v1.5     env: us-prod   weight: 100 Challenge 1: How can I roll out new version without down time or changing code?
  • 15. Traffic Steering // Content-based traffic steering rule destination: serviceB.example.cluster.local
 match:
   httpHeaders:
     user-agent:
       regex: ^(.*?;)?(iPhone)(;.*)?$
 precedence: 2
 route:
 - labels:
     version: v2 Challenge 2: How do I do A/B testing?
  • 16. Traffic Splitting // A simple traffic splitting rule destination: serviceB.example.cluster.local match:
   source: serviceA.example.cluster.local
 route:
 - labels:
     version: v1.5     env: us-prod   weight: 90 - labels:
     version: v2.0-alpha     env: us-staging   weight: 10 Challenge 3: How do I do canary testing?
  • 17. Resiliency // Circuit breakers destination: serviceB.example.cluster.local
 policy:
 - labels:
     version: v1
   circuitBreaker:
     simpleCb:
       maxConnections: 100
       httpMaxRequests: 1000
       httpMaxRequestsPerConnection: 10
       httpConsecutiveErrors: 7
       sleepWindow: 15m
       httpDetectionInterval: 5m 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
  • 18. Resiliency Testing Systematic fault injection to identify weaknesses in failure recovery policies ❖ HTTP/gRPC error codes  ❖ Delay injection
  • 19. Rate Limiting Istio protects your application from rogue actors by imposing ratelimits Rate limit ❖ Configurable limits with overrides ❖ Multiple rate limiting backends ❖ Conditional rate limiting Quotas: - name: requestcount.quota.istio-system maxAmount: 5000 validDuration: 1s overrides: - dimensions: destination: ratings source: reviews sourceVersion: v3 maxAmount: 1 validDuration: 1s - dimensions: destination: ratings maxAmount: 100 validDuration: 1s
  • 20. Telemetry Monitoring & tracing should not be an afterthought in the infrastructure Goals ● Metrics without instrumenting apps ● Consistent metrics across fleet ● Trace flow of requests across services ● Portable across metric backend providers