As distributed systems evolve, the testing scale multiplies, asking for dozens of test cases, combined with different application benchmarks (e.g., performance, correctness), and arbitrary operating conditions. Kubernetes holds a promise to enable automation and process improvement directly contributing to a system's reliability. Establishing a declarative API and providing a cheap and disposable environment, Kubernetes makes it easy to create uniform experiments, which may run manually or be exercised multiple times over the development cycle through a CI/CD system. Despite their abundance, existing benchmarks and Chaos engineering tools work in isolation, thus restricting the complexity of testing scenarios we can build.
This talk will present Frisbee: an automated suite for the unified testing of distributed applications over Kubernetes. Frisbee simplifies a series of time-demanding activities, including the spin-up of the dependency stack required to bring the system into a steady state, the combined execution of workloads and faultloads, and the validation of the system's behavior via test cases. We will demonstrate Frisbee through a series of tests, focusing on uncertainties at the level of application (e.g., dynamically changing request patterns), infrastructure (e.g., crashes, network partitions), and deployment (e.g., saturation points).