ShadowReader - Serverless load tests for replaying production traffic
While load testing has become more accessible, configuring load tests that faithfully recreate production conditions can be difficult -- a good load test must use a set of URLs that is representative of production traffic and achieve request rates that mimic real users. Even performing distributed load tests requires the upkeep of a fleet of servers.
ShadowReader aims to solve these problems. It gathers URLs and request rates straight from production logs and replays it using AWS Lambda. Being serverless, it is more efficient cost and performance wise than traditional distributed load tests and in practice has scaled beyond 50,000 requests / minute.
At Edmunds, we have been able to utilize these capabilities to solve problems such as Node.js memory leaks that were happening only in production by recreating the same conditions in our QA environment. It’s also being used everyday to generate load for pre-prod canary deployments.
This presentation will go over:
- How ShadowReader solved a production incident through replaying traffic
- Explain ShadowReader's serverless architecture
- Show the audience how they can leverage it for their own testing
ShadowReader has recently been open sourced on GitHub and is actively seeking suggestions and contributions.