SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Gluing It All Together
Canary Releases on Kubernetes with Spinnaker,
Istio, and Prometheus
Tuesday September 15, 2020
Thursday March 18, 2021 (alternative date)
@ Red Cross Square in Downtown DC
DC Meetup Slack Channel
Join our meetup-dc channel on the
Kubernetes Slack
Click to add text
Click to add text
Learn more at kublr.com/how-it-works
Why Canary?
“Canary release is a technique to reduce the risk of
introducing a new software version in production by slowly
rolling out the change to a small subset of users before
rolling it out to the entire infrastructure and making it
available to everybody.”
https://martinfowler.com
@kublr, @vkoltovich
Canary in Kubernetes
Canary in Kubernetes
APP A
POD
ReplicaSet
DEPLOYMENT
Version: 1.0
Version: 1.0APP B
POD
POD
APP B
APP B
SERVICE
@kublr, @vkoltovich
Canary in Kubernetes
APP A
POD
ReplicaSet
DEPLOYMENT
Version: 1.0
Version: 1.0APP B
POD
POD
APP B
APP B
SERVICE
ReplicaSet
POD
APP B
Version: 2.0
Track: canary
DEPLOYMENT
Version: 2.0
@kublr, @vkoltovich
ReplicaSet
POD
APP B
Canary in Kubernetes
APP A
POD ReplicaSet
DEPLOYMENTVersion: 1.0
Version: 1.0
APP B
POD
POD
APP B
DEPLOYMENT
Version: 2.0
Version: 2.0
Track: canary
APP B
SERVICE
@kublr, @vkoltovich
Canary in Kubernetes
APP A
POD
ReplicaSet
DEPLOYMENT
Version: 2.0
Version: 2.0APP B
POD
POD
APP B
APP B
SERVICE
@kublr, @vkoltovich
Canary in Kubernetes
• Canary releases in Kubernetes are limited by k8s traffic
routing capabilities
• Traffic splitting is managed by manipulating a number of
pods in current and canary deployments
@kublr, @vkoltovich
Introducing Istio
Pilot
• Service discovery for Envoy and traffic routing
• Splitting: gradual (canary) rollout, A/B testing
• Fault injection
• Mirroring
• Failure recovery: circuit breakers, retries, timeouts
Mixer
• Per-request policies: access and usage control
Auth
• Request authentication and encryption
• Identity and credential management
Envoy
• Request routing and processing; attributes
Zipkin/Jaeger, Prometheus/Grafana
• Distributed request tracing
• Monitoring
@kublr, @vkoltovich
Canary with Istio
ReplicaSet
DEPLOYMENT
Version: 1.0
Version: 1.0
POD
POD
ReplicaSet
POD
Version: 2.0
Track: canary
DEPLOYMENT
Version: 2.0
POD
PILOT
Traffic rules
99%
1%
ENVOY
APP A
ENVOY
APP B
ENVOY
APP B
ENVOY
APP B
@kublr, @vkoltovich
Canary with Istio
ReplicaSet
DEPLOYMENT
Version: 1.0
Version: 1.0
POD
POD
ReplicaSet
POD
Version: 2.0
Track: canary
DEPLOYMENT
Version: 2.0
POD
PILOT
Traffic rules
50%
50%
ENVOY
APP A
ENVOY
APP B
ENVOY
APP B
ENVOY
APP B
@kublr, @vkoltovich
Canary with Istio
ReplicaSet
POD
Version: 2.0
ENVOY
APP B
DEPLOYMENT
Version: 2.0
POD
PILOT
Traffic rules
100%
ENVOY
APP A
@kublr, @vkoltovich
Canary with Istio
• Istio brings all necessary traffic routing capabilities
required to implement canary releases in Kubernetes
• A release process still has to be implemented outside
@kublr, @vkoltovich
What’s Spinnaker?
• Continuous Delivery Platform
• Multi-cloud, multi-region deployment
capabilities
• Immutable pipelines to deliver reliably
and reproducible
• Deployment strategies enable unified
approach across projects and teams
• Zero-downtime and canary deployments
out-of-the-box*
• Chaos Engineering
• Open-sourced by Neflix in 2015
• Large community: Netflix, Target,
Google, Microsoft, AWS, Pivotal, Mirantis
and many others.
• Kubernetes support led by Google. Also
used by Google for internal deployments.
Like what you hear? Tweet at us @kublr
Nexus Prometheus
Kubernetes
Spinnaker in a CI/CD Process
Jenkins Spinnaker
Kubernetes
Build
Run Unit Tests
Build Docker Image
Push Docker Image
Deploy to QA K8s
Run Tests
Monitor
Deploy to Prod
Manage Traffic
Monitor
Monitor
Docker
Registry
Prod
Cluster
QA Cluster
@kublr, @vkoltovich
Spinnaker and Kubernetes
• Manifest-based deployment:
• Any k8s resource: Deployment, Config, Secret, Custom Resource (Routing
rule etc.)
• May trigger pipeline execution
• Stored in Git, GCS, S3
• May be linked to each other
• Docker registry integration and ability to run pipeline w/ new image is
pushed
@kublr, @vkoltovich
Spinnaker and Kubernetes (cont.)
• Native k8s capabilities enable blue-green deployments
• Istio or Linkerd enable Canary deployments
• Prometheus and Datadog integrations for monitoring
• Pipeline templates
• Helm as a template engine
@kublr, @vkoltovich
Canary Pipeline
@kublr, @real_atamanenko
Canary Release Pipeline
Remove vCurrentMonitorIncrease traffic to vNextDeploy vNext
Remove vNext
Deploy new k8s
deployment with a new
version.
Run health checks
Deploy Istio routing rule
increasing percentage of
traffic to a new version
Monitor new version
comparing Prometheus
metrics to a baseline or
specified threshold
Remove previous
deployment or scale down
to 0
Remove vNext deployment
or stop sending traffic
@kublr, @real_atamanenko
Demo
@kublr, @real_atamanenko
Slava Koltovich | CEO
slava@kublr.com
@vkoltovich
Q&A
Sign up for our newsletter on kublr.com
and stay in touch!

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Openstack days sv building highly available services using kubernetes (preso)
Openstack days sv   building highly available services using kubernetes (preso)Openstack days sv   building highly available services using kubernetes (preso)
Openstack days sv building highly available services using kubernetes (preso)
 
Portable CI/CD Environment as Code with Kubernetes, Kublr and Jenkins
Portable CI/CD Environment as Code with Kubernetes, Kublr and JenkinsPortable CI/CD Environment as Code with Kubernetes, Kublr and Jenkins
Portable CI/CD Environment as Code with Kubernetes, Kublr and Jenkins
 
MongoDB.local Austin 2018: MongoDB Ops Manager + Kubernetes
MongoDB.local Austin 2018: MongoDB Ops Manager + KubernetesMongoDB.local Austin 2018: MongoDB Ops Manager + Kubernetes
MongoDB.local Austin 2018: MongoDB Ops Manager + Kubernetes
 
Effective Building your Platform with Kubernetes == Keep it Simple
Effective Building your Platform with Kubernetes == Keep it Simple Effective Building your Platform with Kubernetes == Keep it Simple
Effective Building your Platform with Kubernetes == Keep it Simple
 
Introduction to Kubernetes - Docker Global Mentor Week 2016
Introduction to Kubernetes - Docker Global Mentor Week 2016Introduction to Kubernetes - Docker Global Mentor Week 2016
Introduction to Kubernetes - Docker Global Mentor Week 2016
 
Orchestrating Microservices with Kubernetes
Orchestrating Microservices with Kubernetes Orchestrating Microservices with Kubernetes
Orchestrating Microservices with Kubernetes
 
Introduction to Kubernetes with demo
Introduction to Kubernetes with demoIntroduction to Kubernetes with demo
Introduction to Kubernetes with demo
 
AWS Summit Singapore 2019 | Autoscaling Your Kubernetes Workloads
AWS Summit Singapore 2019 | Autoscaling Your Kubernetes WorkloadsAWS Summit Singapore 2019 | Autoscaling Your Kubernetes Workloads
AWS Summit Singapore 2019 | Autoscaling Your Kubernetes Workloads
 
MongoDB.local DC 2018: MongoDB Ops Manager + Kubernetes
MongoDB.local DC 2018: MongoDB Ops Manager + KubernetesMongoDB.local DC 2018: MongoDB Ops Manager + Kubernetes
MongoDB.local DC 2018: MongoDB Ops Manager + Kubernetes
 
Kubernetes extensibility
Kubernetes extensibilityKubernetes extensibility
Kubernetes extensibility
 
From Code to Kubernetes
From Code to KubernetesFrom Code to Kubernetes
From Code to Kubernetes
 
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
 
GitOps - Operation By Pull Request
GitOps - Operation By Pull RequestGitOps - Operation By Pull Request
GitOps - Operation By Pull Request
 
KubeCon EU 2016: ITNW (If This Now What): Orchestrating an Enterprise
KubeCon EU 2016: ITNW (If This Now What): Orchestrating an EnterpriseKubeCon EU 2016: ITNW (If This Now What): Orchestrating an Enterprise
KubeCon EU 2016: ITNW (If This Now What): Orchestrating an Enterprise
 
Helm - Package Manager for Kubernetes
Helm - Package Manager for KubernetesHelm - Package Manager for Kubernetes
Helm - Package Manager for Kubernetes
 
Managing kubernetes deployment with operators
Managing kubernetes deployment with operatorsManaging kubernetes deployment with operators
Managing kubernetes deployment with operators
 
CI and CD with Spinnaker
CI and CD with SpinnakerCI and CD with Spinnaker
CI and CD with Spinnaker
 
Centralizing Kubernetes and Container Operations
Centralizing Kubernetes and Container OperationsCentralizing Kubernetes and Container Operations
Centralizing Kubernetes and Container Operations
 
Kubernetes Networking 101
Kubernetes Networking 101Kubernetes Networking 101
Kubernetes Networking 101
 
Kubernetes persistence 101
Kubernetes persistence 101Kubernetes persistence 101
Kubernetes persistence 101
 

Ähnlich wie Canary Releases on Kubernetes with Spinnaker, Istio, & Prometheus (2020)

Ähnlich wie Canary Releases on Kubernetes with Spinnaker, Istio, & Prometheus (2020) (20)

Kubernetes-Native DevOps: For Apache Kafka® with Confluent
Kubernetes-Native DevOps: For Apache Kafka® with ConfluentKubernetes-Native DevOps: For Apache Kafka® with Confluent
Kubernetes-Native DevOps: For Apache Kafka® with Confluent
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetes
 
Canary Deployments for Kubernetes (KubeCon 2018 North America)
Canary Deployments for Kubernetes (KubeCon 2018 North America)Canary Deployments for Kubernetes (KubeCon 2018 North America)
Canary Deployments for Kubernetes (KubeCon 2018 North America)
 
DockerCon EU 2017 Recap
DockerCon EU 2017 RecapDockerCon EU 2017 Recap
DockerCon EU 2017 Recap
 
Docker Container As A Service - JAX 2016
Docker Container As A Service - JAX 2016Docker Container As A Service - JAX 2016
Docker Container As A Service - JAX 2016
 
0507 057 01 98 * Adana Klima Tamir Servisi
0507 057 01 98 * Adana Klima Tamir Servisi0507 057 01 98 * Adana Klima Tamir Servisi
0507 057 01 98 * Adana Klima Tamir Servisi
 
Docker Meetup Feb 2018 Develop and deploy Kubernetes Apps with Docker
Docker Meetup Feb 2018 Develop and deploy Kubernetes Apps with DockerDocker Meetup Feb 2018 Develop and deploy Kubernetes Apps with Docker
Docker Meetup Feb 2018 Develop and deploy Kubernetes Apps with Docker
 
Pat Gelsinger, James Watters, Cornelia Davis at SpringOne Platform 2019
Pat Gelsinger, James Watters, Cornelia Davis at SpringOne Platform 2019Pat Gelsinger, James Watters, Cornelia Davis at SpringOne Platform 2019
Pat Gelsinger, James Watters, Cornelia Davis at SpringOne Platform 2019
 
Happy Helming With Okteto
Happy Helming With OktetoHappy Helming With Okteto
Happy Helming With Okteto
 
Why Kubernetes? Cloud Native and Developer Experience at Zalando - Enterprise...
Why Kubernetes? Cloud Native and Developer Experience at Zalando - Enterprise...Why Kubernetes? Cloud Native and Developer Experience at Zalando - Enterprise...
Why Kubernetes? Cloud Native and Developer Experience at Zalando - Enterprise...
 
Kubernetes meetup geneva june 2021
Kubernetes meetup geneva   june 2021Kubernetes meetup geneva   june 2021
Kubernetes meetup geneva june 2021
 
Introduction of k8s rancher
Introduction of k8s rancherIntroduction of k8s rancher
Introduction of k8s rancher
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017
 
Continuous Delivery With Containers
Continuous Delivery With ContainersContinuous Delivery With Containers
Continuous Delivery With Containers
 
Day 2 Kubernetes - Tools for Operability (Velocity London Meetup)
Day 2 Kubernetes - Tools for Operability (Velocity London Meetup)Day 2 Kubernetes - Tools for Operability (Velocity London Meetup)
Day 2 Kubernetes - Tools for Operability (Velocity London Meetup)
 
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
 
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and Knative
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and KnativeBuild and Deploy Cloud Native Camel Quarkus routes with Tekton and Knative
Build and Deploy Cloud Native Camel Quarkus routes with Tekton and Knative
 
Introduction of kubernetes rancher
Introduction of kubernetes rancherIntroduction of kubernetes rancher
Introduction of kubernetes rancher
 
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
 
Remote debugging of Application in Kubernetes
Remote debugging of Application in KubernetesRemote debugging of Application in Kubernetes
Remote debugging of Application in Kubernetes
 

Mehr von Kublr

Mehr von Kublr (16)

Container Runtimes and Tooling, v2
Container Runtimes and Tooling, v2Container Runtimes and Tooling, v2
Container Runtimes and Tooling, v2
 
Container Runtimes and Tooling
Container Runtimes and ToolingContainer Runtimes and Tooling
Container Runtimes and Tooling
 
Kubernetes in Hybrid Environments with Submariner
Kubernetes in Hybrid Environments with SubmarinerKubernetes in Hybrid Environments with Submariner
Kubernetes in Hybrid Environments with Submariner
 
Intro into Rook and Ceph on Kubernetes
Intro into Rook and Ceph on KubernetesIntro into Rook and Ceph on Kubernetes
Intro into Rook and Ceph on Kubernetes
 
Hybrid architecture solutions with kubernetes and the cloud native stack
Hybrid architecture solutions with kubernetes and the cloud native stackHybrid architecture solutions with kubernetes and the cloud native stack
Hybrid architecture solutions with kubernetes and the cloud native stack
 
Multi-cloud Kubernetes BCDR with Velero
Multi-cloud Kubernetes BCDR with VeleroMulti-cloud Kubernetes BCDR with Velero
Multi-cloud Kubernetes BCDR with Velero
 
Kubernetes Ingress 101
Kubernetes Ingress 101Kubernetes Ingress 101
Kubernetes Ingress 101
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Advanced Scheduling in Kubernetes
Advanced Scheduling in KubernetesAdvanced Scheduling in Kubernetes
Advanced Scheduling in Kubernetes
 
Setting up CI/CD Pipeline with Kubernetes and Kublr step by-step
Setting up CI/CD Pipeline with Kubernetes and Kublr step by-stepSetting up CI/CD Pipeline with Kubernetes and Kublr step by-step
Setting up CI/CD Pipeline with Kubernetes and Kublr step by-step
 
How Self-Healing Nodes and Infrastructure Management Impact Reliability
How Self-Healing Nodes and Infrastructure Management Impact ReliabilityHow Self-Healing Nodes and Infrastructure Management Impact Reliability
How Self-Healing Nodes and Infrastructure Management Impact Reliability
 
Kubernetes in Highly Restrictive Environments
Kubernetes in Highly Restrictive EnvironmentsKubernetes in Highly Restrictive Environments
Kubernetes in Highly Restrictive Environments
 
The Evolution of your Kubernetes Cluster
The Evolution of your Kubernetes ClusterThe Evolution of your Kubernetes Cluster
The Evolution of your Kubernetes Cluster
 
Kubernetes data science and machine learning
Kubernetes data science and machine learningKubernetes data science and machine learning
Kubernetes data science and machine learning
 
Implement Advanced Scheduling Techniques in Kubernetes
Implement Advanced Scheduling Techniques in Kubernetes Implement Advanced Scheduling Techniques in Kubernetes
Implement Advanced Scheduling Techniques in Kubernetes
 
Application Portability with Kubernetes (k8)
Application Portability with Kubernetes (k8)Application Portability with Kubernetes (k8)
Application Portability with Kubernetes (k8)
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Kürzlich hochgeladen (20)

Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
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, ...
 
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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
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
 
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
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

Canary Releases on Kubernetes with Spinnaker, Istio, & Prometheus (2020)

  • 1. Gluing It All Together Canary Releases on Kubernetes with Spinnaker, Istio, and Prometheus
  • 2. Tuesday September 15, 2020 Thursday March 18, 2021 (alternative date) @ Red Cross Square in Downtown DC
  • 3. DC Meetup Slack Channel Join our meetup-dc channel on the Kubernetes Slack
  • 4. Click to add text Click to add text Learn more at kublr.com/how-it-works
  • 5. Why Canary? “Canary release is a technique to reduce the risk of introducing a new software version in production by slowly rolling out the change to a small subset of users before rolling it out to the entire infrastructure and making it available to everybody.” https://martinfowler.com @kublr, @vkoltovich
  • 7. Canary in Kubernetes APP A POD ReplicaSet DEPLOYMENT Version: 1.0 Version: 1.0APP B POD POD APP B APP B SERVICE @kublr, @vkoltovich
  • 8. Canary in Kubernetes APP A POD ReplicaSet DEPLOYMENT Version: 1.0 Version: 1.0APP B POD POD APP B APP B SERVICE ReplicaSet POD APP B Version: 2.0 Track: canary DEPLOYMENT Version: 2.0 @kublr, @vkoltovich
  • 9. ReplicaSet POD APP B Canary in Kubernetes APP A POD ReplicaSet DEPLOYMENTVersion: 1.0 Version: 1.0 APP B POD POD APP B DEPLOYMENT Version: 2.0 Version: 2.0 Track: canary APP B SERVICE @kublr, @vkoltovich
  • 10. Canary in Kubernetes APP A POD ReplicaSet DEPLOYMENT Version: 2.0 Version: 2.0APP B POD POD APP B APP B SERVICE @kublr, @vkoltovich
  • 11. Canary in Kubernetes • Canary releases in Kubernetes are limited by k8s traffic routing capabilities • Traffic splitting is managed by manipulating a number of pods in current and canary deployments @kublr, @vkoltovich
  • 12. Introducing Istio Pilot • Service discovery for Envoy and traffic routing • Splitting: gradual (canary) rollout, A/B testing • Fault injection • Mirroring • Failure recovery: circuit breakers, retries, timeouts Mixer • Per-request policies: access and usage control Auth • Request authentication and encryption • Identity and credential management Envoy • Request routing and processing; attributes Zipkin/Jaeger, Prometheus/Grafana • Distributed request tracing • Monitoring @kublr, @vkoltovich
  • 13. Canary with Istio ReplicaSet DEPLOYMENT Version: 1.0 Version: 1.0 POD POD ReplicaSet POD Version: 2.0 Track: canary DEPLOYMENT Version: 2.0 POD PILOT Traffic rules 99% 1% ENVOY APP A ENVOY APP B ENVOY APP B ENVOY APP B @kublr, @vkoltovich
  • 14. Canary with Istio ReplicaSet DEPLOYMENT Version: 1.0 Version: 1.0 POD POD ReplicaSet POD Version: 2.0 Track: canary DEPLOYMENT Version: 2.0 POD PILOT Traffic rules 50% 50% ENVOY APP A ENVOY APP B ENVOY APP B ENVOY APP B @kublr, @vkoltovich
  • 15. Canary with Istio ReplicaSet POD Version: 2.0 ENVOY APP B DEPLOYMENT Version: 2.0 POD PILOT Traffic rules 100% ENVOY APP A @kublr, @vkoltovich
  • 16. Canary with Istio • Istio brings all necessary traffic routing capabilities required to implement canary releases in Kubernetes • A release process still has to be implemented outside @kublr, @vkoltovich
  • 17. What’s Spinnaker? • Continuous Delivery Platform • Multi-cloud, multi-region deployment capabilities • Immutable pipelines to deliver reliably and reproducible • Deployment strategies enable unified approach across projects and teams • Zero-downtime and canary deployments out-of-the-box* • Chaos Engineering • Open-sourced by Neflix in 2015 • Large community: Netflix, Target, Google, Microsoft, AWS, Pivotal, Mirantis and many others. • Kubernetes support led by Google. Also used by Google for internal deployments. Like what you hear? Tweet at us @kublr
  • 18. Nexus Prometheus Kubernetes Spinnaker in a CI/CD Process Jenkins Spinnaker Kubernetes Build Run Unit Tests Build Docker Image Push Docker Image Deploy to QA K8s Run Tests Monitor Deploy to Prod Manage Traffic Monitor Monitor Docker Registry Prod Cluster QA Cluster @kublr, @vkoltovich
  • 19. Spinnaker and Kubernetes • Manifest-based deployment: • Any k8s resource: Deployment, Config, Secret, Custom Resource (Routing rule etc.) • May trigger pipeline execution • Stored in Git, GCS, S3 • May be linked to each other • Docker registry integration and ability to run pipeline w/ new image is pushed @kublr, @vkoltovich
  • 20. Spinnaker and Kubernetes (cont.) • Native k8s capabilities enable blue-green deployments • Istio or Linkerd enable Canary deployments • Prometheus and Datadog integrations for monitoring • Pipeline templates • Helm as a template engine @kublr, @vkoltovich
  • 22. Canary Release Pipeline Remove vCurrentMonitorIncrease traffic to vNextDeploy vNext Remove vNext Deploy new k8s deployment with a new version. Run health checks Deploy Istio routing rule increasing percentage of traffic to a new version Monitor new version comparing Prometheus metrics to a baseline or specified threshold Remove previous deployment or scale down to 0 Remove vNext deployment or stop sending traffic @kublr, @real_atamanenko
  • 24. Slava Koltovich | CEO slava@kublr.com @vkoltovich Q&A Sign up for our newsletter on kublr.com and stay in touch!