SlideShare a Scribd company logo
1 of 31
Download to read offline
CONTINUOUS
DELIVERY WHILE
MINIMISING
PERFORMANCE
RISKS
INTRODUCTION
OBJECTIVE

Put working software into production as quickly as possible,
whilst minimising risk of load-related problems:

›   Bad response times
›   Too small capacity
›   Availability too low
›   Excessive system resource use
PREVENTING RISK IS A BIG SUBJECT,
WHAT FOLLOWS IS TAKEN FROM OUR EXPERIENCE
RISK PREVENTION IS A BIG SUBJECT




     Photo by chillihead: www.flickr.com/photos/chillihead/1778980935
CONTINUOUS DELIVERY LITERATURE PROVIDES METHODS
THAT HELP REDUCE RISK

›   Blue-green deployments
›   Dark launching
›   Feature toggles
›   Canary releasing
›   Production immune systems




                       Jez Humble, http://continuousdelivery.com
BUT LEGACY SYSTEMS OFTEN LACK THE REQUIRED
RESILIENCE
WHILE WE WORK ON OUR RESILIENCE, WE USE LOAD TESTS
TO HELP IDENTIFY THE BIGGEST RISKS
PRE-PROD LOAD TESTING IS NOT FREE


›   Extra code to maintain

›   Usually test runs last several hours

›   A production-like environment is expensive

›   Realistic testing is hard

›   Not all developers like writing (performance) tests
USE IT WISELY, WHERE PRODUCTION TESTING IS STILL
INAPPROPRIATE

›   It provides no guarantee

›   Use it to find any showstoppers you can

›   Essentially, an optional service that teams can use
USE IT AS A PLAYGROUND TO TRY RISKY CHANGES




        Photo by vastateparksstaff: www.flickr.com/photos/vastateparksstaff/5330257235
Load tests


              Functional
Build, unit
              integration
 test, etc.
                 tests


Very often    Less often    About once a day
                               (at night)
Load tests


              Functional
Build, unit                      Load test
              integration
 test, etc.                     script check
                 tests


Very often              Less often             About once a day
                                                  (at night)
THE AIM IS NOT PERFECTION, GO FOR “AS REALISTIC AS
NEEDED”
SET UP TEST DATA IN THE WEEKEND, TO MINIMIZE
DISRUPTION
WHEN IS A PROBLEM REALLY A PROBLEM?
FIND AN OBJECTIVE WAY TO JUDGE YOUR FINDINGS
ESTABLISH REQUIREMENTS TO MAKE CLEAR WHAT IS
ACCEPTABLE

›   Seen from the main stakeholders’ perspective
    – Response time: users
    – System resources: ops
    – Capacity: business
›   Specific
›   Measurable
›   Achievable
›   Relevant
Concurrent users



                             Fail:              Now:            Target:
                             < 100k             150k            200k




Intention: The website should at least be    Stakeholder: Business
able to manage our typical daily load, but
we would like some margin for growth
and marketing campaigns.

Scale: Maximum load in a day, while          Meter: Session table row count.
response times are still according to
spec.
FOR RESPONSE TIMES TOO, FOCUS ON THE
MAIN STAKEHOLDER!

 FOR RESPONSE TIMES TOO, FOCUS ON THE MAIN
 STAKEHOLDER!
SO USE A REAL BROWSER TO TEST
A REAL USER’S EXPERIENCE
Response time   Fail      [Today]    Target
Homepage.FV     > 6 sec    3.9 sec    2 sec
Homepage.RV     > 5 sec    2.8 sec    1 sec
Checkout.FV     > 8 sec    6.5 sec    2 sec
Details.FV      > 6 sec    1.9 sec    2 sec
Details.RV      > 5 sec    1.7 sec    1 sec
Search.FV       > 6 sec    4.8 sec    2 sec
Search.RV       > 5 sec    3.7 sec    1 sec
Cart.FV         > 6 sec    4.4 sec    2 sec
Cart.RV         > 5 sec    3.4 sec    1 sec
LoginForm.FV    > 6 sec    3.5 sec    2 sec
LoginForm.RV    > 5 sec    2.5 sec    1 sec
TO MAKE COMPARING SENSIBLE, MAKE YOUR TESTS
DETERMINISTIC

Stub systems that you have no control over
LOAD TESTING SHOULD BE OPTIONAL, THE ONLY THING
THAT COUNTS IS PRODUCTION!

›   Your definition of done should reflect that

›   The aim is to get early feedback from a safe environment
ANYTHING YOU FIND IS AN OPPORTUNITY TO FIX MORE
THAN ONE PROBLEM
SO WHAT MONITORING IS TYPICALLY NEEDED?

›   Be able to localise where latency is coming from!
    – For every system, all incoming and outgoing calls (count and
       time spent stats)
›   Finite resources (pools, CPU, I/O, etc.)
›   Number of active users
›   Response size, where possible
›   Add whatever you need


It should be identical on all environments!
SET CLEAR TARGETS, SO YOU KNOW YOUR SITUATION

›   How many errors would be OK in production?
›   What kind of errors do we care about?
Number of stale server session requests /
                          min




              50


        0
                     100
                            150
                                                                   250
                                                                         300




                                                             200
00:00
01:00
02:00
03:00
04:00
05:00
06:00
07:00
08:00
09:00
10:00
11:00
12:00
13:00
                             Other servers taken out of LB




14:00
15:00
16:00
17:00
18:00
19:00
20:00
21:00
                             back in LB




22:00
                             Other servers




23:00
00:00
CONCLUSION

Support your continuous delivery process with optional load
tests and strong specs.

Use the load tests to identify some pain points, so you can
modify the code and add monitoring, making it safer to do
dark releases and canary testing in production.

Constantly ask yourself: what would it take to only do this in
production? Is it adding value?
QUESTIONS?



             athomas@xebia.com
             @a32an
             www.xebia.com
             blog.xebia.com

             (we’re hiring)

More Related Content

What's hot

My Web Performance Dirty Secrets
My Web Performance Dirty SecretsMy Web Performance Dirty Secrets
My Web Performance Dirty SecretsFred Beringer
 
Best Practices in Mobile CI (webinar)
Best Practices in Mobile CI (webinar)Best Practices in Mobile CI (webinar)
Best Practices in Mobile CI (webinar)Sauce Labs
 
A Very Biased Comparison of MVC Libraries
A Very Biased Comparison of MVC LibrariesA Very Biased Comparison of MVC Libraries
A Very Biased Comparison of MVC LibrariesBrian Moschel
 
Performance Testing for Mobile Apps & Sites using Apache JMeter
Performance Testing for Mobile Apps & Sites using Apache JMeterPerformance Testing for Mobile Apps & Sites using Apache JMeter
Performance Testing for Mobile Apps & Sites using Apache JMeterAlon Girmonsky
 
Speed up your Serverless development flow
Speed up your Serverless development flowSpeed up your Serverless development flow
Speed up your Serverless development flowEfi Merdler-Kravitz
 
Test at Scale within your Internal Networks with BrowserStack Local Testing
Test at Scale within your Internal Networks with BrowserStack Local TestingTest at Scale within your Internal Networks with BrowserStack Local Testing
Test at Scale within your Internal Networks with BrowserStack Local TestingBrowserStack
 
How to Cover All Your Backend Testing Needs with API and UI Tests
How to Cover All Your Backend Testing Needs with API and UI TestsHow to Cover All Your Backend Testing Needs with API and UI Tests
How to Cover All Your Backend Testing Needs with API and UI TestsBlazeMeter
 
Working With People Adl Uni
Working With People Adl UniWorking With People Adl Uni
Working With People Adl UniMatthew Landauer
 
My Little Webap - DevOpsSec is Magic
My Little Webap - DevOpsSec is MagicMy Little Webap - DevOpsSec is Magic
My Little Webap - DevOpsSec is MagicApollo Clark
 
Selenium Shots by Kyle J. Ginavan & Ryan Felton
Selenium Shots by Kyle J. Ginavan & Ryan FeltonSelenium Shots by Kyle J. Ginavan & Ryan Felton
Selenium Shots by Kyle J. Ginavan & Ryan FeltonSteven Chau
 
London web perfug_performancefocused_devops_feb2014
London web perfug_performancefocused_devops_feb2014London web perfug_performancefocused_devops_feb2014
London web perfug_performancefocused_devops_feb2014Andreas Grabner
 
OOP 2016 - Faster releases and simpler operations
OOP 2016 - Faster releases and simpler operationsOOP 2016 - Faster releases and simpler operations
OOP 2016 - Faster releases and simpler operationsRoman Spitzbart
 
Architecting for Enterprise with JavaScript
Architecting for Enterprise with JavaScriptArchitecting for Enterprise with JavaScript
Architecting for Enterprise with JavaScriptKurtis Kemple
 
Continuous Testing in the Agile Age
Continuous Testing in the Agile AgeContinuous Testing in the Agile Age
Continuous Testing in the Agile AgeBlazeMeter
 
Ship quality mobile apps with speed [Webinar]
Ship quality mobile apps with speed [Webinar]Ship quality mobile apps with speed [Webinar]
Ship quality mobile apps with speed [Webinar]BrowserStack
 
Optimise Your VMware Costs
Optimise Your VMware CostsOptimise Your VMware Costs
Optimise Your VMware CostsStuart Hayward
 
DevOps goes Mobile (daho.am)
DevOps goes Mobile (daho.am)DevOps goes Mobile (daho.am)
DevOps goes Mobile (daho.am)Wooga
 
Prediction of Amazon Review Rating by using Amazon Review
Prediction of Amazon Review Rating by using Amazon ReviewPrediction of Amazon Review Rating by using Amazon Review
Prediction of Amazon Review Rating by using Amazon ReviewTaeseung Lee
 

What's hot (20)

My Web Performance Dirty Secrets
My Web Performance Dirty SecretsMy Web Performance Dirty Secrets
My Web Performance Dirty Secrets
 
Best Practices in Mobile CI (webinar)
Best Practices in Mobile CI (webinar)Best Practices in Mobile CI (webinar)
Best Practices in Mobile CI (webinar)
 
A Very Biased Comparison of MVC Libraries
A Very Biased Comparison of MVC LibrariesA Very Biased Comparison of MVC Libraries
A Very Biased Comparison of MVC Libraries
 
Profilling client performance
Profilling client performanceProfilling client performance
Profilling client performance
 
Performance Testing for Mobile Apps & Sites using Apache JMeter
Performance Testing for Mobile Apps & Sites using Apache JMeterPerformance Testing for Mobile Apps & Sites using Apache JMeter
Performance Testing for Mobile Apps & Sites using Apache JMeter
 
Speed up your Serverless development flow
Speed up your Serverless development flowSpeed up your Serverless development flow
Speed up your Serverless development flow
 
presentation-chaos-monkey
presentation-chaos-monkeypresentation-chaos-monkey
presentation-chaos-monkey
 
Test at Scale within your Internal Networks with BrowserStack Local Testing
Test at Scale within your Internal Networks with BrowserStack Local TestingTest at Scale within your Internal Networks with BrowserStack Local Testing
Test at Scale within your Internal Networks with BrowserStack Local Testing
 
How to Cover All Your Backend Testing Needs with API and UI Tests
How to Cover All Your Backend Testing Needs with API and UI TestsHow to Cover All Your Backend Testing Needs with API and UI Tests
How to Cover All Your Backend Testing Needs with API and UI Tests
 
Working With People Adl Uni
Working With People Adl UniWorking With People Adl Uni
Working With People Adl Uni
 
My Little Webap - DevOpsSec is Magic
My Little Webap - DevOpsSec is MagicMy Little Webap - DevOpsSec is Magic
My Little Webap - DevOpsSec is Magic
 
Selenium Shots by Kyle J. Ginavan & Ryan Felton
Selenium Shots by Kyle J. Ginavan & Ryan FeltonSelenium Shots by Kyle J. Ginavan & Ryan Felton
Selenium Shots by Kyle J. Ginavan & Ryan Felton
 
London web perfug_performancefocused_devops_feb2014
London web perfug_performancefocused_devops_feb2014London web perfug_performancefocused_devops_feb2014
London web perfug_performancefocused_devops_feb2014
 
OOP 2016 - Faster releases and simpler operations
OOP 2016 - Faster releases and simpler operationsOOP 2016 - Faster releases and simpler operations
OOP 2016 - Faster releases and simpler operations
 
Architecting for Enterprise with JavaScript
Architecting for Enterprise with JavaScriptArchitecting for Enterprise with JavaScript
Architecting for Enterprise with JavaScript
 
Continuous Testing in the Agile Age
Continuous Testing in the Agile AgeContinuous Testing in the Agile Age
Continuous Testing in the Agile Age
 
Ship quality mobile apps with speed [Webinar]
Ship quality mobile apps with speed [Webinar]Ship quality mobile apps with speed [Webinar]
Ship quality mobile apps with speed [Webinar]
 
Optimise Your VMware Costs
Optimise Your VMware CostsOptimise Your VMware Costs
Optimise Your VMware Costs
 
DevOps goes Mobile (daho.am)
DevOps goes Mobile (daho.am)DevOps goes Mobile (daho.am)
DevOps goes Mobile (daho.am)
 
Prediction of Amazon Review Rating by using Amazon Review
Prediction of Amazon Review Rating by using Amazon ReviewPrediction of Amazon Review Rating by using Amazon Review
Prediction of Amazon Review Rating by using Amazon Review
 

Viewers also liked

Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...
Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...
Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...Dave Olsen
 
Content Strategy for Mobile: The Workshop
Content Strategy for Mobile: The WorkshopContent Strategy for Mobile: The Workshop
Content Strategy for Mobile: The WorkshopKaren McGrane
 
Analysing articles double page spread
Analysing articles double page spreadAnalysing articles double page spread
Analysing articles double page spreadasmediag12
 
3 negative effects of climate change
3  negative effects of climate change3  negative effects of climate change
3 negative effects of climate changehfonfe
 
2)design idea’s for my music magazine
2)design idea’s for my music magazine2)design idea’s for my music magazine
2)design idea’s for my music magazineasmediag12
 
Ways to minimise performance risks in continuous delivery
Ways to minimise performance risks in continuous deliveryWays to minimise performance risks in continuous delivery
Ways to minimise performance risks in continuous deliverya32an
 

Viewers also liked (10)

Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...
Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...
Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...
 
Cache is King
Cache is KingCache is King
Cache is King
 
Content Strategy for Mobile: The Workshop
Content Strategy for Mobile: The WorkshopContent Strategy for Mobile: The Workshop
Content Strategy for Mobile: The Workshop
 
Liking performance
Liking performanceLiking performance
Liking performance
 
Analysing articles double page spread
Analysing articles double page spreadAnalysing articles double page spread
Analysing articles double page spread
 
3 negative effects of climate change
3  negative effects of climate change3  negative effects of climate change
3 negative effects of climate change
 
My Genre
My GenreMy Genre
My Genre
 
2)design idea’s for my music magazine
2)design idea’s for my music magazine2)design idea’s for my music magazine
2)design idea’s for my music magazine
 
Q7
Q7Q7
Q7
 
Ways to minimise performance risks in continuous delivery
Ways to minimise performance risks in continuous deliveryWays to minimise performance risks in continuous delivery
Ways to minimise performance risks in continuous delivery
 

Similar to Continuous delivery while minimizing performance risks

Twiliocon Europe 2013: From PoC to Production, Lessons Learnt, by Erol Ziya &...
Twiliocon Europe 2013: From PoC to Production, Lessons Learnt, by Erol Ziya &...Twiliocon Europe 2013: From PoC to Production, Lessons Learnt, by Erol Ziya &...
Twiliocon Europe 2013: From PoC to Production, Lessons Learnt, by Erol Ziya &...eazynow
 
Stress Test as a Culture
Stress Test as a CultureStress Test as a Culture
Stress Test as a CultureJoão Moura
 
Automated Scaling of Microservice Stacks for JavaEE Applications
Automated Scaling of Microservice Stacks for JavaEE ApplicationsAutomated Scaling of Microservice Stacks for JavaEE Applications
Automated Scaling of Microservice Stacks for JavaEE ApplicationsJelastic Multi-Cloud PaaS
 
AutoScaling and Drupal
AutoScaling and DrupalAutoScaling and Drupal
AutoScaling and DrupalPromet Source
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous DeploymentBrian Henerey
 
Pushing the Bottleneck: Predicting and Addressing the Next, Next Thing
Pushing the Bottleneck: Predicting and Addressing the Next, Next ThingPushing the Bottleneck: Predicting and Addressing the Next, Next Thing
Pushing the Bottleneck: Predicting and Addressing the Next, Next ThingIBM UrbanCode Products
 
Engineering Velocity @indeed eng presented on Sept 24 2014 at Beyond Agile
Engineering Velocity @indeed eng presented on Sept 24 2014 at Beyond AgileEngineering Velocity @indeed eng presented on Sept 24 2014 at Beyond Agile
Engineering Velocity @indeed eng presented on Sept 24 2014 at Beyond AgileKenAtIndeed
 
System insight without Interference
System insight without InterferenceSystem insight without Interference
System insight without InterferenceTony Tam
 
Security as Code: DOES15
Security as Code: DOES15Security as Code: DOES15
Security as Code: DOES15Ed Bellis
 
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!Andreas Grabner
 
[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise Applications[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise ApplicationsDaniel Oh
 
Bootstrapping - Session 1 - Your First Week with Amazon EC2
Bootstrapping - Session 1 - Your First Week with Amazon EC2Bootstrapping - Session 1 - Your First Week with Amazon EC2
Bootstrapping - Session 1 - Your First Week with Amazon EC2Amazon Web Services
 
Continues Deployment - Tech Talk week
Continues Deployment - Tech Talk weekContinues Deployment - Tech Talk week
Continues Deployment - Tech Talk weekrantav
 
AWS Startup Webinar | Developing on AWS
AWS Startup Webinar | Developing on AWSAWS Startup Webinar | Developing on AWS
AWS Startup Webinar | Developing on AWSAmazon Web Services
 
SysAdmin to SRE: Solving the Last Mile Problem
SysAdmin to SRE: Solving the Last Mile ProblemSysAdmin to SRE: Solving the Last Mile Problem
SysAdmin to SRE: Solving the Last Mile ProblemRundeck
 
Five (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryFive (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryEberhard Wolff
 
FUEL_USERS_GROUP
FUEL_USERS_GROUPFUEL_USERS_GROUP
FUEL_USERS_GROUPWill Pearce
 

Similar to Continuous delivery while minimizing performance risks (20)

Twiliocon Europe 2013: From PoC to Production, Lessons Learnt, by Erol Ziya &...
Twiliocon Europe 2013: From PoC to Production, Lessons Learnt, by Erol Ziya &...Twiliocon Europe 2013: From PoC to Production, Lessons Learnt, by Erol Ziya &...
Twiliocon Europe 2013: From PoC to Production, Lessons Learnt, by Erol Ziya &...
 
DevOps in an Embedded World
DevOps in an Embedded WorldDevOps in an Embedded World
DevOps in an Embedded World
 
Stress Test as a Culture
Stress Test as a CultureStress Test as a Culture
Stress Test as a Culture
 
Automated Scaling of Microservice Stacks for JavaEE Applications
Automated Scaling of Microservice Stacks for JavaEE ApplicationsAutomated Scaling of Microservice Stacks for JavaEE Applications
Automated Scaling of Microservice Stacks for JavaEE Applications
 
AutoScaling and Drupal
AutoScaling and DrupalAutoScaling and Drupal
AutoScaling and Drupal
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
Pushing the Bottleneck: Predicting and Addressing the Next, Next Thing
Pushing the Bottleneck: Predicting and Addressing the Next, Next ThingPushing the Bottleneck: Predicting and Addressing the Next, Next Thing
Pushing the Bottleneck: Predicting and Addressing the Next, Next Thing
 
Engineering Velocity @indeed eng presented on Sept 24 2014 at Beyond Agile
Engineering Velocity @indeed eng presented on Sept 24 2014 at Beyond AgileEngineering Velocity @indeed eng presented on Sept 24 2014 at Beyond Agile
Engineering Velocity @indeed eng presented on Sept 24 2014 at Beyond Agile
 
NYC MeetUp 10.9
NYC MeetUp 10.9NYC MeetUp 10.9
NYC MeetUp 10.9
 
System insight without Interference
System insight without InterferenceSystem insight without Interference
System insight without Interference
 
Security as Code: DOES15
Security as Code: DOES15Security as Code: DOES15
Security as Code: DOES15
 
VMware Solutions
VMware SolutionsVMware Solutions
VMware Solutions
 
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
 
[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise Applications[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise Applications
 
Bootstrapping - Session 1 - Your First Week with Amazon EC2
Bootstrapping - Session 1 - Your First Week with Amazon EC2Bootstrapping - Session 1 - Your First Week with Amazon EC2
Bootstrapping - Session 1 - Your First Week with Amazon EC2
 
Continues Deployment - Tech Talk week
Continues Deployment - Tech Talk weekContinues Deployment - Tech Talk week
Continues Deployment - Tech Talk week
 
AWS Startup Webinar | Developing on AWS
AWS Startup Webinar | Developing on AWSAWS Startup Webinar | Developing on AWS
AWS Startup Webinar | Developing on AWS
 
SysAdmin to SRE: Solving the Last Mile Problem
SysAdmin to SRE: Solving the Last Mile ProblemSysAdmin to SRE: Solving the Last Mile Problem
SysAdmin to SRE: Solving the Last Mile Problem
 
Five (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryFive (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous Delivery
 
FUEL_USERS_GROUP
FUEL_USERS_GROUPFUEL_USERS_GROUP
FUEL_USERS_GROUP
 

Recently uploaded

Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Nikki Chapple
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialJoão Esperancinha
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 

Recently uploaded (20)

Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorial
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 

Continuous delivery while minimizing performance risks

  • 3. OBJECTIVE Put working software into production as quickly as possible, whilst minimising risk of load-related problems: › Bad response times › Too small capacity › Availability too low › Excessive system resource use
  • 4. PREVENTING RISK IS A BIG SUBJECT, WHAT FOLLOWS IS TAKEN FROM OUR EXPERIENCE RISK PREVENTION IS A BIG SUBJECT Photo by chillihead: www.flickr.com/photos/chillihead/1778980935
  • 5. CONTINUOUS DELIVERY LITERATURE PROVIDES METHODS THAT HELP REDUCE RISK › Blue-green deployments › Dark launching › Feature toggles › Canary releasing › Production immune systems Jez Humble, http://continuousdelivery.com
  • 6. BUT LEGACY SYSTEMS OFTEN LACK THE REQUIRED RESILIENCE
  • 7. WHILE WE WORK ON OUR RESILIENCE, WE USE LOAD TESTS TO HELP IDENTIFY THE BIGGEST RISKS
  • 8. PRE-PROD LOAD TESTING IS NOT FREE › Extra code to maintain › Usually test runs last several hours › A production-like environment is expensive › Realistic testing is hard › Not all developers like writing (performance) tests
  • 9.
  • 10. USE IT WISELY, WHERE PRODUCTION TESTING IS STILL INAPPROPRIATE › It provides no guarantee › Use it to find any showstoppers you can › Essentially, an optional service that teams can use
  • 11. USE IT AS A PLAYGROUND TO TRY RISKY CHANGES Photo by vastateparksstaff: www.flickr.com/photos/vastateparksstaff/5330257235
  • 12. Load tests Functional Build, unit integration test, etc. tests Very often Less often About once a day (at night)
  • 13. Load tests Functional Build, unit Load test integration test, etc. script check tests Very often Less often About once a day (at night)
  • 14. THE AIM IS NOT PERFECTION, GO FOR “AS REALISTIC AS NEEDED”
  • 15. SET UP TEST DATA IN THE WEEKEND, TO MINIMIZE DISRUPTION
  • 16. WHEN IS A PROBLEM REALLY A PROBLEM?
  • 17. FIND AN OBJECTIVE WAY TO JUDGE YOUR FINDINGS
  • 18. ESTABLISH REQUIREMENTS TO MAKE CLEAR WHAT IS ACCEPTABLE › Seen from the main stakeholders’ perspective – Response time: users – System resources: ops – Capacity: business › Specific › Measurable › Achievable › Relevant
  • 19. Concurrent users Fail: Now: Target: < 100k 150k 200k Intention: The website should at least be Stakeholder: Business able to manage our typical daily load, but we would like some margin for growth and marketing campaigns. Scale: Maximum load in a day, while Meter: Session table row count. response times are still according to spec.
  • 20. FOR RESPONSE TIMES TOO, FOCUS ON THE MAIN STAKEHOLDER! FOR RESPONSE TIMES TOO, FOCUS ON THE MAIN STAKEHOLDER!
  • 21. SO USE A REAL BROWSER TO TEST A REAL USER’S EXPERIENCE
  • 22. Response time Fail [Today] Target Homepage.FV > 6 sec 3.9 sec 2 sec Homepage.RV > 5 sec 2.8 sec 1 sec Checkout.FV > 8 sec 6.5 sec 2 sec Details.FV > 6 sec 1.9 sec 2 sec Details.RV > 5 sec 1.7 sec 1 sec Search.FV > 6 sec 4.8 sec 2 sec Search.RV > 5 sec 3.7 sec 1 sec Cart.FV > 6 sec 4.4 sec 2 sec Cart.RV > 5 sec 3.4 sec 1 sec LoginForm.FV > 6 sec 3.5 sec 2 sec LoginForm.RV > 5 sec 2.5 sec 1 sec
  • 23.
  • 24. TO MAKE COMPARING SENSIBLE, MAKE YOUR TESTS DETERMINISTIC Stub systems that you have no control over
  • 25. LOAD TESTING SHOULD BE OPTIONAL, THE ONLY THING THAT COUNTS IS PRODUCTION! › Your definition of done should reflect that › The aim is to get early feedback from a safe environment
  • 26. ANYTHING YOU FIND IS AN OPPORTUNITY TO FIX MORE THAN ONE PROBLEM
  • 27. SO WHAT MONITORING IS TYPICALLY NEEDED? › Be able to localise where latency is coming from! – For every system, all incoming and outgoing calls (count and time spent stats) › Finite resources (pools, CPU, I/O, etc.) › Number of active users › Response size, where possible › Add whatever you need It should be identical on all environments!
  • 28. SET CLEAR TARGETS, SO YOU KNOW YOUR SITUATION › How many errors would be OK in production? › What kind of errors do we care about?
  • 29. Number of stale server session requests / min 50 0 100 150 250 300 200 00:00 01:00 02:00 03:00 04:00 05:00 06:00 07:00 08:00 09:00 10:00 11:00 12:00 13:00 Other servers taken out of LB 14:00 15:00 16:00 17:00 18:00 19:00 20:00 21:00 back in LB 22:00 Other servers 23:00 00:00
  • 30. CONCLUSION Support your continuous delivery process with optional load tests and strong specs. Use the load tests to identify some pain points, so you can modify the code and add monitoring, making it safer to do dark releases and canary testing in production. Constantly ask yourself: what would it take to only do this in production? Is it adding value?
  • 31. QUESTIONS? athomas@xebia.com @a32an www.xebia.com blog.xebia.com (we’re hiring)