Artifact repository for the paper "Modeling and Optimization of Performance and Cost of Serverless Applications." This reproducible repository includes all algorithms, scripts, and experimental results in the paper.
- Two analytical models to accurately get the average end-to-end response time and cost of serverless applications.
- Probability refined critical path algorithm to answer the following two optimization problems for non-DAG serverless workflows.
- Best performance (end-to-end response time) under a budget constraint
- Best cost under a performance constraint
- Models and algorithms verified by experiments on AWS.
- Performance and Cost Models
- Probability Refined Critical Path Algorithm
- Serverless Application Generator for Testing and Experimental Evaluations
- Scripts and Results of Experimental Evaluations
- Worst Case Scenario Analysis
- AWS Step Functions Interaction Delay Analysis
- Python>=3.7
- pip>=19.1.1
Required Python packages are listed in requirements.txt
Installation:
pip install -r requirements.txt
Please follow this documentation.
Hover to see the caption. Some self-loop edges might be overlapped.
Function-as-a-Service (FaaS) and Serverless applications have proliferated significantly in recent years because of their high scalability, ease of resource management, and pay-as-you-go pricing model. However, cloud users are facing practical problems when they shift their applications to serverless pattern, which are the lack of analytical performance and billing model and trade-off between limited budget and Service Level Agreement (SLA) guaranteed performance of serverless applications. In this paper, we fill this gap by proposing and answering two research questions regarding the prediction and optimization of performance and cost of a serverless applications. We propose the definition of the serverless workflow, and implement analytical models to predict the average end-to-end response time and cost of the application, giving practical solutions to the current unpredictable performance and cost problems for serverless applications. We propose a heuristic algorithm named Probability Refined Critical Path Greedy algorithm (PRCP) with four greedy strategies to answer two types of optimization questions regarding performance and cost. We experiment proposed models with five serverless applications deployed on AWS. Our results show that the performance and cost models can predict the performance and cost of serverless applications with more than 97.5% of accuracy. PRCP can give the optimized memory configurations of functions in serverless applications with over 97% of accuracy.