SlideShare a Scribd company logo
1 of 40
Releasing Fast Code




The DevOps Approach to Performance
Why Agile Development took off
It‘s Sprint Time
Story Points




                               Developme    Testing
               Estimate            nt                   Sprint Timeline
                                           Production
               Remaining
               Team Velocity
You are in control
Story Points




                               Developme    Testing
               Estimate            nt                   Sprint Timeline
                                           Production
               Remaining
               Team Velocity
What happened?
Story Points




                               Developme    Testing
               Estimate            nt                   Sprint Timeline
                                           Production
               Remaining
               Team Velocity
Missed Goals and Estimates
Story Points




                                                                 Estimates
                                                                  Missed
                               Developme    Testing
               Estimate            nt
                                           Production   Missed
               Remaining                                 Goal
               Team Velocity
What is the Status Quo beyond Dev?




Source: http://dev2ops.org/blog/2010/2/22/what-is-devops.html
Problem #1: Different Mindset




Source: http://dev2ops.org/blog/2010/2/22/what-is-devops.html
Problem #2: Dislocated Teams




Source: http://dev2ops.org/blog/2010/2/22/what-is-devops.html
Problem #2: Different Tools




Source: http://dev2ops.org/blog/2010/2/22/what-is-devops.html
Problem #4: Over the Fence Attitude




Source: http://dev2ops.org/blog/2010/2/22/what-is-devops.html
These Problems lead to …




Source: http://dev2ops.org/blog/2010/2/22/what-is-devops.html
A potential Solution




Source: http://dev2ops.org/blog/2010/2/22/what-is-devops.html
Real World           Perf Test in
 Feedback             CI
             ONE
Cloud based Toolset    Architecture
                       Validation
Testing

  Test in
  Production     Traditional
                 Load
                 Testing
Performance in Continuous Integration
Identify Performance Regressions Early
Tip: Stable Environment
Tip: Exclude Garbage Collection
Architecture Validation

                          Analyze your existing Unit Tests




                            Validate against your Arch Rules
Learn how foreign code works

• Get insight into whats going on „under the hood“
    • Understand internals of the frameworks you use
    • Choose the right usage for your use case
Traditional Load Testing
takes too long in an agile process
   time
                                       Sprint 1
                           Starts with Dev and dedicated
                              Time for Test at the End




            Update Test                Setup                 Run Tests
              Scripts               Environment

           Adapt Scripts            Re Run Tests           Feedback to Dev
                                                                             Testing extends sprints
                                                                              Consumes too many
                                                                                Dev Resources
                                      Sprint 2
           Re Run Tests            Feedback to Dev          Ready for Ops




          Either postponed or impacted because Dev Resources
              are still occopuied with testing of previous sprint
Common Mistakes


Only use Sample Data

                        No Server Side Data

Wrong Think Times

                     Overloaded Load Agents

No Error Detection

                        Infrastructure Issues
Load Testing needs to be „real“

  Real Size and Content
                                Real Third Party Code
Real Infrastructure Setup




                 No Guarantees!
                                  Real Load

  Real Number of Users
Minimize and automate real Load Tests
Developing

               Test Run     Reproduction   Refine Capturing


             Re Run Tests   Reproduction   Refine Capturing     Multiple Test Iterations
                                                                 needed to analyze
                                                                      Root-cause

             Re Run Tests   Reproduction   Problem Analysis

                                                              Problem Solving


                                                                                time




Developing

               Test Run     Reproduction   Refine Capturing


             Re Run Tests   Reproduction   Refine Capturing      •Eliminates Test Iterations
                                                                 •Go directly to problem analysis
                                                                 •Frees up resources for other proje

             Re Run Tests   Reproduction   Problem Analysis

                                                              Problem Solving


                                                                                time
Tip: Measure more than Response Time
Tip: Identify Scalabilty Problems


 Response time




                                                       Presentation Layer




                                Presentation Layer
                                                         Business Logic
          Presentation Layer
                                  Business Logic
           Business Logic


        Web Service/Remoting   Web Service/Remoting   Web Service/Remoting


             Data Access           Data Access            Data Access


           Minimum Load          Medium Load             Maximum Load
Incresing Load Test is your friend
Tip: Identify Regressions on Code Level
Tip: Get as granular data as possible
Test in your Production Environment




                         Real Environment
                         Real Validity
                         Less Cost
Scenario 1: Use Production Hardware


     Real Users


                                Production Environment




    Virtual Users       LB/FW    Web Server   App Server   DB




                    Route Incoming       Use some machines
                        Traffic          during off hours for
                                               testing
Scenario 2: Duplicate Traffic



     Real Users
                                 Production Environment




                        LB/FW     Web Server   App Server   DB




                    Send incoming
                  traffic to Prod and
                  Testing Machines
Scenario 3: Partial Update



     Real Users
                          Production Environment




                  LB/FW    Web Server   App Server    DB




                  Update some machines to the version that
                             should be tested
Use Cloud based Testing Services

         Real End User Time
CDN                                Proxies

 High                              Control
Volume                              Costs


  Last Mile           Load Balancers
APM in Production
Understand your production environment
Focus on areas with biggest impact
160
140
120
100
 80
                                 Number of Sales
 60
                                 No of Users
 40
 20
  0

                 Response Time




                                 Transaction Load
ONE set of Tools

 Communication




                   Collaboration
Brave new World

WE ARE NEVER DONE…




                …WE CONSTANTLY IMPROVE
Michael Kopp
michael.kopp@dynaTrace.com
http://blog.dynatrace.com
@mikopp

More Related Content

What's hot

IP Reuse Impact on Design Verification Management Across the Enterprise
IP Reuse Impact on Design Verification Management Across the EnterpriseIP Reuse Impact on Design Verification Management Across the Enterprise
IP Reuse Impact on Design Verification Management Across the Enterprise
DVClub
 
SystemVerilog Assertions (SVA) in the Design/Verification Process
SystemVerilog Assertions (SVA) in the Design/Verification ProcessSystemVerilog Assertions (SVA) in the Design/Verification Process
SystemVerilog Assertions (SVA) in the Design/Verification Process
DVClub
 
Pivotal Labs Open View Presentation Continuous Build
Pivotal Labs Open View Presentation Continuous BuildPivotal Labs Open View Presentation Continuous Build
Pivotal Labs Open View Presentation Continuous Build
guestc8adce
 
Software Design for Testability
Software Design for TestabilitySoftware Design for Testability
Software Design for Testability
amr0mt
 

What's hot (20)

Automate your way to agility
Automate your way to agilityAutomate your way to agility
Automate your way to agility
 
Whipp q3 2008_sv
Whipp q3 2008_svWhipp q3 2008_sv
Whipp q3 2008_sv
 
Agile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveAgile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer Perspective
 
IP Reuse Impact on Design Verification Management Across the Enterprise
IP Reuse Impact on Design Verification Management Across the EnterpriseIP Reuse Impact on Design Verification Management Across the Enterprise
IP Reuse Impact on Design Verification Management Across the Enterprise
 
Agile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai CultureAgile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai Culture
 
Best practice adoption (and lack there of)
Best practice adoption (and lack there of)Best practice adoption (and lack there of)
Best practice adoption (and lack there of)
 
Parasoft Concerto A complete ALM platform that ensures quality software can b...
Parasoft Concerto A complete ALM platform that ensures quality software can b...Parasoft Concerto A complete ALM platform that ensures quality software can b...
Parasoft Concerto A complete ALM platform that ensures quality software can b...
 
Setting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile AppSetting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile App
 
Introduction to Acceptance Test Driven Development
Introduction to Acceptance Test Driven DevelopmentIntroduction to Acceptance Test Driven Development
Introduction to Acceptance Test Driven Development
 
SystemVerilog Assertions (SVA) in the Design/Verification Process
SystemVerilog Assertions (SVA) in the Design/Verification ProcessSystemVerilog Assertions (SVA) in the Design/Verification Process
SystemVerilog Assertions (SVA) in the Design/Verification Process
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Agile Testing Introduction
Agile Testing IntroductionAgile Testing Introduction
Agile Testing Introduction
 
Pivotal Labs Open View Presentation Continuous Build
Pivotal Labs Open View Presentation Continuous BuildPivotal Labs Open View Presentation Continuous Build
Pivotal Labs Open View Presentation Continuous Build
 
Atdd half day_new_1_up
Atdd half day_new_1_upAtdd half day_new_1_up
Atdd half day_new_1_up
 
Software Design for Testability
Software Design for TestabilitySoftware Design for Testability
Software Design for Testability
 
An Introduction to Dependency Injection
An Introduction to Dependency InjectionAn Introduction to Dependency Injection
An Introduction to Dependency Injection
 
Ci tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsCi tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepins
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project success
 
Постоянное тестирование интеграции
Постоянное тестирование интеграцииПостоянное тестирование интеграции
Постоянное тестирование интеграции
 

Viewers also liked

Viewers also liked (6)

The China Analyst March 2011
The China Analyst   March 2011The China Analyst   March 2011
The China Analyst March 2011
 
Kinc Design and Fabrication Studio
Kinc Design and Fabrication StudioKinc Design and Fabrication Studio
Kinc Design and Fabrication Studio
 
The China Analyst September 2011
The China Analyst   September 2011The China Analyst   September 2011
The China Analyst September 2011
 
What does performance mean in the cloud
What does performance mean in the cloudWhat does performance mean in the cloud
What does performance mean in the cloud
 
JAX 2011 - Garbage collection verstehen
JAX 2011 - Garbage collection verstehenJAX 2011 - Garbage collection verstehen
JAX 2011 - Garbage collection verstehen
 
World wide web
World wide webWorld wide web
World wide web
 

Similar to Releasing fast code - The DevOps approach

Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
Michael Palotas
 
Automated testing DrupalCamp in Asheville
Automated testing DrupalCamp in AshevilleAutomated testing DrupalCamp in Asheville
Automated testing DrupalCamp in Asheville
Promet Source
 
Linuxtag 2012 - continuous delivery - dream to reality
Linuxtag 2012  - continuous delivery - dream to realityLinuxtag 2012  - continuous delivery - dream to reality
Linuxtag 2012 - continuous delivery - dream to reality
Clément Escoffier
 
David Nuescheler: Igniting CQ 5.3: What's New and Roadmap
David Nuescheler: Igniting CQ 5.3: What's New and RoadmapDavid Nuescheler: Igniting CQ 5.3: What's New and Roadmap
David Nuescheler: Igniting CQ 5.3: What's New and Roadmap
Day Software
 

Similar to Releasing fast code - The DevOps approach (20)

Faster apps. faster time to market. faster mean time to repair
Faster apps. faster time to market. faster mean time to repairFaster apps. faster time to market. faster mean time to repair
Faster apps. faster time to market. faster mean time to repair
 
Agile Open Source Performance Test Workshop for Developers, Testers, IT Ops
Agile Open Source Performance Test Workshop for Developers, Testers, IT OpsAgile Open Source Performance Test Workshop for Developers, Testers, IT Ops
Agile Open Source Performance Test Workshop for Developers, Testers, IT Ops
 
Chef for DevOps - an Introduction
Chef for DevOps - an IntroductionChef for DevOps - an Introduction
Chef for DevOps - an Introduction
 
Agile Open Source Performance Testing Workshop for Business Managers
Agile Open Source Performance Testing Workshop for Business ManagersAgile Open Source Performance Testing Workshop for Business Managers
Agile Open Source Performance Testing Workshop for Business Managers
 
Discovery delivery 中国软件技术大会2011
Discovery delivery 中国软件技术大会2011Discovery delivery 中国软件技术大会2011
Discovery delivery 中国软件技术大会2011
 
Testing Sap: Modern Methodology
Testing Sap: Modern MethodologyTesting Sap: Modern Methodology
Testing Sap: Modern Methodology
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
 
Unosquare SlideShare Presentation
Unosquare SlideShare PresentationUnosquare SlideShare Presentation
Unosquare SlideShare Presentation
 
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall ProjectsICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
 
Beyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and SubversionBeyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and Subversion
 
Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model
 
Automated testing DrupalCamp in Asheville
Automated testing DrupalCamp in AshevilleAutomated testing DrupalCamp in Asheville
Automated testing DrupalCamp in Asheville
 
Linuxtag 2012 - continuous delivery - dream to reality
Linuxtag 2012  - continuous delivery - dream to realityLinuxtag 2012  - continuous delivery - dream to reality
Linuxtag 2012 - continuous delivery - dream to reality
 
David Nuescheler: Igniting CQ 5.3: What's New and Roadmap
David Nuescheler: Igniting CQ 5.3: What's New and RoadmapDavid Nuescheler: Igniting CQ 5.3: What's New and Roadmap
David Nuescheler: Igniting CQ 5.3: What's New and Roadmap
 
Eswaranand Attuluri CV
Eswaranand Attuluri CVEswaranand Attuluri CV
Eswaranand Attuluri CV
 
Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery Overview
 
Software Quality Plan
Software Quality PlanSoftware Quality Plan
Software Quality Plan
 
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011
 
Agile Testing, Uncertainty, Risk, and Why It All Works
Agile Testing, Uncertainty, Risk, and Why It All WorksAgile Testing, Uncertainty, Risk, and Why It All Works
Agile Testing, Uncertainty, Risk, and Why It All Works
 

Recently uploaded

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
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
Enterprise Knowledge
 

Recently uploaded (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
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 future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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
 
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
 

Releasing fast code - The DevOps approach

  • 1. Releasing Fast Code The DevOps Approach to Performance
  • 3. It‘s Sprint Time Story Points Developme Testing Estimate nt Sprint Timeline Production Remaining Team Velocity
  • 4. You are in control Story Points Developme Testing Estimate nt Sprint Timeline Production Remaining Team Velocity
  • 5. What happened? Story Points Developme Testing Estimate nt Sprint Timeline Production Remaining Team Velocity
  • 6. Missed Goals and Estimates Story Points Estimates Missed Developme Testing Estimate nt Production Missed Remaining Goal Team Velocity
  • 7. What is the Status Quo beyond Dev? Source: http://dev2ops.org/blog/2010/2/22/what-is-devops.html
  • 8. Problem #1: Different Mindset Source: http://dev2ops.org/blog/2010/2/22/what-is-devops.html
  • 9. Problem #2: Dislocated Teams Source: http://dev2ops.org/blog/2010/2/22/what-is-devops.html
  • 10. Problem #2: Different Tools Source: http://dev2ops.org/blog/2010/2/22/what-is-devops.html
  • 11. Problem #4: Over the Fence Attitude Source: http://dev2ops.org/blog/2010/2/22/what-is-devops.html
  • 12. These Problems lead to … Source: http://dev2ops.org/blog/2010/2/22/what-is-devops.html
  • 13. A potential Solution Source: http://dev2ops.org/blog/2010/2/22/what-is-devops.html
  • 14. Real World Perf Test in Feedback CI ONE Cloud based Toolset Architecture Validation Testing Test in Production Traditional Load Testing
  • 18. Tip: Exclude Garbage Collection
  • 19. Architecture Validation Analyze your existing Unit Tests Validate against your Arch Rules
  • 20. Learn how foreign code works • Get insight into whats going on „under the hood“ • Understand internals of the frameworks you use • Choose the right usage for your use case
  • 21. Traditional Load Testing takes too long in an agile process time Sprint 1 Starts with Dev and dedicated Time for Test at the End Update Test Setup Run Tests Scripts Environment Adapt Scripts Re Run Tests Feedback to Dev Testing extends sprints Consumes too many Dev Resources Sprint 2 Re Run Tests Feedback to Dev Ready for Ops Either postponed or impacted because Dev Resources are still occopuied with testing of previous sprint
  • 22. Common Mistakes Only use Sample Data No Server Side Data Wrong Think Times Overloaded Load Agents No Error Detection Infrastructure Issues
  • 23. Load Testing needs to be „real“ Real Size and Content Real Third Party Code Real Infrastructure Setup No Guarantees! Real Load Real Number of Users
  • 24. Minimize and automate real Load Tests Developing Test Run Reproduction Refine Capturing Re Run Tests Reproduction Refine Capturing Multiple Test Iterations needed to analyze Root-cause Re Run Tests Reproduction Problem Analysis Problem Solving time Developing Test Run Reproduction Refine Capturing Re Run Tests Reproduction Refine Capturing •Eliminates Test Iterations •Go directly to problem analysis •Frees up resources for other proje Re Run Tests Reproduction Problem Analysis Problem Solving time
  • 25. Tip: Measure more than Response Time
  • 26. Tip: Identify Scalabilty Problems Response time Presentation Layer Presentation Layer Business Logic Presentation Layer Business Logic Business Logic Web Service/Remoting Web Service/Remoting Web Service/Remoting Data Access Data Access Data Access Minimum Load Medium Load Maximum Load
  • 27. Incresing Load Test is your friend
  • 28. Tip: Identify Regressions on Code Level
  • 29. Tip: Get as granular data as possible
  • 30. Test in your Production Environment Real Environment Real Validity Less Cost
  • 31. Scenario 1: Use Production Hardware Real Users Production Environment Virtual Users LB/FW Web Server App Server DB Route Incoming Use some machines Traffic during off hours for testing
  • 32. Scenario 2: Duplicate Traffic Real Users Production Environment LB/FW Web Server App Server DB Send incoming traffic to Prod and Testing Machines
  • 33. Scenario 3: Partial Update Real Users Production Environment LB/FW Web Server App Server DB Update some machines to the version that should be tested
  • 34. Use Cloud based Testing Services Real End User Time CDN Proxies High Control Volume Costs Last Mile Load Balancers
  • 37. Focus on areas with biggest impact 160 140 120 100 80 Number of Sales 60 No of Users 40 20 0 Response Time Transaction Load
  • 38. ONE set of Tools Communication Collaboration
  • 39. Brave new World WE ARE NEVER DONE… …WE CONSTANTLY IMPROVE

Editor's Notes

  1. Agile developmentallowstoreact on changedrequirements (technicalandbusiness) fasterReducestheriskofworkingtoolong in thewrongdirectionProvides a „Potential ReleasableProduct“ after every Sprint/IterationIncludesTesting Practices intothe Development LifecycleAutomatesmanytasks such asBuild, FunctionalTestingandprogressreporting (Burn-Down Chart, …)In short, betterquality, lessrisk, fasterreaction time
  2. Let‘slookathow a typical Sprint/Iteration works …
  3. Atevery time weknowwherewe stand in termsoffunctionality – until -
  4. Wegettotestingorproductionwherewe find out thatweeitherhavetogo back and fix problemsidentifiedunderloadorwhenwehavemajorissues in a prodenvironment
  5. The resultisthatwe will miss our Goal andwehadwrongestimates
  6. LoadTestingandProduction. Often a separate organization.Firstlythismeanswe do not leveragetheadvantageof agile fully. We do not deliverthespeedofchangetothebusinessandthustothecustomer.In a normal shelfproductthismightbefine, ifyouoperate a SAAS oreComercesiteitreducesyourabilitytocompete.Apart fromthatthereare also severalproblemswiththehardsplitbetweenthetwosides. Twooftenmore separate organizationsleadto…
  7. Functionality vs. StabilitySeparate teams, different mindset, different incentives. Operationsispaidtokeepthignsstableandrunningwhiledevelopmentistoaddnewfeatures. The funny thingis, thatoperationsisdrivenbycustomerdemands but does not wanttoaddbusinessfunctionalitytobetercompete.Dev on theothersidewantstoaddnewfunctionality all the time, but they lack theexperiencewiththecustomer. They lack the real worldproblems.
  8. Distributed Teams makeithardtocoordinateMakescommunication all thathearder. Timezones, langugae different culture in additionto an already different mindset
  9. Even worse, ifwewanttocommunicatesomething, thetechnologyis not compatible. Different monitoring, analysistools
  10. All ofthisleadsto …I am done – nowyoudeployit
  11. Not a surprise – isit?
  12. holistic approach to software deliveryPromoteColocationofteamsinsteadofspreadingthemaroundtheworldimaginetheguyrunninganddeployingyourappsitsnexttoyou. Thatwouldmake a lotstuffeasierOneToolsetReduces a lotofoverheadconvertingdata. Reducesmaintaince time. Andyouwouldmakesuretoreuseconfigurationofsaymonitoringfromautomatictest in prod, andfromautomaticbuildandtesttodeploythestufffor real.Agile DevlieryandDeploymentDeliverythe agile promisedirectlytothebusinessandcustomer. React in dayswithnewfeatures. Therearebigonesthat do that. (google, facebooktonametwo)ONE TEAM thatisresponsiblefor a Product (FromDevtoOps)Ifthereis a problem,theguyresponsibleisyou
  13. Solution ProposalsCenteredaroundOneToolsetwehave different continuoustasks
  14. Automatic, Detect Change – reuseyourexisting Unit TestsBE AWARE thatweare not necesarilymeasuring Performance/Execution Time here -> doesntmake sense forshortrunning Unit Tests. On thosewefocus on theinternals, e.g.: Database Statements andseehowtheychangeover time (regression)Perfearly, insidethecycle. This wayitispartofthesprint not outside. Itisautomted so itdoes not introduce additional effort.
  15. Besidesfocusing on theinternaldynamicsofthetestedcomponentswecanruncertainsetsof real performancetests in CIThis exampleshowshowdynaTraceinternallyrunsperformancetests on criticalfeature on everybuildExplaintheidentifiedproblems …
  16. In ordertorunperformancetests in CI itisimporttofollowsomegroundrulesUnit testsneedtohave a certainexecution time lengthMakesurethatyouhave a stableenvironment -> tip: runseveralwarm-upteststoensureenvironmentisstable -> thenrun real test
  17. In Java/.NET itisimportanttoexclude volatile externalfactors such asGarbageCollection Time
  18. Themoreinterestingusecase in CI isArchitecture Validation wherewehave a verycloselookatwhatisgoing on withinthetestedcomponents.Byanalyzingthedynamiccodeexecutionwecanvalidatecertainrulesthataredefinedbythe Software Architects, e.g.: Onlymakeasycnhronousremotingcalls, only X DB Calls per transaction, …Havingthetools in placeallowyoutoautomaticallyverifytheserulesagainstyourunitorfunctionaltests
  19. Weseemoreandmoreexternalcodebeingused – whichis a goodthing – but canhave a bigimpact on performanceifwe do not understandtheinternals
  20. Toomucheffortforscriptmaintenance, settingupthetestenvironmentCostsfortestingtoolsandtestenvironmentTest cycletakeslongerthanreserved in thesprint. Feedback todevscomeswhentheyarealready in thenextsprint
  21. Sample Data: smalldatabaseswith sample datais not realistic. Canttestcaching, access time todatabase, …OverloadedAgents: LoadTestingAgentsare just usedtoproduceloadwithoutverifyingiftheycanproducetherequestedloadWrong Think Times: Think Times areeither not setcorrectlytoreflect real usersortheyareavoidedtoincreaseload -> thats not realisticeitherInfrastructure Issues: doesthe Test Infrastructure provideenoughbandwidth, resources, … to handle theload? Isthereanythingelserunning on theinfrastructurethatmayinterfere?No Error Detection: Missing Content Verificationleadstoincorrectresults. A Page thatresponds super fast but alwaysyresponds „pleasecome back later“ is a problemNo Server Side Data: veryoftenpeopleforgettocollectserversidemetrics such as CPU, Network, I/O, Logfiles, …
  22. classical loadtestingtest environment that tries to be as close to production as possible (size/users/data vs. reality)test scripts with transactions that we expect (but we know we shouldexpecttheunexpected. Never happens)TRIES TO REBUILD TO REAL WORLD -> HUGE EFFORT!!Result: no real guarantee that what has been tested really works in prodProblems:Testing on not frozen Code Base -> Results of Testing are available not before mid or end of NEXT Sprint -> Results are outdated!HArd to get real life Production Load BehaviorMore changes in application lead to more effort in testing (script maintenance, regression analysis, ...)Size ofenvironmentNumberof UsersTransaction Mix
  23. Rerun, additional dataAdding log statemetnsandstatistics in code, errorprone.First, automatethestuff.Second, captureenoughfromthebeginning. (traces, BTM)Dynamic Capture all the time.Overhead discussion 5-10Benefits of Agile and DevOpsShorter iterations with fewer changes leads to reduced effort in testingfewer script maintenance changes, higher quality smoke test, easier regression analysis,more focused testing on the areas that have changed
  24. Makesurewecaptureenoughinfrastructuredata – not just responsetimes. This helpsustoget a quick overviewoftheproblematicareas
  25. In ordertoidentifyproblematiccomponentsorservicesitsrecommendedtorun different loadandseewhichcomponentsscaleandwhichdont
  26. You do not onlyrunoneloadtest in a devcycle. Yourunmanyandalwayswanttoseewhathaschanged.Itisthereforeimportanttocomparetestresults. Critical hereisthatwehaveteststhatwecancompareandthatwehavedatathatiscomparable
  27. Inthe end itisthedeveloperthatneedstolookattheproblem. The more granular transactionaldatawecanprovidetheeasiertoanalyzeand fix theproblem.ProfilingandTracing Solutions becamevery powerful andallowdeeptracing also duringload.
  28. Real environment, real validityLesscost, lessmaintaince,lesseffort.Yoursystem will bemoststableandyou will learnperformancemanagement.Test during off-hours/off-daysorduringmaintainencecyclesOff peaktimesnewversiontestloadtestingPart ofproductionwithnewversionShadow production, trafficduplication
  29. During off hourswetakesomeoftheproductionmachines out ofthecluster, installthetestversion on it, configuretheloadbalancerandrunloadagainstitusing a loadtestingtoolThis allowsustotest on real hardware
  30. This is not alwayspossible – depending on thechanges in thesoftware. This howeverisgreattotestpatches on howtheybehave. Inboundtrafficisduplicated. Wecanverifyifweseeanyfunctionalproblemsaswellashowtheperformancecomparestothe „current“ system
  31. In thiscasewe update a setofmachineswith a newversion/patch. The loadbalancerisconfiguredto route certainuserstothenewmachinestotest out howthisworks.
  32. Testing real numberofusers, with real loadand on yourproductionwith real contentSimulatenumberofusersasyoucouldn‘tyourselfReal end userperformanceIfyouknowwhereyouruserbaseis, testfromthereSee localdifferencesAt a fractionofthecost, ist on demand.Letthemmaintaintheirscripts, concentrate on yourproductLeverageserviceslikekeynoteandgomes. Simulate real userload, and not like in loadtesting just transactionload.provisioning in the cloud -> dynamic resources -> cater for millions of users
  33. Knowwhat‘sreallygoing onReal problemsNoreproductionOptimzebased on what‘s realNoguess – just factsDirectfeedbacktodevUseProductiontoanalyzetheperformance. Reactto real problems. Noreproduction.Tune andoptimzebased on real worldtransactionanduserload.We solve the "Black Box View" of the test departmentWe dont know the insight of the app -> so what shall we look for?We dont know how the real prod evnrionment looks like -> so how shall we know if it works in prod or notAPM in Produktion --> fast feedback to dev (same team anyway?), agile cycles allow formsquick fixesless change, smaller errors, faster solution
  34. The real environmentisalways different thanwhatyouhadtested. Thereforeitisimportanttoanalyzethesystemandseehowtransactionsflowandwheretheymighthave a problemThis allowsyoutofocus on thoseservices/componentsthathave a problem in real life
  35. Analyzingthebusinessimpactofyourappsperformanceisimportanttoprioritizeyourtroubleshootingactivities
  36. Kreis mit pfeilen, mitte ein tool, communicationbarrier, objectivness, lessmaintaincePerformance analysisPerformance testingPerformance monitoringvalidation
  37. Agile + DevOps + CAPMChanged Testing Mindest -> WE ARE NEVER DONE -> WE CONSTANTLY IMPROVE