Cloud-edge serverless applications or serverless deployments spanning multiple regions introduce the need to govern the scheduling of functions to satisfy their functional constraints or avoid performance degradation. For instance, functions may require to be allocated to specific private (edge) nodes that have access to specialised resources or to nodes with low latency to access a certain database to decrease the overall latency of the application. State-of-the-art serverless platforms do not support directly the implementation of topological constraints on the scheduling of functions. We address this problem by presenting a declarative language for defining topology-aware, function-specific serverless scheduling policies, called tAPP. Given a tAPP script, a compatible serverless scheduler can enforce different, co-existing topological constraints without requiring ad-hoc platform deployments. We prove our approach feasible by implementing a tAPP-based serverless platform as an extension of the Apache OpenWhisk serverless platform. We show that, compared to vanilla OpenWhisk, our extension does not negatively impact the performance of generic, non-topology-bound serverless scenarios, while it increases the performance of topology-bound ones.
翻译:云边无服务器应用或跨多区域部署的无服务器系统需要管理函数的调度,以满足其功能约束或避免性能退化。例如,函数可能需要被分配到能够访问特定资源的私有(边缘)节点,或分配到与特定数据库具有低延迟的节点,以降低应用的整体延迟。当前最先进的无服务器平台无法直接支持在函数调度中实现拓扑约束。我们通过提出一种声明式语言tAPP来解决这一问题,该语言用于定义拓扑感知的、函数特定的无服务器调度策略。给定一个tAPP脚本,兼容的无服务器调度器能够强制执行多种共存的拓扑约束,而无需定制化的平台部署。我们通过实现一个基于tAPP的无服务器平台(作为Apache OpenWhisk无服务器平台的扩展)证明了该方法的可行性。结果表明,与原始OpenWhisk相比,我们的扩展在通用且非拓扑受限的无服务器场景中不会对性能产生负面影响,同时能提升拓扑受限场景的性能。