SlideShare uma empresa Scribd logo
1 de 27
Performance as Code - Let’s
Make it a Standard!
Andreas Grabner
It started with “Performance Signature”
Idea came from Thomas Steinmaurer
“Performance Signature”
for Build Nov 16
“Performance Signature”
for Build Nov 17
“Performance Signature”
for every Build
“Multiple Metrics”
compared to prev
Timeframe
Simple Regression Detection
per Metric
used a similarapproach for Jenkins
createdJenkins PerformanceSignaturePlugin
1.8
1.5
250
100
98th Percentile Response Time
Throughput (Request-Count)
> 1.8s Build Failed
> 1.5s Build Warning
< 1.5s Build GOOD
Performance Signature Definition Timeseries Evaluation Build Result
< 100 Build Failed
< 250 Build Warning
> 250 Build GOOD
•
Hereis how Plugin looks in Jenkins
Aggregated per Build
Build to build trends
Full Details per Build
•
I also baked theconcept into the “Unbreakable Pipeline”
1 2 4 53
Production
Staging Approve Staging Production Approve Production
CI CD CI CD CI CD CI CD
Push Context Auto-Quality Gate Push Context Auto-Validate
Auto-Remediate!
Build #17 Build #18
Netflix & Google introducedKayenta
• https://cloud.google.com/blog/products/gcp/introducing-kayenta-an-open-
automated-canary-analysis-tool-from-google-and-netflix
• Automated Scoring of Canary Deployments
Additionalideas in workshop withHenrikRexed (Neotys)
Create Tests based on
Monitoring Data
Push LT Thresholds to
Monitoring for Alerting
Pull Monitoring Data into Test
Results
Let’scombine forces,defineuse cases and createa standard
•
Kayenta
Use Cases for Performance as Code
Use Case #1: PerformanceFeedback to Developers
• Current Feedback Loops: Reactive
• Often driven by Performance Teams that execute tests
• Sharing results with Engineering in case of a issues
• Performance Plugins in CI/CD for Load Testing Data Only
• Proposal: Performance Signature as Code
• Automated Feedback across FullStack Metrics
• Let the engineers define what information they are interested in: load testing, platform
(k8s, CF, OpenShift, …), runtimes (JVM, Node …), dependencies, …
• Version Control it next to their source code
• Pull this data with every commit/build and push it developers (Jenkins, Slack, IDE …)
• Requirement: Metrics Definition tool independent!
Use Case #2: Deployment / Canary Validation
• Current Validation: Reactive
• Looking at Monitoring Dashboards
• Manual process to validate a Quality Gate or Validate Production Deployment
• Proposal: Deployment Score Definition as Code
• Validate on Thresholds and Baseline Definitions
• Define weights on key metrics
• Automate validation of metrics and calculate deployment score
• Can be triggered as a quality gate in CI/CD or continuously evaluated in production
deployments
• Requirement: Metrics Definition for Service Endpoints
Example for #1 & #2:PerformanceSignature(Monitoring)
Dev Team: “Hey Davis, how does deployment Carts17 look like?”
Davis: “Your build score is 95! Here are the key charts for your performance signature!
Want to compare it with a previous build?”
Metric Definition
Signature (Thresholds)
Deployment Score
Signature (Baseline)
Example for #1 & #2:PerformanceSignature(Testing)
Metric Definition Signature (Thresholds)
Endpoint Definition
Use Case #3: Test Generation
• Current: Test Generation separate from Code Generation Process
• Testers record or write test cases after syncing with engineers on testable APIs
• Testers record on an available build of the service/app
• Testers need to update tests in case code changes introduce changes
• Proposal: Endpoint & Workload Definitions as Code
• Engineers define endpoints, expected workload & behavior in code
• Tests can be generated automatically based on definition
• Changes to Definition can automate update of tests as part of commit/Pull Requests
Example for #3
Behavior (Workload)
Test DefinitionEndpoint Definition
Generate
Use Case #4: MonitoringAlertingDefinition
• Current: Dynamic Baselining or manual threshold configuration
• Dynamic Baselining needs time to learn
• Dynamic Baselining is not aware of “expected” performance changes and may result in
initial false/positives
• Maintaining Manual Thresholds doesn’t scale as we move towards continuous
deployment
• Proposal: Baseline Definitions as Code
• Could be take from Load Test Workload Definitions
• Could be generate based on actual accepted load testing results
• Definition becomes part of the Deployment Artifact
• Monitoring tool auto-adjusts baseline settings based on accepted pre-prod values
Example for #4: MonitoringAlertingDefinition
> genspec abcd123.live.dt.com org1000-app2000 mymonspecfile.json
Signature (DT specifics)
Generate Rules
Generate Config
Metric Definition
Use Case #5: Auto-RemediationDefinition
• Current: Operations starts to auto-remediate issues seen in production
• Reactive approach as potential new problems are only automated once they impacted
production once
• For Cloud Native: we see more remediations happening in app-layer (switch feature
flags, canaries, …) which require app-specific remediation actions
• Proposal: App- & Metric-specific remediation actions as Code
• IF / THEN Conditions on metric or baseline violation
• List of proposed Remediation Actions
Example #5: Auto-RemediationDefinition
Push Deployment Event
Use Case #6: Pre-Deploy Environment Checks
• Currently: Many test results invalid due to environment issues
• Depending services not ready
• Other tests running and impacting results
• Configuration mistakes, e.g: pointing to wrong backend database
• Proposal: Expected Environment Definition as Code
• List of Metrics that validate status of “desired state!”
Use Case #7: Event-DrivenPerformancePipelines
• Current: Test results analyzed at end but not during the run
• Slowing down pipeline executions
• Unnecessarily using resources of tests that we know will fail anyway
• Proposal: Continuously evaluate Deployment Score during a Test
• Create Events in case of a current violation
• Testing Tool can consume event and stop/fail test early
• Pipeline can consume events and stop/fail pipeline early
• Events can be pushed to Slack to pro-actively alert engineers on violations
Example #7: Event-DrivenPerformancePipelines
TESTDEV
Push
Monspec
Build &
Deploy
Smoke,
Func Tests
Perf Tests
Deploy &
Push
Monspec
Watchdog/Operator Watchdog/Operator
PROD
Deploy & Push
Monspec
EventsProblem Notifications
Event: ORG-APP-SERVICE
Deploy Event + Define Alerts
Abort Build Build Score! Abort Build Build Score!
Wheredoes “MonSpec/PerfSpec”live?
• #1: Lives in Source Control and pushed to individual tools
• #2: Part of Service Deployment and accessible through endpoint
• Similar to healthprobe endpoints in k8s
• Every tool can query it from the live service instance, e.g: http://myservice/monspec
Discussion
• What use cases have we missed?
• Who is already doing something similar?
• Wo else do we need to talk to / include in this conversation?
Thank you

Mais conteúdo relacionado

Mais procurados

DOES SFO 2016 - Chris Fulton - CD for DBs
DOES SFO 2016 - Chris Fulton - CD for DBsDOES SFO 2016 - Chris Fulton - CD for DBs
DOES SFO 2016 - Chris Fulton - CD for DBs
Gene Kim
 
Performance Engineering
Performance EngineeringPerformance Engineering
Performance Engineering
Kumar Gupta
 

Mais procurados (20)

Lessons Learned Monitoring Production
Lessons Learned Monitoring ProductionLessons Learned Monitoring Production
Lessons Learned Monitoring Production
 
H S
H SH S
H S
 
Functional Testing of RESTful Applications
Functional Testing of RESTful ApplicationsFunctional Testing of RESTful Applications
Functional Testing of RESTful Applications
 
Performance tuning Grails applications
 Performance tuning Grails applications Performance tuning Grails applications
Performance tuning Grails applications
 
Cut your Grails application to pieces - build feature plugins
Cut your Grails application to pieces - build feature pluginsCut your Grails application to pieces - build feature plugins
Cut your Grails application to pieces - build feature plugins
 
Software Architecture for DevOps and Continuous Delivery
Software Architecture for DevOps and Continuous DeliverySoftware Architecture for DevOps and Continuous Delivery
Software Architecture for DevOps and Continuous Delivery
 
[UC4] Version and Automate Everything
[UC4] Version and Automate Everything[UC4] Version and Automate Everything
[UC4] Version and Automate Everything
 
Performance tuning Grails applications
Performance tuning Grails applicationsPerformance tuning Grails applications
Performance tuning Grails applications
 
DOES SFO 2016 - Chris Fulton - CD for DBs
DOES SFO 2016 - Chris Fulton - CD for DBsDOES SFO 2016 - Chris Fulton - CD for DBs
DOES SFO 2016 - Chris Fulton - CD for DBs
 
Parallel run selenium tests in a good way
Parallel run selenium tests in a good  wayParallel run selenium tests in a good  way
Parallel run selenium tests in a good way
 
Devops as a service
Devops as a serviceDevops as a service
Devops as a service
 
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
 
Performance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introPerformance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter intro
 
How Samsung Engineers Do Pre-Commit Builds with Perforce Helix Streams
How Samsung Engineers Do Pre-Commit Builds with Perforce Helix StreamsHow Samsung Engineers Do Pre-Commit Builds with Perforce Helix Streams
How Samsung Engineers Do Pre-Commit Builds with Perforce Helix Streams
 
Post compiler software optimization for reducing energy
Post compiler software optimization for reducing energyPost compiler software optimization for reducing energy
Post compiler software optimization for reducing energy
 
Extreme Makeover OnBase Edition
Extreme Makeover OnBase EditionExtreme Makeover OnBase Edition
Extreme Makeover OnBase Edition
 
Using JMeter in CloudTest for Continuous Testing
Using JMeter in CloudTest for Continuous TestingUsing JMeter in CloudTest for Continuous Testing
Using JMeter in CloudTest for Continuous Testing
 
Performance Engineering
Performance EngineeringPerformance Engineering
Performance Engineering
 
Continuous Performance Testing
Continuous Performance TestingContinuous Performance Testing
Continuous Performance Testing
 
Integration testing in enterprises using TaaS
Integration testing in enterprises using TaaS Integration testing in enterprises using TaaS
Integration testing in enterprises using TaaS
 

Semelhante a Andreas Grabner - Performance as Code, Let's Make It a Standard

Semelhante a Andreas Grabner - Performance as Code, Let's Make It a Standard (20)

Continuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases WeeklyContinuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases Weekly
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 
How to Build a Metrics-optimized Software Delivery Pipeline
How to Build a Metrics-optimized Software Delivery PipelineHow to Build a Metrics-optimized Software Delivery Pipeline
How to Build a Metrics-optimized Software Delivery Pipeline
 
Continuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 MedellinContinuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 Medellin
 
Test automation lessons from WebSphere Application Server
Test automation lessons from WebSphere Application ServerTest automation lessons from WebSphere Application Server
Test automation lessons from WebSphere Application Server
 
Infrastructure and Compliance Delight with Chef Automate
Infrastructure and Compliance Delight with Chef AutomateInfrastructure and Compliance Delight with Chef Automate
Infrastructure and Compliance Delight with Chef Automate
 
CI CD OPS WHATHAVEYOU
CI CD OPS WHATHAVEYOUCI CD OPS WHATHAVEYOU
CI CD OPS WHATHAVEYOU
 
Advanced Continuous Delivery on AWS
Advanced Continuous Delivery on AWSAdvanced Continuous Delivery on AWS
Advanced Continuous Delivery on AWS
 
Continuous Load Testing with CloudTest and Jenkins
Continuous Load Testing with CloudTest and JenkinsContinuous Load Testing with CloudTest and Jenkins
Continuous Load Testing with CloudTest and Jenkins
 
Dev/Test scenarios in DevOps world
Dev/Test scenarios in DevOps worldDev/Test scenarios in DevOps world
Dev/Test scenarios in DevOps world
 
Continuous Integration as a Way of Life
Continuous Integration as a Way of LifeContinuous Integration as a Way of Life
Continuous Integration as a Way of Life
 
Continuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneContinuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOne
 
Devops architecture
Devops architectureDevops architecture
Devops architecture
 
Continuous Load Testing with CloudTest and Jenkins
Continuous Load Testing with CloudTest and JenkinsContinuous Load Testing with CloudTest and Jenkins
Continuous Load Testing with CloudTest and Jenkins
 
Continuous Testing With Terraform
Continuous Testing With TerraformContinuous Testing With Terraform
Continuous Testing With Terraform
 
DevOps with Microsoft Stack
DevOps with Microsoft StackDevOps with Microsoft Stack
DevOps with Microsoft Stack
 
Modernizing Testing as Apps Re-Architect
Modernizing Testing as Apps Re-ArchitectModernizing Testing as Apps Re-Architect
Modernizing Testing as Apps Re-Architect
 
End-end tests as first class citizens - SeleniumConf 2020
End-end tests as first class citizens - SeleniumConf 2020End-end tests as first class citizens - SeleniumConf 2020
End-end tests as first class citizens - SeleniumConf 2020
 
ASIC design verification
ASIC design verificationASIC design verification
ASIC design verification
 
How to Add Perfecto to Your CI
How to Add Perfecto to Your CIHow to Add Perfecto to Your CI
How to Add Perfecto to Your CI
 

Mais de Neotys_Partner

Mais de Neotys_Partner (20)

Leandro Melendez - Switching Performance Left & Right
Leandro Melendez - Switching Performance Left & RightLeandro Melendez - Switching Performance Left & Right
Leandro Melendez - Switching Performance Left & Right
 
Hari Krishnan Ramachandran - Assuring Performance for the Connected World
Hari Krishnan Ramachandran  - Assuring Performance for the Connected WorldHari Krishnan Ramachandran  - Assuring Performance for the Connected World
Hari Krishnan Ramachandran - Assuring Performance for the Connected World
 
Bruno Audoux - Connected Cars to the Net, IoTs on the Roads
Bruno Audoux - Connected Cars to the Net, IoTs on the RoadsBruno Audoux - Connected Cars to the Net, IoTs on the Roads
Bruno Audoux - Connected Cars to the Net, IoTs on the Roads
 
Alexander Podelko - Context-Driven Performance Testing
Alexander Podelko - Context-Driven Performance TestingAlexander Podelko - Context-Driven Performance Testing
Alexander Podelko - Context-Driven Performance Testing
 
Alan Gordon - Building a Holistic Performance Management Platform
Alan Gordon - Building a Holistic Performance Management PlatformAlan Gordon - Building a Holistic Performance Management Platform
Alan Gordon - Building a Holistic Performance Management Platform
 
Twan Koot - Beyond the % usage, an in-depth look into monitoring
Twan Koot - Beyond the % usage, an in-depth look into monitoringTwan Koot - Beyond the % usage, an in-depth look into monitoring
Twan Koot - Beyond the % usage, an in-depth look into monitoring
 
Stijn Schepers - Performance Test Automation Beyond Frontier
Stijn Schepers - Performance Test Automation Beyond FrontierStijn Schepers - Performance Test Automation Beyond Frontier
Stijn Schepers - Performance Test Automation Beyond Frontier
 
Stephen Townshend - Constellations
Stephen Townshend - ConstellationsStephen Townshend - Constellations
Stephen Townshend - Constellations
 
Stefano Doni - Achieve Superhuman Performance with Machine Learning
Stefano Doni - Achieve Superhuman Performance with Machine LearningStefano Doni - Achieve Superhuman Performance with Machine Learning
Stefano Doni - Achieve Superhuman Performance with Machine Learning
 
Neotys PAC 2018 - Gayatree Nalwadad
Neotys PAC 2018 - Gayatree NalwadadNeotys PAC 2018 - Gayatree Nalwadad
Neotys PAC 2018 - Gayatree Nalwadad
 
PAC 2018 - Stijn Schepers
PAC 2018 - Stijn SchepersPAC 2018 - Stijn Schepers
PAC 2018 - Stijn Schepers
 
Neotys PAC 2018 - Helen Bally
Neotys PAC 2018 - Helen BallyNeotys PAC 2018 - Helen Bally
Neotys PAC 2018 - Helen Bally
 
Neotys PAC 2018 - Mark Tomlinson
Neotys PAC 2018 - Mark TomlinsonNeotys PAC 2018 - Mark Tomlinson
Neotys PAC 2018 - Mark Tomlinson
 
Neotys PAC 2018 - Wilson Mar
Neotys PAC 2018 - Wilson MarNeotys PAC 2018 - Wilson Mar
Neotys PAC 2018 - Wilson Mar
 
Neotys PAC - Zak Cole
Neotys PAC - Zak ColeNeotys PAC - Zak Cole
Neotys PAC - Zak Cole
 
Neotys PAC 2018 - Thomas Steinmaurer
Neotys PAC 2018 - Thomas SteinmaurerNeotys PAC 2018 - Thomas Steinmaurer
Neotys PAC 2018 - Thomas Steinmaurer
 
Neotys PAC 2018 - Todd De Capua
Neotys PAC 2018 - Todd De CapuaNeotys PAC 2018 - Todd De Capua
Neotys PAC 2018 - Todd De Capua
 
Neotys PAC 2018 - Tingting Zong
Neotys PAC 2018 - Tingting ZongNeotys PAC 2018 - Tingting Zong
Neotys PAC 2018 - Tingting Zong
 
Neotys PAC 2018 - Thomas Rotté
Neotys PAC 2018 - Thomas RottéNeotys PAC 2018 - Thomas Rotté
Neotys PAC 2018 - Thomas Rotté
 
Neotys PAC 2018 - Stephen Townshend
Neotys PAC 2018 - Stephen TownshendNeotys PAC 2018 - Stephen Townshend
Neotys PAC 2018 - Stephen Townshend
 

Último

CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
anilsa9823
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
anilsa9823
 

Último (20)

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 

Andreas Grabner - Performance as Code, Let's Make It a Standard

  • 1. Performance as Code - Let’s Make it a Standard! Andreas Grabner
  • 2. It started with “Performance Signature”
  • 3. Idea came from Thomas Steinmaurer “Performance Signature” for Build Nov 16 “Performance Signature” for Build Nov 17 “Performance Signature” for every Build “Multiple Metrics” compared to prev Timeframe Simple Regression Detection per Metric
  • 5. createdJenkins PerformanceSignaturePlugin 1.8 1.5 250 100 98th Percentile Response Time Throughput (Request-Count) > 1.8s Build Failed > 1.5s Build Warning < 1.5s Build GOOD Performance Signature Definition Timeseries Evaluation Build Result < 100 Build Failed < 250 Build Warning > 250 Build GOOD •
  • 6. Hereis how Plugin looks in Jenkins Aggregated per Build Build to build trends Full Details per Build •
  • 7. I also baked theconcept into the “Unbreakable Pipeline” 1 2 4 53 Production Staging Approve Staging Production Approve Production CI CD CI CD CI CD CI CD Push Context Auto-Quality Gate Push Context Auto-Validate Auto-Remediate! Build #17 Build #18
  • 8. Netflix & Google introducedKayenta • https://cloud.google.com/blog/products/gcp/introducing-kayenta-an-open- automated-canary-analysis-tool-from-google-and-netflix • Automated Scoring of Canary Deployments
  • 9. Additionalideas in workshop withHenrikRexed (Neotys) Create Tests based on Monitoring Data Push LT Thresholds to Monitoring for Alerting Pull Monitoring Data into Test Results
  • 10. Let’scombine forces,defineuse cases and createa standard • Kayenta
  • 11. Use Cases for Performance as Code
  • 12. Use Case #1: PerformanceFeedback to Developers • Current Feedback Loops: Reactive • Often driven by Performance Teams that execute tests • Sharing results with Engineering in case of a issues • Performance Plugins in CI/CD for Load Testing Data Only • Proposal: Performance Signature as Code • Automated Feedback across FullStack Metrics • Let the engineers define what information they are interested in: load testing, platform (k8s, CF, OpenShift, …), runtimes (JVM, Node …), dependencies, … • Version Control it next to their source code • Pull this data with every commit/build and push it developers (Jenkins, Slack, IDE …) • Requirement: Metrics Definition tool independent!
  • 13. Use Case #2: Deployment / Canary Validation • Current Validation: Reactive • Looking at Monitoring Dashboards • Manual process to validate a Quality Gate or Validate Production Deployment • Proposal: Deployment Score Definition as Code • Validate on Thresholds and Baseline Definitions • Define weights on key metrics • Automate validation of metrics and calculate deployment score • Can be triggered as a quality gate in CI/CD or continuously evaluated in production deployments • Requirement: Metrics Definition for Service Endpoints
  • 14. Example for #1 & #2:PerformanceSignature(Monitoring) Dev Team: “Hey Davis, how does deployment Carts17 look like?” Davis: “Your build score is 95! Here are the key charts for your performance signature! Want to compare it with a previous build?” Metric Definition Signature (Thresholds) Deployment Score
  • 15. Signature (Baseline) Example for #1 & #2:PerformanceSignature(Testing) Metric Definition Signature (Thresholds) Endpoint Definition
  • 16. Use Case #3: Test Generation • Current: Test Generation separate from Code Generation Process • Testers record or write test cases after syncing with engineers on testable APIs • Testers record on an available build of the service/app • Testers need to update tests in case code changes introduce changes • Proposal: Endpoint & Workload Definitions as Code • Engineers define endpoints, expected workload & behavior in code • Tests can be generated automatically based on definition • Changes to Definition can automate update of tests as part of commit/Pull Requests
  • 17. Example for #3 Behavior (Workload) Test DefinitionEndpoint Definition Generate
  • 18. Use Case #4: MonitoringAlertingDefinition • Current: Dynamic Baselining or manual threshold configuration • Dynamic Baselining needs time to learn • Dynamic Baselining is not aware of “expected” performance changes and may result in initial false/positives • Maintaining Manual Thresholds doesn’t scale as we move towards continuous deployment • Proposal: Baseline Definitions as Code • Could be take from Load Test Workload Definitions • Could be generate based on actual accepted load testing results • Definition becomes part of the Deployment Artifact • Monitoring tool auto-adjusts baseline settings based on accepted pre-prod values
  • 19. Example for #4: MonitoringAlertingDefinition > genspec abcd123.live.dt.com org1000-app2000 mymonspecfile.json Signature (DT specifics) Generate Rules Generate Config Metric Definition
  • 20. Use Case #5: Auto-RemediationDefinition • Current: Operations starts to auto-remediate issues seen in production • Reactive approach as potential new problems are only automated once they impacted production once • For Cloud Native: we see more remediations happening in app-layer (switch feature flags, canaries, …) which require app-specific remediation actions • Proposal: App- & Metric-specific remediation actions as Code • IF / THEN Conditions on metric or baseline violation • List of proposed Remediation Actions
  • 22. Use Case #6: Pre-Deploy Environment Checks • Currently: Many test results invalid due to environment issues • Depending services not ready • Other tests running and impacting results • Configuration mistakes, e.g: pointing to wrong backend database • Proposal: Expected Environment Definition as Code • List of Metrics that validate status of “desired state!”
  • 23. Use Case #7: Event-DrivenPerformancePipelines • Current: Test results analyzed at end but not during the run • Slowing down pipeline executions • Unnecessarily using resources of tests that we know will fail anyway • Proposal: Continuously evaluate Deployment Score during a Test • Create Events in case of a current violation • Testing Tool can consume event and stop/fail test early • Pipeline can consume events and stop/fail pipeline early • Events can be pushed to Slack to pro-actively alert engineers on violations
  • 24. Example #7: Event-DrivenPerformancePipelines TESTDEV Push Monspec Build & Deploy Smoke, Func Tests Perf Tests Deploy & Push Monspec Watchdog/Operator Watchdog/Operator PROD Deploy & Push Monspec EventsProblem Notifications Event: ORG-APP-SERVICE Deploy Event + Define Alerts Abort Build Build Score! Abort Build Build Score!
  • 25. Wheredoes “MonSpec/PerfSpec”live? • #1: Lives in Source Control and pushed to individual tools • #2: Part of Service Deployment and accessible through endpoint • Similar to healthprobe endpoints in k8s • Every tool can query it from the live service instance, e.g: http://myservice/monspec
  • 26. Discussion • What use cases have we missed? • Who is already doing something similar? • Wo else do we need to talk to / include in this conversation?