Performance engineering pillars in action
The following reference architecture demonstrates performance engineering pillars for testing a specific API.
-
Logging, monitoring, and tracing data is sent from the target API to the backend.
-
When invoked, the test reporting API sends results and configuration information to the backend.
The core component is the target API or application under test. The target API syncs with the application configuration repository and deployment configuration repository in GitOps fashion to obtain the latest application and infrastructure configurations. This synchronization allows the automated tests to run against the current desired state of the application and its supporting infrastructure as defined in the Git repositories.
The test-automation pipeline automates generating the test data, running the test, and reporting the test results for the target API.
The target API generates performance insights (metrics, logs, and traces), using observability
best practices
The test reporting API collects all test-related reporting data (configuration and test results), and it stores them in the observability backend.
Aggregation of performance insights and reporting data (configuration, test results) helps you to query performance related data for the target API. For example, you might ask the following:
-
What are the top ten slowest transactions?
-
What is the P99, P90, average number of each test?
-
How do the configurations of the two test runs compare?
Correlating tests cases with results, configurations, and metrics over a period time helps with identifying the best configuration and the performance results.
Using these test results, you can make more precise, data-driven decisions for the API and have confidence when taking the API to production.