WasteLess: An Optimal Provisioner for Self-Adaptive Second-Generation Serverless Applications
FULL
Function-as-a-service (FaaS) is enjoying widespread adoption in the cloud thanks to the ability of dynamically provisioning function instances (typically containers) to seamlessly handle invocation bursts. However, in practice, this mechanism may result in resource overprovisioning and increased operational costs when function resources are not configured properly. Besides memory and CPU cores, so-called second-generation FaaS systems let users specify the concurrency limit, enabling the consolidation of multiple requests into a single function instance to improve latency and cost. However, this introduces yet another configurable parameter, which is hard to tune manually. We present WasteLess, a resource provisioning framework designed to automate and optimize the deployment of modern FaaS self-adaptive applications. By leveraging a predictive queuing network model, WasteLess computes configurations to maximize application performance while minimizing costs. Our evaluation demonstrates the effectiveness of WasteLess in achieving average cost savings of about 40% without performance degradation with respect to a state-of-the-art research baseline and Google Cloud Run’s self-adaptive strategy for second-generation FaaS.