Umbilical Choir: Automated Live Testing for Edge-To-Cloud FaaS Applications
Mohammadreza Malekabbasi, Tobias Pfandzelter, David Bermbach
TL;DR
The paper addresses the difficulty of maintaining QoS during frequent edge-to-cloud releases by introducing Umbilical Choir, a provider-agnostic live-testing framework for serverless edge-to-cloud applications. It presents a tree-based architecture with Release Managers, Agents, and a proxy function to enable A/B testing, canary releases with geo-aware strategies, dark launches, and gradual rollouts across geo-distributed FaaS platforms. The contributions include a detailed architectural design, four geo-aware rollout strategies, an open-source Go prototype supporting major cloud and edge FaaS, and an evaluation consisting of a latency-overhead experiment and a realistic multi-stage release scenario. Results demonstrate the framework’s ability to automate complex, multi-node release plans with acceptable overhead, highlighting its practical potential for reducing performance regressions in edge-to-cloud deployments while noting future work to integrate native provider live-testing features and broader runtime support.
Abstract
Application users react negatively to performance regressions or availability issues across software releases. To address this, modern cloud-based applications with their multiple daily releases rely on live testing techniques such as A/B testing or canary releases. In edge-to-cloud applications, however, which have similar problems, developers currently still have to hard-code custom live testing tooling as there is no general framework for edge-to-cloud live testing. With Umbilical Choir, we partially close this gap for serverless edge-to-cloud applications. Umbilical Choir is compatible with all Function-as-a-Service platforms and (extensively) supports various live testing techniques, including canary releases with various geo-aware strategies, A/B testing, and gradual roll-outs. We evaluate Umbilical Choir through a complex release scenario showcasing various live testing techniques in a mixed edge-cloud deployments and discuss different geo-aware strategies.
