Researchers and practitioners care deeply about the performance and correctness of microservice applications. In this work, we argue that a core requirement for developing, optimizing, and maintaining microservice applications is the ability to rapidly Configure, Build, and Deploy (CBD) new variants of an application that alter or improve its design. We focus on three core use-cases: (1) updating the design to use different components, libraries, and mechanisms; (2) identifying and reproducing problematic behaviors caused by different designs; and (3) prototyping and evaluating potential solutions to such behaviors. We present Blueprint, a microservice development toolchain that enables rapid CBD. With just a few lines of code, users can easily reconfigure an application’s design; Blueprint will then generate a fully-functioning variant of the application under the new design.Blueprint is open-source and extensible; it supports a wide variety of reconfigurable design dimensions; and we have ported all major microservice benchmarks to it. Our evaluation demonstrates how Blueprint simplifies the three core use-cases with orders-of-magnitude less code change.
Vaastav is a final year PhD student at Max Planck Institute for Software Systems co-advised by Antoine Kaufmann and Deepak Garg. His primary research focus is in improving the reliability and efficiency of cloud-scale systems.