Current proprietary and open-source serverless platforms follow opinionated, hardcoded scheduling policies to deploy the functions to be executed over the available workers. Such policies may decrease the performance and the security of the application due to locality issues (e.g., functions executed by workers far from the databases to be accessed). These limitations are partially overcome by the adoption of APP, a new platform-agnostic declarative language that allows serverless platforms to support multiple scheduling logics. Defining the "right" scheduling policy in APP is far from being a trivial task since it often requires rounds of refinement involving knowledge of the underlying infrastructure, guesswork, and empirical testing. In this paper, we start investigating how information derived from static analysis could be incorporated into APP scheduling function policies to help users select the best-performing workers at function allocation. We substantiate our proposal by presenting a pipeline able to extract cost equations from functions' code, synthesising cost expressions through the usage of off-the-shelf solvers, and extending APP allocation policies to consider this information.
翻译:当前专有和开源的Serverless平台采用固定且硬编码的调度策略,将待执行函数部署到可用工作节点上。由于局部性问题(例如,函数与待访问数据库所在工作节点距离过远),此类策略可能降低应用性能与安全性。通过采用APP——一种与平台无关的新型声明式语言,允许Serverless平台支持多种调度逻辑,这些限制得以部分克服。在APP中定义"正确"的调度策略绝非易事,因为通常需要涉及底层基础设施知识、经验推测和实证测试的多轮优化。本文初步探究如何将静态分析所得信息融入APP调度函数策略,以帮助用户在函数分配时选择性能最优的工作节点。我们通过以下方案验证该提议:构建可提取函数代码成本方程的流水线,利用现成求解器合成成本表达式,并扩展APP分配策略以纳入此类信息。