Fusionize++: Improving Serverless Application Performance Using Dynamic Task Inlining and Infrastructure Optimization

Trever Schirmer,Joel Scheuner,Tobias Pfandzelter,David Bermbach
DOI: https://doi.org/10.1109/TCC.2024.3451108
2024-10-21
Abstract:The Function-as-a-Service (FaaS) execution model increases developer productivity by removing operational concerns such as managing hardware or software runtimes. Developers, however, still need to partition their applications into FaaS functions, which is error-prone and complex: Encapsulating only the smallest logical unit of an application as a FaaS function maximizes flexibility and reusability. Yet, it also leads to invocation overheads, additional cold starts, and may increase cost due to double billing during synchronous invocations. Conversely, deploying an entire application as a single FaaS function avoids these overheads but decreases flexibility. In this paper we present Fusionize, a framework that automates optimizing for this trade-off by automatically fusing application code into an optimized multi-function composition. Developers only need to write fine-grained application code following the serverless model, while Fusionize automatically fuses different parts of the application into FaaS functions, manages their interactions, and configures the underlying infrastructure. At runtime, it monitors application performance and adapts it to minimize request-response latency and costs. Real-world use cases show that Fusionize can improve the deployment artifacts of the application, reducing both median request-response latency and cost of an example IoT application by more than 35%.
Distributed, Parallel, and Cluster Computing
What problem does this paper attempt to address?
### Problems the Paper Attempts to Solve The paper attempts to address the performance and cost-efficiency issues faced by application developers when splitting applications into multiple functions in serverless computing. Specifically: 1. **Gap between developer's logical view and actual performance**: - Developers aim to split applications into independent, single-purpose tasks for easier independent updates and dynamic reorganization, enhancing code reusability. - However, this fine-grained splitting leads to invocation overhead, cold start latency, and double billing issues, increasing costs and delays. 2. **Advantages and disadvantages of large monolithic functions**: - Deploying the entire application as a large serverless function can avoid the aforementioned overheads but reduces flexibility. - Developers need to manually adjust each function's configuration parameters to optimize performance and cost, adding to the developer's burden. 3. **Limitations of existing serverless platforms**: - Current serverless platforms (such as AWS Lambda, Google Cloud Functions, and Microsoft Azure Functions) primarily optimize single-function applications rather than multi-function compositions. - This results in a one-to-one mapping between fine-grained tasks and executable functions, often leading to suboptimal performance and cost efficiency. ### Solution To address these issues, the paper proposes **FUSIONIZE**, an automated framework that improves the performance and cost efficiency of serverless applications through dynamic task inlining and infrastructure optimization. Specifically: - **Automatic task fusion**: FUSIONIZE automatically merges application code into optimized multi-function compositions, reducing remote invocation overhead and cold start latency. - **Dynamic infrastructure optimization**: FUSIONIZE monitors application performance at runtime and adjusts infrastructure configurations based on real-time data to minimize request response latency and cost. - **No additional configuration required**: Developers only need to write fine-grained application code following the serverless model, and FUSIONIZE will automatically handle task fusion, manage task interactions, and configure the underlying infrastructure. Through these methods, FUSIONIZE can significantly improve application deployment effectiveness, reducing median request response latency and cost, especially in real-world IoT applications.