Expedited Load Tests for CI/CD Microservice Applications
Bibliographic record
Abstract
In recent years, microservices have become a dominant architecture in software development, offering scalability, modularity, and agility to development processes. However, ensuring optimal performance before deployment poses a significant challenge, particularly in the fast-paced environments of Continuous Integration/Continuous Deployment (CI/CD) pipelines. Traditional performance testing methods, which rely on synthetic scenarios and lengthy testing processes, can be difficult to adopt in environments where testing needs to be both realistic and quick. To address the need for accurate and responsive testing, my work proposes and implements an innovative framework that uses real-world usage traces to identify and execute a small yet essential set of performance tests. This approach aims to seamlessly integrate with CI/CD workflows, providing developers with quick feedback on performance issues and scalability constraints that may arise from changes to one or more microservices. Through a series of empirical evaluations, I compare the effectiveness of six techniques using 12 real-world traces chosen based on their timeseries characteristics. My work aims to identify a set of performance tests that can capture historically observed system behaviour and be executed within a specified time budget. In this work, I present and test 6 different techniques for load test generation. Of the 6 techniques tested, Interval Sampling (IS) was the most reliably accurate for all traces tested. Using this technique, I was able to replicate the response time distribution of a 24-hour test on our custom testbench within just a five-minute test, achieving a mean relative percent error of only 1.12% and 2.73% at the 90th and 95th percentiles. This considerable decrease in time and resources necessary for load testing and response time modelling demonstrates the efficiency and effectiveness of my approach.
Fetched live from OpenAlex and de-inverted. Abstracts are not stored in this database: the inverted indexes are 8.6 GB of the frame’s 9.3 GB of text, and the host has 13 GB free.
How this classification was reachedexpand
Full frame machine prediction
Teacher imitationNot calibrated prevalence, not ground truth. Human validation pending. The Gemma side is a direct model label for every work in the frame, read from the title-only record. The Codex side is a classifier learned from the 10,348 direct Codex labels and calibrated to design-weighted sample rates; fields without enough sample support carry no Codex call. Candidate is the union of the two sides; consensus is their intersection. These outputs are machine_predicted_unvalidated and are not human labels.
Distilled classifier scores by category (both heads)
| Category | Codex | Gemma |
|---|---|---|
| Metaresearch | 0.004 | 0.028 |
| Meta-epidemiology (narrow) | 0.001 | 0.000 |
| Meta-epidemiology (broad) | 0.000 | 0.000 |
| Bibliometrics | 0.002 | 0.001 |
| Science and technology studies | 0.000 | 0.001 |
| Scholarly communication | 0.001 | 0.002 |
| Open science | 0.003 | 0.001 |
| Research integrity | 0.001 | 0.001 |
| Insufficient payload (model declined to judge) | 0.001 | 0.001 |
Machine scores (provisional)
The two teacher heads of the student model, read on this work. A score orders the frame for review; it never asserts a category, and the validation status ships verbatim with every row.
Baseline scores from an immature model (maturity gate not passed, 7 training rounds). Scores rank; they never assert a category.
score_only:v0-immature-baseline · verbatim from the scoring run: score_only means the number may rank works, and no category label ships from itClassification
machine, unvalidatedMachine predicted; a candidate call from one source (direct Gemma or distilled Codex), not a consensus.
How this classification was reached, model by model and score by score, is at the end of the page under "How this classification was reached".