Serverless computing paradigm has become more ingrained into industry, as it offers a cheap alternative for application development and deployment. This new paradigm has also created new kinds of problems for the developer, who needs to tune memory parameters balancing cost and performance. Many researchers have addressed the issue of minimizing cost and meeting Service Level Objective (SLO) requirements for a single cloud function, but there has been a gap for solving the same problem for an application consisting of many cloud functions, which create a complicated tree of function calls.
In this work, we designed a python based tool called SLAM to address the issue. SLAM uses distributed tracing to detect the relationship among the cloud functions within a serverless application and by modeling each of them, it estimates the duration for an application call at different memory configurations. Using these estimations SLAM uses different optimizers to find the best configuration given the optimization constraint (SLO, minimal cost, or overall execution time). We demonstrate the functioning of our tool on AWS Lambda by testing on multiple applications. Our results have shown that the suggested memory configurations guarantee that more than 95% of requests are completed within the predefined SLO.
Index Terms— serverless, cost optimization, memory optimization, SLO, serverless applications.
«
Serverless computing paradigm has become more ingrained into industry, as it offers a cheap alternative for application development and deployment. This new paradigm has also created new kinds of problems for the developer, who needs to tune memory parameters balancing cost and performance. Many researchers have addressed the issue of minimizing cost and meeting Service Level Objective (SLO) requirements for a single cloud function, but there has been a gap for solving the same problem for an ap...
»