SlideShare a Scribd company logo
1 of 37
Download to read offline
Canary In a Pipeline
Darren Bathgate
Technical Architect
OSCON 2018
What Canary Is
Canary Deployment Phases
Canary In Microservices
Other Considerations
Demo
Presentation Outline
Information Security Level 2 – Sensitive
© 2017 – Proprietary & Confidential Information of Amdocs3
Full Service Consulting Firm
Architecture, front and back end development, business
analysis and DevTest.
Cloud Virtualization Experts And Enablers
AWS, Netflix stack, Kubernetes, Istio, enterprise
architecture and beyond.
DevOps Leadership
Platform builds, continuous delivery and scalable
resourcing.
Technical Architect at Kenzan
working out of Rhode Island
Worked at Kenzan for 7ish years
Assisted clients with building microservice platforms
using Netflix OSS on AWS Cloud
Transitioned clients into containerization using Docker,
ECS, and Kubernetes
First time conference presenter!
About Kenzan About Me
We want to deliver value to the users
Delivering value requires deploying to production
Deploying to production is scary
No value is delivered if something goes wrong
The problem with current deployment pipelines
Break the Deployment
Fear
Fear leads to fewer and larger deployments
Larger deployments introduce more problems
5
Deploy to production with confidence
Deploy more frequently
Deliver user value at a higher velocity
Introduce Canary to your pipeline
Origination of the Term
“Canary”
Refers to “canary in a coal mine”
Used as an early warning sign of mine
contamination
7
Process of deploying a limited feature
release to production
Controls exposure of a feature to a small
subset of users
New feature receives a sample of real user
traffic
Canary in Software Development
Monitoring systems flag any issues with the feature deployment
Teams react to issues and either proceed or rollback the deployment
Early Detection of Failures
Traffic is promoted to the new version after assessing the deployment
Old version is disposed
Promote to New Version
Phases of Canary
Blue/Green Deployment
Traffic Shifting
Observation
Judgement
11
Blue/Green Deployment
Deploy new version of the same service
Traffic Shifting
Control and transition traffic between two versions
Observation
Observe health of two versions
Judgement
Judge the status of a deployment and promote/reject
Canary Chaos in
Microservices
Microservice architectures add additional complexity
to Canary
16
Gateways route traffic to N number of Microservices
Microservices talk to N number of other Microservices
Microservice produce N number of metrics and logs to sort through
How to Solve Canary
Chaos?
¯_(ツ)_/¯
20
Answer:
Canary Awareness
At any point in time, any deployable component can
be part of a canary deployment.
Deployable components need to be aware of their own version
Depending components need to be aware of deployable component versions
21
Without Canary Awareness:
Library does not know that Book has two versions
Without Canary Awareness:
Metrics/Logs/Traces from both versions of Book are mixed together
Deployable components need to be aware of their own version
Register version metadata into a central discovery system so that others are aware
Services subscribe to discovery systems with version metadata
Pipeline updates traffic percentages in discovery system
Discovery subscribers receive traffic % and route accordingly
Use Canary Awareness concept to tag metrics/logs/traces with version
Enables developer filtering capabilities to observe health of the new version
Able to see an increase in errors (500s) from version 56 to version 57
Yes, that is Grafana in “light mode”
Service stabilizes with deployment of
version 58
Other Considerations
Scale Based Canary
Using replication scale to randomize canary traffic
Canary State Management
Producing a consistent user experience
Automated Canary Analysis
Automate canary judgement based on metrics
Service Mesh
Magically connecting services together
29
Scale Based Canary
Use replica scale as a way to saturate new version traffic with old version traffic
Do some math…
(1 instance of v2) / (99 instances of v1) = 1% traffic to v2
(50 instance of v2) / (50 instances of v1) = 50% traffic to v2
Ability to use commodity load balancers without
custom routing
Easy to implement
Works well for service per load balancer setup
Scale Based Canary
PROS
Scale requirements to saturate traffic can be
expensive
Difficult to slice pertangages for < 10 instances
Use of cloud based LB’s like AWS ELB require
one LB per service group
CONS
Canary State Management
Ability to keep a user chosen for canary testing on the same version
User does not get an inconsistent experience from mixed versions
Automated Canary Analysis
Establishing a baseline of healthy metrics
Using the baseline to evaluate a new deployment
Fail deployment if new deployment metrics do not meet healthy thresholds
Spinnaker is a Continuous Delivery tool with contributors such as Netflix, Google,
and Kenzan
Spinnaker introduced automated canary analysis in a component called Kayenta
https://github.com/spinnaker/kayenta
Compares a baseline metric against the new version and judges the deployment
Currently supports Stackdriver, Prometheus, and DataDog metric providers
Service Mesh
Connects services together over the network
Manages load balancing between apps
Uses discovery to route traffic
Istio offers Traffic Shifting capabilities to enable canary traffic management
Creates sidecar proxies using Envoy that manage mesh traffic
Works on Kubernetes to discover services and route traffic
Bundled with telemetry tools such as Prometheus, Grafana, and Jaeger
Demo Setup
Platform: Kubernetes
Traffic Management: Istio/Envoy
CI/CD: Jenkins
Source Control: Github
Microservices:
Library built in Go
Book built with Spring Boot
Monitoring: Prometheus/Grafana
Conclusion
Requires real user traffic
Introduces new complexities
Organizational resistance to adapt a
new deployment process
Limits the user impact of a bad
deployment
Increases feature deployment velocity
More Open Source Canary tools
becoming available
Advantages Disadvantages
Questions?
Email: dbathgate@kenzan.com
Github: https://github.com/dbathgate

More Related Content

What's hot

Kubernetes VS. App Service: When the orchestrator challenges the platform
Kubernetes VS. App Service: When the orchestrator challenges the platformKubernetes VS. App Service: When the orchestrator challenges the platform
Kubernetes VS. App Service: When the orchestrator challenges the platformLorenzo Barbieri
 
Api service mesh and microservice tooling
Api service mesh and microservice toolingApi service mesh and microservice tooling
Api service mesh and microservice toolingLuca Mattia Ferrari
 
Operationalizing Amazon EKS
Operationalizing Amazon EKSOperationalizing Amazon EKS
Operationalizing Amazon EKSJim Bugwadia
 
Istio: Using nginMesh as the service proxy
Istio: Using nginMesh as the service proxyIstio: Using nginMesh as the service proxy
Istio: Using nginMesh as the service proxyLee Calcote
 
Kafka on Kubernetes: Does it really have to be "The Hard Way"? (Viktor Gamov ...
Kafka on Kubernetes: Does it really have to be "The Hard Way"? (Viktor Gamov ...Kafka on Kubernetes: Does it really have to be "The Hard Way"? (Viktor Gamov ...
Kafka on Kubernetes: Does it really have to be "The Hard Way"? (Viktor Gamov ...confluent
 
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECS
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECSWeaveworks at AWS re:Invent 2016: Operations Management with Amazon ECS
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECSWeaveworks
 
Using Microservices Architecture and Patterns to Address Applications Require...
Using Microservices Architecture and Patterns to Address Applications Require...Using Microservices Architecture and Patterns to Address Applications Require...
Using Microservices Architecture and Patterns to Address Applications Require...Prem Sankar Gopannan
 
Istio Service Mesh
Istio Service MeshIstio Service Mesh
Istio Service MeshLew Tucker
 
Kubernetes Code Components
Kubernetes Code ComponentsKubernetes Code Components
Kubernetes Code ComponentsIdan Shahar
 
Microservices Patterns and Anti-Patterns
Microservices Patterns and Anti-PatternsMicroservices Patterns and Anti-Patterns
Microservices Patterns and Anti-PatternsCorneil du Plessis
 
DevOpsDaysPhoenix - CI/CD Pipelines for CDN
DevOpsDaysPhoenix -  CI/CD Pipelines for CDNDevOpsDaysPhoenix -  CI/CD Pipelines for CDN
DevOpsDaysPhoenix - CI/CD Pipelines for CDNAkshay Ranganath
 
Assorted Learnings of Microservices
Assorted Learnings of MicroservicesAssorted Learnings of Microservices
Assorted Learnings of MicroservicesDavid Dawson
 
Making sense of containers, docker and Kubernetes on Azure.
Making sense of containers, docker and Kubernetes on Azure.Making sense of containers, docker and Kubernetes on Azure.
Making sense of containers, docker and Kubernetes on Azure.Nills Franssens
 
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)Codemotion
 
Serverless Apps with Open Whisk
Serverless Apps with Open Whisk Serverless Apps with Open Whisk
Serverless Apps with Open Whisk Dev_Events
 

What's hot (20)

Kubernetes VS. App Service: When the orchestrator challenges the platform
Kubernetes VS. App Service: When the orchestrator challenges the platformKubernetes VS. App Service: When the orchestrator challenges the platform
Kubernetes VS. App Service: When the orchestrator challenges the platform
 
Container DevOps in Azure
Container DevOps in AzureContainer DevOps in Azure
Container DevOps in Azure
 
Api service mesh and microservice tooling
Api service mesh and microservice toolingApi service mesh and microservice tooling
Api service mesh and microservice tooling
 
Operationalizing Amazon EKS
Operationalizing Amazon EKSOperationalizing Amazon EKS
Operationalizing Amazon EKS
 
Event Driven Architecture
Event Driven ArchitectureEvent Driven Architecture
Event Driven Architecture
 
Istio: Using nginMesh as the service proxy
Istio: Using nginMesh as the service proxyIstio: Using nginMesh as the service proxy
Istio: Using nginMesh as the service proxy
 
Javascript Today
Javascript TodayJavascript Today
Javascript Today
 
Kafka on Kubernetes: Does it really have to be "The Hard Way"? (Viktor Gamov ...
Kafka on Kubernetes: Does it really have to be "The Hard Way"? (Viktor Gamov ...Kafka on Kubernetes: Does it really have to be "The Hard Way"? (Viktor Gamov ...
Kafka on Kubernetes: Does it really have to be "The Hard Way"? (Viktor Gamov ...
 
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECS
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECSWeaveworks at AWS re:Invent 2016: Operations Management with Amazon ECS
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECS
 
Using Microservices Architecture and Patterns to Address Applications Require...
Using Microservices Architecture and Patterns to Address Applications Require...Using Microservices Architecture and Patterns to Address Applications Require...
Using Microservices Architecture and Patterns to Address Applications Require...
 
Istio Service Mesh
Istio Service MeshIstio Service Mesh
Istio Service Mesh
 
Kubernetes Code Components
Kubernetes Code ComponentsKubernetes Code Components
Kubernetes Code Components
 
Autoscaling in Kubernetes
Autoscaling in KubernetesAutoscaling in Kubernetes
Autoscaling in Kubernetes
 
Microservices Patterns and Anti-Patterns
Microservices Patterns and Anti-PatternsMicroservices Patterns and Anti-Patterns
Microservices Patterns and Anti-Patterns
 
DevOpsDaysPhoenix - CI/CD Pipelines for CDN
DevOpsDaysPhoenix -  CI/CD Pipelines for CDNDevOpsDaysPhoenix -  CI/CD Pipelines for CDN
DevOpsDaysPhoenix - CI/CD Pipelines for CDN
 
Assorted Learnings of Microservices
Assorted Learnings of MicroservicesAssorted Learnings of Microservices
Assorted Learnings of Microservices
 
Making sense of containers, docker and Kubernetes on Azure.
Making sense of containers, docker and Kubernetes on Azure.Making sense of containers, docker and Kubernetes on Azure.
Making sense of containers, docker and Kubernetes on Azure.
 
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)
 
Docker for Mac
Docker for MacDocker for Mac
Docker for Mac
 
Serverless Apps with Open Whisk
Serverless Apps with Open Whisk Serverless Apps with Open Whisk
Serverless Apps with Open Whisk
 

Similar to OSCON: Canary In a Pipeline

Microservices: State of the Union
Microservices: State of the UnionMicroservices: State of the Union
Microservices: State of the UnionC4Media
 
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...confluent
 
Simplify and Scale Enterprise Spring Apps in the Cloud | March 23, 2023
Simplify and Scale Enterprise Spring Apps in the Cloud | March 23, 2023Simplify and Scale Enterprise Spring Apps in the Cloud | March 23, 2023
Simplify and Scale Enterprise Spring Apps in the Cloud | March 23, 2023VMware Tanzu
 
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...confluent
 
Micro service in aws meetup
Micro service in aws   meetupMicro service in aws   meetup
Micro service in aws meetupKiran Divekar
 
Cloud for Kubernetes : Session4
Cloud for Kubernetes : Session4Cloud for Kubernetes : Session4
Cloud for Kubernetes : Session4WhaTap Labs
 
Using Azure DevOps to continuously build, test, and deploy containerized appl...
Using Azure DevOps to continuously build, test, and deploy containerized appl...Using Azure DevOps to continuously build, test, and deploy containerized appl...
Using Azure DevOps to continuously build, test, and deploy containerized appl...Adrian Todorov
 
AWS re:Invent 2016: Develop Your Migration Toolkit (ENT312)
AWS re:Invent 2016: Develop Your Migration Toolkit (ENT312)AWS re:Invent 2016: Develop Your Migration Toolkit (ENT312)
AWS re:Invent 2016: Develop Your Migration Toolkit (ENT312)Amazon Web Services
 
Q&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service MeshQ&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service Meshconfluent
 
(NET208) Enable & Secure Your Business Apps via the Hybrid Cloud on AWS
(NET208) Enable & Secure Your Business Apps via the Hybrid Cloud on AWS(NET208) Enable & Secure Your Business Apps via the Hybrid Cloud on AWS
(NET208) Enable & Secure Your Business Apps via the Hybrid Cloud on AWSAmazon Web Services
 
Episode 1: Building Kubernetes-as-a-Service
Episode 1: Building Kubernetes-as-a-ServiceEpisode 1: Building Kubernetes-as-a-Service
Episode 1: Building Kubernetes-as-a-ServiceMesosphere Inc.
 
Microsoft Ignite 2018 BRK3192 Container DevOps on Azure
Microsoft Ignite 2018 BRK3192 Container DevOps on AzureMicrosoft Ignite 2018 BRK3192 Container DevOps on Azure
Microsoft Ignite 2018 BRK3192 Container DevOps on AzureJessica Deen
 
Netflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open SourceNetflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open Sourceaspyker
 
The Importance of Testnets in Developing InitVerse dApps.pdf
The Importance of Testnets in Developing InitVerse dApps.pdfThe Importance of Testnets in Developing InitVerse dApps.pdf
The Importance of Testnets in Developing InitVerse dApps.pdfInitVerse Blockchain
 
What is Spinnaker? Spinnaker tutorial
What is Spinnaker? Spinnaker tutorialWhat is Spinnaker? Spinnaker tutorial
What is Spinnaker? Spinnaker tutorialjeetendra mandal
 
Gluecon Monitoring Microservices and Containers: A Challenge
Gluecon Monitoring Microservices and Containers: A ChallengeGluecon Monitoring Microservices and Containers: A Challenge
Gluecon Monitoring Microservices and Containers: A ChallengeAdrian Cockcroft
 
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...Cloud Native Day Tel Aviv
 
Tectonic Summit 2016: Betting on Kubernetes
Tectonic Summit 2016: Betting on KubernetesTectonic Summit 2016: Betting on Kubernetes
Tectonic Summit 2016: Betting on KubernetesCoreOS
 
Simplify Migration with RISC Network’s Complete App Analysis
Simplify Migration with RISC Network’s Complete App AnalysisSimplify Migration with RISC Network’s Complete App Analysis
Simplify Migration with RISC Network’s Complete App AnalysisAmazon Web Services
 

Similar to OSCON: Canary In a Pipeline (20)

Microservices: State of the Union
Microservices: State of the UnionMicroservices: State of the Union
Microservices: State of the Union
 
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
 
Simplify and Scale Enterprise Spring Apps in the Cloud | March 23, 2023
Simplify and Scale Enterprise Spring Apps in the Cloud | March 23, 2023Simplify and Scale Enterprise Spring Apps in the Cloud | March 23, 2023
Simplify and Scale Enterprise Spring Apps in the Cloud | March 23, 2023
 
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...
 
Micro service in aws meetup
Micro service in aws   meetupMicro service in aws   meetup
Micro service in aws meetup
 
Cloud for Kubernetes : Session4
Cloud for Kubernetes : Session4Cloud for Kubernetes : Session4
Cloud for Kubernetes : Session4
 
Using Azure DevOps to continuously build, test, and deploy containerized appl...
Using Azure DevOps to continuously build, test, and deploy containerized appl...Using Azure DevOps to continuously build, test, and deploy containerized appl...
Using Azure DevOps to continuously build, test, and deploy containerized appl...
 
AWS re:Invent 2016: Develop Your Migration Toolkit (ENT312)
AWS re:Invent 2016: Develop Your Migration Toolkit (ENT312)AWS re:Invent 2016: Develop Your Migration Toolkit (ENT312)
AWS re:Invent 2016: Develop Your Migration Toolkit (ENT312)
 
Q&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service MeshQ&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service Mesh
 
(NET208) Enable & Secure Your Business Apps via the Hybrid Cloud on AWS
(NET208) Enable & Secure Your Business Apps via the Hybrid Cloud on AWS(NET208) Enable & Secure Your Business Apps via the Hybrid Cloud on AWS
(NET208) Enable & Secure Your Business Apps via the Hybrid Cloud on AWS
 
Episode 1: Building Kubernetes-as-a-Service
Episode 1: Building Kubernetes-as-a-ServiceEpisode 1: Building Kubernetes-as-a-Service
Episode 1: Building Kubernetes-as-a-Service
 
Microsoft Ignite 2018 BRK3192 Container DevOps on Azure
Microsoft Ignite 2018 BRK3192 Container DevOps on AzureMicrosoft Ignite 2018 BRK3192 Container DevOps on Azure
Microsoft Ignite 2018 BRK3192 Container DevOps on Azure
 
Netflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open SourceNetflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open Source
 
The Importance of Testnets in Developing InitVerse dApps.pdf
The Importance of Testnets in Developing InitVerse dApps.pdfThe Importance of Testnets in Developing InitVerse dApps.pdf
The Importance of Testnets in Developing InitVerse dApps.pdf
 
Kubernetes vs App Service
Kubernetes vs App ServiceKubernetes vs App Service
Kubernetes vs App Service
 
What is Spinnaker? Spinnaker tutorial
What is Spinnaker? Spinnaker tutorialWhat is Spinnaker? Spinnaker tutorial
What is Spinnaker? Spinnaker tutorial
 
Gluecon Monitoring Microservices and Containers: A Challenge
Gluecon Monitoring Microservices and Containers: A ChallengeGluecon Monitoring Microservices and Containers: A Challenge
Gluecon Monitoring Microservices and Containers: A Challenge
 
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
 
Tectonic Summit 2016: Betting on Kubernetes
Tectonic Summit 2016: Betting on KubernetesTectonic Summit 2016: Betting on Kubernetes
Tectonic Summit 2016: Betting on Kubernetes
 
Simplify Migration with RISC Network’s Complete App Analysis
Simplify Migration with RISC Network’s Complete App AnalysisSimplify Migration with RISC Network’s Complete App Analysis
Simplify Migration with RISC Network’s Complete App Analysis
 

Recently uploaded

What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?Watsoo Telematics
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutionsmonugehlot87
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 

Recently uploaded (20)

What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutions
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 

OSCON: Canary In a Pipeline

  • 1. Canary In a Pipeline Darren Bathgate Technical Architect OSCON 2018
  • 2. What Canary Is Canary Deployment Phases Canary In Microservices Other Considerations Demo Presentation Outline
  • 3. Information Security Level 2 – Sensitive © 2017 – Proprietary & Confidential Information of Amdocs3 Full Service Consulting Firm Architecture, front and back end development, business analysis and DevTest. Cloud Virtualization Experts And Enablers AWS, Netflix stack, Kubernetes, Istio, enterprise architecture and beyond. DevOps Leadership Platform builds, continuous delivery and scalable resourcing. Technical Architect at Kenzan working out of Rhode Island Worked at Kenzan for 7ish years Assisted clients with building microservice platforms using Netflix OSS on AWS Cloud Transitioned clients into containerization using Docker, ECS, and Kubernetes First time conference presenter! About Kenzan About Me
  • 4. We want to deliver value to the users Delivering value requires deploying to production Deploying to production is scary No value is delivered if something goes wrong The problem with current deployment pipelines
  • 5. Break the Deployment Fear Fear leads to fewer and larger deployments Larger deployments introduce more problems 5
  • 6. Deploy to production with confidence Deploy more frequently Deliver user value at a higher velocity Introduce Canary to your pipeline
  • 7. Origination of the Term “Canary” Refers to “canary in a coal mine” Used as an early warning sign of mine contamination 7
  • 8. Process of deploying a limited feature release to production Controls exposure of a feature to a small subset of users New feature receives a sample of real user traffic Canary in Software Development
  • 9. Monitoring systems flag any issues with the feature deployment Teams react to issues and either proceed or rollback the deployment Early Detection of Failures
  • 10. Traffic is promoted to the new version after assessing the deployment Old version is disposed Promote to New Version
  • 11. Phases of Canary Blue/Green Deployment Traffic Shifting Observation Judgement 11
  • 12. Blue/Green Deployment Deploy new version of the same service
  • 13. Traffic Shifting Control and transition traffic between two versions
  • 15. Judgement Judge the status of a deployment and promote/reject
  • 16. Canary Chaos in Microservices Microservice architectures add additional complexity to Canary 16
  • 17. Gateways route traffic to N number of Microservices
  • 18. Microservices talk to N number of other Microservices
  • 19. Microservice produce N number of metrics and logs to sort through
  • 20. How to Solve Canary Chaos? ¯_(ツ)_/¯ 20
  • 21. Answer: Canary Awareness At any point in time, any deployable component can be part of a canary deployment. Deployable components need to be aware of their own version Depending components need to be aware of deployable component versions 21
  • 22. Without Canary Awareness: Library does not know that Book has two versions
  • 23. Without Canary Awareness: Metrics/Logs/Traces from both versions of Book are mixed together
  • 24. Deployable components need to be aware of their own version
  • 25. Register version metadata into a central discovery system so that others are aware
  • 26. Services subscribe to discovery systems with version metadata Pipeline updates traffic percentages in discovery system Discovery subscribers receive traffic % and route accordingly
  • 27. Use Canary Awareness concept to tag metrics/logs/traces with version Enables developer filtering capabilities to observe health of the new version
  • 28. Able to see an increase in errors (500s) from version 56 to version 57 Yes, that is Grafana in “light mode” Service stabilizes with deployment of version 58
  • 29. Other Considerations Scale Based Canary Using replication scale to randomize canary traffic Canary State Management Producing a consistent user experience Automated Canary Analysis Automate canary judgement based on metrics Service Mesh Magically connecting services together 29
  • 30. Scale Based Canary Use replica scale as a way to saturate new version traffic with old version traffic Do some math… (1 instance of v2) / (99 instances of v1) = 1% traffic to v2 (50 instance of v2) / (50 instances of v1) = 50% traffic to v2
  • 31. Ability to use commodity load balancers without custom routing Easy to implement Works well for service per load balancer setup Scale Based Canary PROS Scale requirements to saturate traffic can be expensive Difficult to slice pertangages for < 10 instances Use of cloud based LB’s like AWS ELB require one LB per service group CONS
  • 32. Canary State Management Ability to keep a user chosen for canary testing on the same version User does not get an inconsistent experience from mixed versions
  • 33. Automated Canary Analysis Establishing a baseline of healthy metrics Using the baseline to evaluate a new deployment Fail deployment if new deployment metrics do not meet healthy thresholds Spinnaker is a Continuous Delivery tool with contributors such as Netflix, Google, and Kenzan Spinnaker introduced automated canary analysis in a component called Kayenta https://github.com/spinnaker/kayenta Compares a baseline metric against the new version and judges the deployment Currently supports Stackdriver, Prometheus, and DataDog metric providers
  • 34. Service Mesh Connects services together over the network Manages load balancing between apps Uses discovery to route traffic Istio offers Traffic Shifting capabilities to enable canary traffic management Creates sidecar proxies using Envoy that manage mesh traffic Works on Kubernetes to discover services and route traffic Bundled with telemetry tools such as Prometheus, Grafana, and Jaeger
  • 35. Demo Setup Platform: Kubernetes Traffic Management: Istio/Envoy CI/CD: Jenkins Source Control: Github Microservices: Library built in Go Book built with Spring Boot Monitoring: Prometheus/Grafana
  • 36. Conclusion Requires real user traffic Introduces new complexities Organizational resistance to adapt a new deployment process Limits the user impact of a bad deployment Increases feature deployment velocity More Open Source Canary tools becoming available Advantages Disadvantages