SlideShare a Scribd company logo
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 platform
Lorenzo Barbieri
 
Container DevOps in Azure
Container DevOps in AzureContainer DevOps in Azure
Container DevOps in Azure
Microsoft Tech Community
 
Api service mesh and microservice tooling
Api service mesh and microservice toolingApi service mesh and microservice tooling
Api service mesh and microservice tooling
Red Hat
 
Operationalizing Amazon EKS
Operationalizing Amazon EKSOperationalizing Amazon EKS
Operationalizing Amazon EKS
Jim Bugwadia
 
Event Driven Architecture
Event Driven ArchitectureEvent Driven Architecture
Event Driven Architecture
Sistek Yazılım
 
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
Lee Calcote
 
Javascript Today
Javascript TodayJavascript Today
Javascript Today
Sistek Yazılım
 
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 ECS
Weaveworks
 
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 Mesh
Lew Tucker
 
Kubernetes Code Components
Kubernetes Code ComponentsKubernetes Code Components
Kubernetes Code Components
Idan Shahar
 
Autoscaling in Kubernetes
Autoscaling in KubernetesAutoscaling in Kubernetes
Autoscaling in Kubernetes
Hrishikesh Deodhar
 
Microservices Patterns and Anti-Patterns
Microservices Patterns and Anti-PatternsMicroservices Patterns and Anti-Patterns
Microservices Patterns and Anti-Patterns
Corneil du Plessis
 
DevOpsDaysPhoenix - CI/CD Pipelines for CDN
DevOpsDaysPhoenix -  CI/CD Pipelines for CDNDevOpsDaysPhoenix -  CI/CD Pipelines for CDN
DevOpsDaysPhoenix - CI/CD Pipelines for CDN
Akshay Ranganath
 
Assorted Learnings of Microservices
Assorted Learnings of MicroservicesAssorted Learnings of Microservices
Assorted Learnings of Microservices
David 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
 
Docker for Mac
Docker for MacDocker for Mac
Docker for Mac
Amazon Web Services
 
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 Union
C4Media
 
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, 2023
VMware 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 meetup
Kiran Divekar
 
Cloud for Kubernetes : Session4
Cloud for Kubernetes : Session4Cloud for Kubernetes : Session4
Cloud for Kubernetes : Session4
WhaTap 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 Mesh
confluent
 
(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
Amazon 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-Service
Mesosphere 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 Azure
Jessica Deen
 
Netflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open SourceNetflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open Source
aspyker
 
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
InitVerse Blockchain
 
Kubernetes vs App Service
Kubernetes vs App ServiceKubernetes vs App Service
Kubernetes vs App Service
Lorenzo Barbieri
 
What is Spinnaker? Spinnaker tutorial
What is Spinnaker? Spinnaker tutorialWhat is Spinnaker? Spinnaker tutorial
What is Spinnaker? Spinnaker tutorial
jeetendra 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 Challenge
Adrian 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 Kubernetes
CoreOS
 
Scenarios in Which Kubernetes is Used for Container Orchestration of a Web Ap...
Scenarios in Which Kubernetes is Used for Container Orchestration of a Web Ap...Scenarios in Which Kubernetes is Used for Container Orchestration of a Web Ap...
Scenarios in Which Kubernetes is Used for Container Orchestration of a Web Ap...
Sun Technologies
 

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
 
Scenarios in Which Kubernetes is Used for Container Orchestration of a Web Ap...
Scenarios in Which Kubernetes is Used for Container Orchestration of a Web Ap...Scenarios in Which Kubernetes is Used for Container Orchestration of a Web Ap...
Scenarios in Which Kubernetes is Used for Container Orchestration of a Web Ap...
 

Recently uploaded

How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 

Recently uploaded (20)

How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 

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