Serverless computing paradigm has become more ingrained into the 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 configurations for balancing cost and performance. Many researchers have addressed the issue of minimizing cost and meeting Service Level Objective (SLO) requirements for a single FaaS function, but there has been a gap for solving the same problem for an application consisting of many FaaS functions, creating complex application workflows. In this work, we designed a tool called SLAM to address the issue. SLAM uses distributed tracing to detect the relationship among the FaaS functions within a serverless application. By modeling each of them, it estimates the execution time for the application at different memory configurations. Using these estimations, SLAM determines the optimal memory configuration for the given serverless application based on the specified SLO requirements and user-specified objectives (minimum cost or minimum execution time). We demonstrate the functionality of SLAM on AWS Lambda by testing on four applications. Our results show that the suggested memory configurations guarantee that more than 95% of requests are completed within the predefined SLOs.
翻译:无服务器的计算模式已变得更加深入产业,因为它为应用开发和部署提供了一个廉价的替代软件。这一新模式还为开发者带来了新的问题,开发者需要调整记忆配置,以平衡成本和性能。许多研究人员已经解决了将一个单一FaAS函数的成本和会议服务水平目标(SLO)要求降到最低程度的问题,但对于由许多FaaS函数组成的应用程序,在创建复杂的应用工作流程方面存在着解决相同问题的差距。在这项工作中,我们设计了一个名为SLAM的工具来解决这个问题。SLAM使用分布式跟踪工具来检测无服务器应用程序中FaaS函数之间的关系。通过对每个应用程序进行模拟,它估计了不同记忆配置的应用的执行时间。使用这些估算,SLAM根据特定SLO要求和用户指定的目标(最低成本或最低执行时间)确定给服务器的无服务器应用的最佳记忆配置。我们通过测试四个应用程序来显示SWS Lambda的功能。我们的结果表明,建议的记忆配置保证超过95%的请求在预定的SLO内完成。