SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

Lessons Learned Monitoring Production
Lessons Learned Monitoring ProductionLessons Learned Monitoring Production
Lessons Learned Monitoring ProductionAviran Mordo
 
Functional Testing of RESTful Applications
Functional Testing of RESTful ApplicationsFunctional Testing of RESTful Applications
Functional Testing of RESTful ApplicationsNenad Bozic
 
Performance tuning Grails applications
 Performance tuning Grails applications Performance tuning Grails applications
Performance tuning Grails applicationsGR8Conf
 
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 pluginsGR8Conf
 
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 DeliveryEberhard Wolff
 
[UC4] Version and Automate Everything
[UC4] Version and Automate Everything[UC4] Version and Automate Everything
[UC4] Version and Automate EverythingPerforce
 
Performance tuning Grails applications
Performance tuning Grails applicationsPerformance tuning Grails applications
Performance tuning Grails applicationsLari Hotari
 
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 DBsGene Kim
 
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 wayCOMAQA.BY
 
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...COMAQA.BY
 
Performance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introPerformance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introMykola Kovsh
 
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 StreamsPerforce
 
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 energyAbhishek Abhyankar
 
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 TestingSOASTA
 
Performance Engineering
Performance EngineeringPerformance Engineering
Performance EngineeringKumar Gupta
 
Continuous Performance Testing
Continuous Performance TestingContinuous Performance Testing
Continuous Performance TestingGrid Dynamics
 
Integration testing in enterprises using TaaS
Integration testing in enterprises using TaaS Integration testing in enterprises using TaaS
Integration testing in enterprises using TaaS Anand Bagmar
 

Tendances (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
 

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

Continuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases WeeklyContinuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases WeeklyRightScale
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOpsEklove Mohan
 
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 PipelineDynatrace
 
Continuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 MedellinContinuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 MedellinDiego Garber
 
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 ServerRobbie Minshall
 
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 AutomateMatt Ray
 
CI CD OPS WHATHAVEYOU
CI CD OPS WHATHAVEYOUCI CD OPS WHATHAVEYOU
CI CD OPS WHATHAVEYOUHanokh Aloni
 
Advanced Continuous Delivery on AWS
Advanced Continuous Delivery on AWSAdvanced Continuous Delivery on AWS
Advanced Continuous Delivery on AWSAmazon Web Services
 
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 JenkinsSOASTA
 
Dev/Test scenarios in DevOps world
Dev/Test scenarios in DevOps worldDev/Test scenarios in DevOps world
Dev/Test scenarios in DevOps worldDavide Benvegnù
 
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 LifeMelissa Benua
 
Continuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneContinuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneciberkleid
 
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 JenkinsSOASTA
 
DevOps with Microsoft Stack
DevOps with Microsoft StackDevOps with Microsoft Stack
DevOps with Microsoft StackDeepti Jain
 
Modernizing Testing as Apps Re-Architect
Modernizing Testing as Apps Re-ArchitectModernizing Testing as Apps Re-Architect
Modernizing Testing as Apps Re-ArchitectDevOps.com
 
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 2020Abhijeet Vaikar
 

Similaire à 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
 

Plus de Neotys_Partner

Leandro Melendez - Switching Performance Left & Right
Leandro Melendez - Switching Performance Left & RightLeandro Melendez - Switching Performance Left & Right
Leandro Melendez - Switching Performance Left & RightNeotys_Partner
 
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 WorldNeotys_Partner
 
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 RoadsNeotys_Partner
 
Alexander Podelko - Context-Driven Performance Testing
Alexander Podelko - Context-Driven Performance TestingAlexander Podelko - Context-Driven Performance Testing
Alexander Podelko - Context-Driven Performance TestingNeotys_Partner
 
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 PlatformNeotys_Partner
 
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 monitoringNeotys_Partner
 
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 FrontierNeotys_Partner
 
Stephen Townshend - Constellations
Stephen Townshend - ConstellationsStephen Townshend - Constellations
Stephen Townshend - ConstellationsNeotys_Partner
 
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 LearningNeotys_Partner
 
Neotys PAC 2018 - Gayatree Nalwadad
Neotys PAC 2018 - Gayatree NalwadadNeotys PAC 2018 - Gayatree Nalwadad
Neotys PAC 2018 - Gayatree NalwadadNeotys_Partner
 
PAC 2018 - Stijn Schepers
PAC 2018 - Stijn SchepersPAC 2018 - Stijn Schepers
PAC 2018 - Stijn SchepersNeotys_Partner
 
Neotys PAC 2018 - Helen Bally
Neotys PAC 2018 - Helen BallyNeotys PAC 2018 - Helen Bally
Neotys PAC 2018 - Helen BallyNeotys_Partner
 
Neotys PAC 2018 - Mark Tomlinson
Neotys PAC 2018 - Mark TomlinsonNeotys PAC 2018 - Mark Tomlinson
Neotys PAC 2018 - Mark TomlinsonNeotys_Partner
 
Neotys PAC 2018 - Wilson Mar
Neotys PAC 2018 - Wilson MarNeotys PAC 2018 - Wilson Mar
Neotys PAC 2018 - Wilson MarNeotys_Partner
 
Neotys PAC 2018 - Thomas Steinmaurer
Neotys PAC 2018 - Thomas SteinmaurerNeotys PAC 2018 - Thomas Steinmaurer
Neotys PAC 2018 - Thomas SteinmaurerNeotys_Partner
 
Neotys PAC 2018 - Todd De Capua
Neotys PAC 2018 - Todd De CapuaNeotys PAC 2018 - Todd De Capua
Neotys PAC 2018 - Todd De CapuaNeotys_Partner
 
Neotys PAC 2018 - Tingting Zong
Neotys PAC 2018 - Tingting ZongNeotys PAC 2018 - Tingting Zong
Neotys PAC 2018 - Tingting ZongNeotys_Partner
 
Neotys PAC 2018 - Thomas Rotté
Neotys PAC 2018 - Thomas RottéNeotys PAC 2018 - Thomas Rotté
Neotys PAC 2018 - Thomas RottéNeotys_Partner
 
Neotys PAC 2018 - Stephen Townshend
Neotys PAC 2018 - Stephen TownshendNeotys PAC 2018 - Stephen Townshend
Neotys PAC 2018 - Stephen TownshendNeotys_Partner
 

Plus 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
 

Dernier

WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...masabamasaba
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...chiefasafspells
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 

Dernier (20)

Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 

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?