I am an intern working with a Performance Testing team that recently integrated a continuous delivery system for automating performance testing that happens before software is moved to production. My boss asked me to do some research on the best practice strategies for using SLA's within a Continuous Delivery system. I cannot find any information regarding this and I am not sure why an SLA would be different in this scenario?
1 Answers
SLA should not be different, probably you just need to find a way to mark the build as UNSTABLE or FAILED if response time is higher or throughput is lower or whatever else metric doesn't fit into SLA/NFR thresholds.
All CI/CD systems will definitely fail the build if the program or script or task returns non-zero exit code so all you need to do is to define pass/fail criteria and configure your performance test to fail and propagate the failure to upstream build.
The exact instructions will differ depending on CI server itself and load testing tool you're using, if you want an example: Jenkins and Apache JMeter can be put together using Performance Plugin which adds metrics stats and performance trend charts to the build dashboard and also capable of marking build as failed basing on various conditions which you can align with your SLAs.

- 159,985
- 5
- 83
- 133