SlideShare a Scribd company logo
1 of 14
NICTA Copyright 2012 From imagination to impact
Issues with the
use of Canaries
Len Bass
NICTA Copyright 2012 From imagination to impact
Goal of Presentation
• For you to understand there are interesting
problems associated with canaries.
• For me to be sure that I understand how
canaries are used in practice.
• For me to get feedback about appropriate
testing results.
2
NICTA Copyright 2012 From imagination to impact
Various Upgrade Strategies
• How many at once?
– One at a time (rolling upgrade)
– Groups at a time (staged upgrade, e.g. canaries)
– All at once (big flip)
• What happens to old versions?
– Replaced en masse
– Maintained for some period for compatibility purposes
• This talk will focus on the canary strategy and
examine some issues associated with canaries
3
NICTA Copyright 2012 From imagination to impact
Context
• Deep service
dependency
hierarchy – may be
70 deep
• Upgrading one
service in this
hierarchy
• Need to consider
both service and its
clients
4
Figure from Netflix Tech Blog
NICTA Copyright 2012 From imagination to impact
Current state of major internet provider
• Each service has an owner
• Every service instance is instrumented
• When a canary is deployed, service owner
examines monitoring data (next slide) and uses
judgment to decide when to move to production.
• Canary testing is currently based on
functionality. No stress testing of canaries.
• Research question – what scientific criteria can
be used to make judgment of when to go into
production?
5
NICTA Copyright 2012 From imagination to impact
Netflix Monitoring Sequence
6
• Client outbound (start/end)
• Network (start/end)
• Service network (inbound start/end)
• Service processing (start/end)
• Service outbound (start/end)
• Network (start/end)
• Client inbound (start/end)
NICTA Copyright 2012 From imagination to impact
Common upgrade strategy
• Require all versions to be backward compatible
with previous versions
• Require changes associated with new version to
be software switchable.
• Clients of a service must be version aware in
order to know whether to utilize new
functionality.
• Once all instances have been upgraded to new
versions, send signal to turn on changes both in
the new version and their clients.
• When using canaries only turn on changes for a
subset of services and their clients. 7
NICTA Copyright 2012 From imagination to impact
Canary Issues
• Canaries are a form of live testing. Put a new
version into limited production to test its
correctness.
• Issues
– How long are new versions tested to determine
correctness?
• Period based – for some period of time
• Load based – under some utilization assumptions
• Result based – until some criteria is met
– How are clients of new version chosen and how is
this choice enforced?
– How are the canaries deployed?
8
NICTA Copyright 2012 From imagination to impact
General Picture
Client
Top Level
load
balancer
Second
level load
balancer
Server for
Version A
Server for
Version A
Server for
Version B
Second
level load
balancer
Server for
Version A
Server for
Version B
9
Client
• Version aware
• Must know about new versions
In order to take advantage of
new functionality
• May be implicitly version aware
based on, e.g. cluster
• Version unaware clients will only use
old functionality and these can be
served by any server since services
are backward compatible.
In addition:
• Load variation may
trigger elasticity rules.
• Deciding whether to
load new version or old
version raises other
issues.
NICTA Copyright 2012 From imagination to impact
More Detail on Upgrade Process
• Canaries are deployed and allowed to run for a
period without turning on new features.
• This is to test backward compatibility.
• Once canaries pass this test, then the new
features are turned on.
10
NICTA Copyright 2012 From imagination to impact
Question 1 – how are clients messages
routed?
• Three cases:
1. Clients are separated, a priori, into those utilizing
new version and those not.
2. Messages are routed arbitrarily by load balancer and
those that are received by new version of service
cause client to be designated as utilizing new
version.
3. All services are capable of being old version or new
version and choose based on version of message
they receive. (seems contrary to canary strategy)
11
NICTA Copyright 2012 From imagination to impact
More Questions
2. After turning on new functionality, how does one decide
that the canaries have been sufficiently functionally
tested for the fixed set of clients
– Are there results from the testing community that
pertain here? I don’t know.
– After answering this question, one can add
additional clients to those being routed to Version B
until the metric available(?) from the testing
community passes some threshold.
3. How can one perform stress testing in a live
environment?
– We are examining a metric called “Performance
Nonscability Likelihood” for its applicability
12
NICTA Copyright 2012 From imagination to impact
Summary
• We have identified the problem of determining when canary testing
is adequate as one that could use more rigor.
• Multiple different strategies for connecting new version clients to
new version services
• Outstanding questions are
– How long before all of the benefit of using canaries has been
realized and the new functionality can be turned on?
– How is stress testing performed?
13
NICTA Copyright 2012 From imagination to impact
Questions/comments
• Len.bass@nicta.com.au
14

More Related Content

Viewers also liked

Architecting for the cloud cloud providers
Architecting for the cloud cloud providersArchitecting for the cloud cloud providers
Architecting for the cloud cloud providersLen Bass
 
Deployability
DeployabilityDeployability
DeployabilityLen Bass
 
Supporting operations personnel a software engineers perspective
Supporting operations personnel a software engineers perspectiveSupporting operations personnel a software engineers perspective
Supporting operations personnel a software engineers perspectiveLen Bass
 
The quality attribute of upgradability
The quality attribute of upgradabilityThe quality attribute of upgradability
The quality attribute of upgradabilityLen Bass
 
WICSA 2012 tutorial
WICSA 2012 tutorialWICSA 2012 tutorial
WICSA 2012 tutorialLen Bass
 
Introduction to dev ops
Introduction to dev opsIntroduction to dev ops
Introduction to dev opsLen Bass
 
Architecting for the cloud scability-availability
Architecting for the cloud scability-availabilityArchitecting for the cloud scability-availability
Architecting for the cloud scability-availabilityLen Bass
 
My first deployment pipeline
My first deployment pipelineMy first deployment pipeline
My first deployment pipelineLen Bass
 
Architecting for the cloud storage build test
Architecting for the cloud storage build testArchitecting for the cloud storage build test
Architecting for the cloud storage build testLen Bass
 
Architecting for the cloud intro, virtualization, iaa s
Architecting for the cloud   intro, virtualization, iaa sArchitecting for the cloud   intro, virtualization, iaa s
Architecting for the cloud intro, virtualization, iaa sLen Bass
 
Architecture for the cloud deployment case study future
Architecture for the cloud deployment case study futureArchitecture for the cloud deployment case study future
Architecture for the cloud deployment case study futureLen Bass
 
Architectural Tactics for Large Scale Systems
Architectural Tactics for Large Scale SystemsArchitectural Tactics for Large Scale Systems
Architectural Tactics for Large Scale SystemsLen Bass
 
Dev ops and safety critical systems
Dev ops and safety critical systemsDev ops and safety critical systems
Dev ops and safety critical systemsLen Bass
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpointsHenry Muccini
 
Principles of software architecture design
Principles of software architecture designPrinciples of software architecture design
Principles of software architecture designLen Bass
 

Viewers also liked (15)

Architecting for the cloud cloud providers
Architecting for the cloud cloud providersArchitecting for the cloud cloud providers
Architecting for the cloud cloud providers
 
Deployability
DeployabilityDeployability
Deployability
 
Supporting operations personnel a software engineers perspective
Supporting operations personnel a software engineers perspectiveSupporting operations personnel a software engineers perspective
Supporting operations personnel a software engineers perspective
 
The quality attribute of upgradability
The quality attribute of upgradabilityThe quality attribute of upgradability
The quality attribute of upgradability
 
WICSA 2012 tutorial
WICSA 2012 tutorialWICSA 2012 tutorial
WICSA 2012 tutorial
 
Introduction to dev ops
Introduction to dev opsIntroduction to dev ops
Introduction to dev ops
 
Architecting for the cloud scability-availability
Architecting for the cloud scability-availabilityArchitecting for the cloud scability-availability
Architecting for the cloud scability-availability
 
My first deployment pipeline
My first deployment pipelineMy first deployment pipeline
My first deployment pipeline
 
Architecting for the cloud storage build test
Architecting for the cloud storage build testArchitecting for the cloud storage build test
Architecting for the cloud storage build test
 
Architecting for the cloud intro, virtualization, iaa s
Architecting for the cloud   intro, virtualization, iaa sArchitecting for the cloud   intro, virtualization, iaa s
Architecting for the cloud intro, virtualization, iaa s
 
Architecture for the cloud deployment case study future
Architecture for the cloud deployment case study futureArchitecture for the cloud deployment case study future
Architecture for the cloud deployment case study future
 
Architectural Tactics for Large Scale Systems
Architectural Tactics for Large Scale SystemsArchitectural Tactics for Large Scale Systems
Architectural Tactics for Large Scale Systems
 
Dev ops and safety critical systems
Dev ops and safety critical systemsDev ops and safety critical systems
Dev ops and safety critical systems
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
 
Principles of software architecture design
Principles of software architecture designPrinciples of software architecture design
Principles of software architecture design
 

Similar to issues with the use of canaries in upgrade

Dev ops for software architects
Dev ops for software architectsDev ops for software architects
Dev ops for software architectsLen Bass
 
Load and performance testing
Load and performance testingLoad and performance testing
Load and performance testingQualitest
 
Deployment model Canary deployment
Deployment model Canary deploymentDeployment model Canary deployment
Deployment model Canary deploymentjeetendra mandal
 
To Upgrade or to Re-implement Dynamics NAV? That is the Question | BDO Connec...
To Upgrade or to Re-implement Dynamics NAV? That is the Question | BDO Connec...To Upgrade or to Re-implement Dynamics NAV? That is the Question | BDO Connec...
To Upgrade or to Re-implement Dynamics NAV? That is the Question | BDO Connec...BDO IT Solutions
 
Deployment Strategies
Deployment StrategiesDeployment Strategies
Deployment StrategiesPiotr Perzyna
 
Advanced Deployment Strategies with Kubernetes and Istio
Advanced Deployment Strategies with Kubernetes and IstioAdvanced Deployment Strategies with Kubernetes and Istio
Advanced Deployment Strategies with Kubernetes and IstioCloudOps2005
 
Functional_Testing_Part-1
Functional_Testing_Part-1Functional_Testing_Part-1
Functional_Testing_Part-1Mithilesh Singh
 
Performance Testing: Putting Cloud Customers Back in the Driver’s Seat
Performance Testing:  Putting Cloud Customers Back in the Driver’s SeatPerformance Testing:  Putting Cloud Customers Back in the Driver’s Seat
Performance Testing: Putting Cloud Customers Back in the Driver’s SeatCompuware APM
 
Creative Automation with Galen Framework
Creative Automation with Galen FrameworkCreative Automation with Galen Framework
Creative Automation with Galen Framework'Ashmeet Sehgal'
 
Failover-Apachecon-Asia-2022.pptx
Failover-Apachecon-Asia-2022.pptxFailover-Apachecon-Asia-2022.pptx
Failover-Apachecon-Asia-2022.pptxDavidKjerrumgaard1
 
Using Agile Approach with Fixed Budget Projects
Using Agile Approach with Fixed Budget ProjectsUsing Agile Approach with Fixed Budget Projects
Using Agile Approach with Fixed Budget ProjectsSynerzip
 
Orchestrating Automated Tests in Different Systems - Please Download to watch...
Orchestrating Automated Tests in Different Systems - Please Download to watch...Orchestrating Automated Tests in Different Systems - Please Download to watch...
Orchestrating Automated Tests in Different Systems - Please Download to watch...Kelvin Silva
 
Ncerc rlmca202 adm m3 ssm
Ncerc rlmca202  adm m3 ssmNcerc rlmca202  adm m3 ssm
Ncerc rlmca202 adm m3 ssmssmarar
 
Software Quality Factors-Non Functional Rq.pptx
Software Quality Factors-Non Functional Rq.pptxSoftware Quality Factors-Non Functional Rq.pptx
Software Quality Factors-Non Functional Rq.pptxsingbling
 
Ncerc rlmca202 adm m4 ssm
Ncerc rlmca202 adm m4 ssmNcerc rlmca202 adm m4 ssm
Ncerc rlmca202 adm m4 ssmssmarar
 
Mobile application testing
Mobile application testingMobile application testing
Mobile application testingparamadeep
 
Advanced engineering practices to achieve higher agility quotient v1.0
Advanced engineering practices to achieve higher agility quotient v1.0Advanced engineering practices to achieve higher agility quotient v1.0
Advanced engineering practices to achieve higher agility quotient v1.0Musarrath Jabeen
 
The art of system and solution testing
The art of system and solution testingThe art of system and solution testing
The art of system and solution testinggaoliang641
 

Similar to issues with the use of canaries in upgrade (20)

Dev ops for software architects
Dev ops for software architectsDev ops for software architects
Dev ops for software architects
 
Load and performance testing
Load and performance testingLoad and performance testing
Load and performance testing
 
Deploying at will - SEI
 Deploying at will - SEI Deploying at will - SEI
Deploying at will - SEI
 
Deployment model Canary deployment
Deployment model Canary deploymentDeployment model Canary deployment
Deployment model Canary deployment
 
To Upgrade or to Re-implement Dynamics NAV? That is the Question | BDO Connec...
To Upgrade or to Re-implement Dynamics NAV? That is the Question | BDO Connec...To Upgrade or to Re-implement Dynamics NAV? That is the Question | BDO Connec...
To Upgrade or to Re-implement Dynamics NAV? That is the Question | BDO Connec...
 
Deployment Strategies
Deployment StrategiesDeployment Strategies
Deployment Strategies
 
Advanced Deployment Strategies with Kubernetes and Istio
Advanced Deployment Strategies with Kubernetes and IstioAdvanced Deployment Strategies with Kubernetes and Istio
Advanced Deployment Strategies with Kubernetes and Istio
 
Functional_Testing_Part-1
Functional_Testing_Part-1Functional_Testing_Part-1
Functional_Testing_Part-1
 
Performance Testing: Putting Cloud Customers Back in the Driver’s Seat
Performance Testing:  Putting Cloud Customers Back in the Driver’s SeatPerformance Testing:  Putting Cloud Customers Back in the Driver’s Seat
Performance Testing: Putting Cloud Customers Back in the Driver’s Seat
 
Creative Automation with Galen Framework
Creative Automation with Galen FrameworkCreative Automation with Galen Framework
Creative Automation with Galen Framework
 
Failover-Apachecon-Asia-2022.pptx
Failover-Apachecon-Asia-2022.pptxFailover-Apachecon-Asia-2022.pptx
Failover-Apachecon-Asia-2022.pptx
 
Using Agile Approach with Fixed Budget Projects
Using Agile Approach with Fixed Budget ProjectsUsing Agile Approach with Fixed Budget Projects
Using Agile Approach with Fixed Budget Projects
 
Orchestrating Automated Tests in Different Systems - Please Download to watch...
Orchestrating Automated Tests in Different Systems - Please Download to watch...Orchestrating Automated Tests in Different Systems - Please Download to watch...
Orchestrating Automated Tests in Different Systems - Please Download to watch...
 
Ncerc rlmca202 adm m3 ssm
Ncerc rlmca202  adm m3 ssmNcerc rlmca202  adm m3 ssm
Ncerc rlmca202 adm m3 ssm
 
Software Quality Factors-Non Functional Rq.pptx
Software Quality Factors-Non Functional Rq.pptxSoftware Quality Factors-Non Functional Rq.pptx
Software Quality Factors-Non Functional Rq.pptx
 
Ncerc rlmca202 adm m4 ssm
Ncerc rlmca202 adm m4 ssmNcerc rlmca202 adm m4 ssm
Ncerc rlmca202 adm m4 ssm
 
Mobile application testing
Mobile application testingMobile application testing
Mobile application testing
 
Advanced engineering practices to achieve higher agility quotient v1.0
Advanced engineering practices to achieve higher agility quotient v1.0Advanced engineering practices to achieve higher agility quotient v1.0
Advanced engineering practices to achieve higher agility quotient v1.0
 
The art of system and solution testing
The art of system and solution testingThe art of system and solution testing
The art of system and solution testing
 
ECNC 2016 - Managing Meter Shops of the Future
ECNC 2016 - Managing Meter Shops of the FutureECNC 2016 - Managing Meter Shops of the Future
ECNC 2016 - Managing Meter Shops of the Future
 

More from Len Bass

Devops syllabus
Devops syllabusDevops syllabus
Devops syllabusLen Bass
 
DevOps Syllabus summer 2020
DevOps Syllabus summer 2020DevOps Syllabus summer 2020
DevOps Syllabus summer 2020Len Bass
 
11 secure development
11  secure development 11  secure development
11 secure development Len Bass
 
10 disaster recovery
10 disaster recovery  10 disaster recovery
10 disaster recovery Len Bass
 
9 postproduction
9 postproduction 9 postproduction
9 postproduction Len Bass
 
8 pipeline
8 pipeline 8 pipeline
8 pipeline Len Bass
 
7 configuration management
7 configuration management 7 configuration management
7 configuration management Len Bass
 
6 microservice architecture
6 microservice architecture6 microservice architecture
6 microservice architectureLen Bass
 
5 infrastructure security
5 infrastructure security5 infrastructure security
5 infrastructure securityLen Bass
 
4 container management
4  container management4  container management
4 container managementLen Bass
 
3 the cloud
3 the cloud 3 the cloud
3 the cloud Len Bass
 
1 virtual machines
1 virtual machines1 virtual machines
1 virtual machinesLen Bass
 
2 networking
2 networking2 networking
2 networkingLen Bass
 
Quantum talk
Quantum talkQuantum talk
Quantum talkLen Bass
 
Icsa2018 blockchain tutorial
Icsa2018 blockchain tutorialIcsa2018 blockchain tutorial
Icsa2018 blockchain tutorialLen Bass
 
Experience in teaching devops
Experience in teaching devopsExperience in teaching devops
Experience in teaching devopsLen Bass
 
Understanding blockchains
Understanding blockchainsUnderstanding blockchains
Understanding blockchainsLen Bass
 
What is a blockchain
What is a blockchainWhat is a blockchain
What is a blockchainLen Bass
 
Architecting for the cloud storage misc topics
Architecting for the cloud storage misc topicsArchitecting for the cloud storage misc topics
Architecting for the cloud storage misc topicsLen Bass
 

More from Len Bass (19)

Devops syllabus
Devops syllabusDevops syllabus
Devops syllabus
 
DevOps Syllabus summer 2020
DevOps Syllabus summer 2020DevOps Syllabus summer 2020
DevOps Syllabus summer 2020
 
11 secure development
11  secure development 11  secure development
11 secure development
 
10 disaster recovery
10 disaster recovery  10 disaster recovery
10 disaster recovery
 
9 postproduction
9 postproduction 9 postproduction
9 postproduction
 
8 pipeline
8 pipeline 8 pipeline
8 pipeline
 
7 configuration management
7 configuration management 7 configuration management
7 configuration management
 
6 microservice architecture
6 microservice architecture6 microservice architecture
6 microservice architecture
 
5 infrastructure security
5 infrastructure security5 infrastructure security
5 infrastructure security
 
4 container management
4  container management4  container management
4 container management
 
3 the cloud
3 the cloud 3 the cloud
3 the cloud
 
1 virtual machines
1 virtual machines1 virtual machines
1 virtual machines
 
2 networking
2 networking2 networking
2 networking
 
Quantum talk
Quantum talkQuantum talk
Quantum talk
 
Icsa2018 blockchain tutorial
Icsa2018 blockchain tutorialIcsa2018 blockchain tutorial
Icsa2018 blockchain tutorial
 
Experience in teaching devops
Experience in teaching devopsExperience in teaching devops
Experience in teaching devops
 
Understanding blockchains
Understanding blockchainsUnderstanding blockchains
Understanding blockchains
 
What is a blockchain
What is a blockchainWhat is a blockchain
What is a blockchain
 
Architecting for the cloud storage misc topics
Architecting for the cloud storage misc topicsArchitecting for the cloud storage misc topics
Architecting for the cloud storage misc topics
 

Recently uploaded

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
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 WorkerThousandEyes
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 

Recently uploaded (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 

issues with the use of canaries in upgrade

  • 1. NICTA Copyright 2012 From imagination to impact Issues with the use of Canaries Len Bass
  • 2. NICTA Copyright 2012 From imagination to impact Goal of Presentation • For you to understand there are interesting problems associated with canaries. • For me to be sure that I understand how canaries are used in practice. • For me to get feedback about appropriate testing results. 2
  • 3. NICTA Copyright 2012 From imagination to impact Various Upgrade Strategies • How many at once? – One at a time (rolling upgrade) – Groups at a time (staged upgrade, e.g. canaries) – All at once (big flip) • What happens to old versions? – Replaced en masse – Maintained for some period for compatibility purposes • This talk will focus on the canary strategy and examine some issues associated with canaries 3
  • 4. NICTA Copyright 2012 From imagination to impact Context • Deep service dependency hierarchy – may be 70 deep • Upgrading one service in this hierarchy • Need to consider both service and its clients 4 Figure from Netflix Tech Blog
  • 5. NICTA Copyright 2012 From imagination to impact Current state of major internet provider • Each service has an owner • Every service instance is instrumented • When a canary is deployed, service owner examines monitoring data (next slide) and uses judgment to decide when to move to production. • Canary testing is currently based on functionality. No stress testing of canaries. • Research question – what scientific criteria can be used to make judgment of when to go into production? 5
  • 6. NICTA Copyright 2012 From imagination to impact Netflix Monitoring Sequence 6 • Client outbound (start/end) • Network (start/end) • Service network (inbound start/end) • Service processing (start/end) • Service outbound (start/end) • Network (start/end) • Client inbound (start/end)
  • 7. NICTA Copyright 2012 From imagination to impact Common upgrade strategy • Require all versions to be backward compatible with previous versions • Require changes associated with new version to be software switchable. • Clients of a service must be version aware in order to know whether to utilize new functionality. • Once all instances have been upgraded to new versions, send signal to turn on changes both in the new version and their clients. • When using canaries only turn on changes for a subset of services and their clients. 7
  • 8. NICTA Copyright 2012 From imagination to impact Canary Issues • Canaries are a form of live testing. Put a new version into limited production to test its correctness. • Issues – How long are new versions tested to determine correctness? • Period based – for some period of time • Load based – under some utilization assumptions • Result based – until some criteria is met – How are clients of new version chosen and how is this choice enforced? – How are the canaries deployed? 8
  • 9. NICTA Copyright 2012 From imagination to impact General Picture Client Top Level load balancer Second level load balancer Server for Version A Server for Version A Server for Version B Second level load balancer Server for Version A Server for Version B 9 Client • Version aware • Must know about new versions In order to take advantage of new functionality • May be implicitly version aware based on, e.g. cluster • Version unaware clients will only use old functionality and these can be served by any server since services are backward compatible. In addition: • Load variation may trigger elasticity rules. • Deciding whether to load new version or old version raises other issues.
  • 10. NICTA Copyright 2012 From imagination to impact More Detail on Upgrade Process • Canaries are deployed and allowed to run for a period without turning on new features. • This is to test backward compatibility. • Once canaries pass this test, then the new features are turned on. 10
  • 11. NICTA Copyright 2012 From imagination to impact Question 1 – how are clients messages routed? • Three cases: 1. Clients are separated, a priori, into those utilizing new version and those not. 2. Messages are routed arbitrarily by load balancer and those that are received by new version of service cause client to be designated as utilizing new version. 3. All services are capable of being old version or new version and choose based on version of message they receive. (seems contrary to canary strategy) 11
  • 12. NICTA Copyright 2012 From imagination to impact More Questions 2. After turning on new functionality, how does one decide that the canaries have been sufficiently functionally tested for the fixed set of clients – Are there results from the testing community that pertain here? I don’t know. – After answering this question, one can add additional clients to those being routed to Version B until the metric available(?) from the testing community passes some threshold. 3. How can one perform stress testing in a live environment? – We are examining a metric called “Performance Nonscability Likelihood” for its applicability 12
  • 13. NICTA Copyright 2012 From imagination to impact Summary • We have identified the problem of determining when canary testing is adequate as one that could use more rigor. • Multiple different strategies for connecting new version clients to new version services • Outstanding questions are – How long before all of the benefit of using canaries has been realized and the new functionality can be turned on? – How is stress testing performed? 13
  • 14. NICTA Copyright 2012 From imagination to impact Questions/comments • Len.bass@nicta.com.au 14