Serverless applications are typically composed of function workflows in which multiple short-lived functions are triggered to exchange data in response to events or state changes. Current serverless platforms coordinate and trigger functions by following high-level invocation dependencies but are oblivious to the underlying data exchanges between functions. This design is neither efficient nor easy to use in orchestrating complex workflows -- developers often have to manage complex function interactions by themselves, with customized implementation and unsatisfactory performance. In this paper, we argue that function orchestration should follow a data-centric approach. In our design, the platform provides a data bucket abstraction to hold the intermediate data generated by functions. Developers can use a rich set of data trigger primitives to control when and how the output of each function should be passed to the next functions in a workflow. By making data consumption explicit and allowing it to trigger functions and drive the workflow, complex function interactions can be easily and efficiently supported. We present Pheromone -- a scalable, low-latency serverless platform following this data-centric design. Compared to well-established commercial and open-source platforms, Pheromone cuts the latencies of function interactions and data exchanges by orders of magnitude, scales to large workflows, and enables easy implementation of complex applications.
翻译:没有服务器的应用程序通常由功能工作流程组成,在功能工作流程中,多个短寿命功能被触发,以针对事件或状态变化交换数据。目前没有服务器的平台通过跟踪高级职业依赖性来协调和触发功能,但忽视各功能之间的基本数据交换。这种设计既效率不高,也不容易用于安排复杂的工作流程 -- -- 开发者往往必须自己管理复杂的功能互动,其实施和性能不尽人意。在本文件中,我们主张功能调控应当遵循以数据为中心的方法。在我们的设计中,该平台提供了一个数据桶抽象,以持有由函数产生的中间数据。开发者可以使用丰富的数据集触发原始数据来控制时间和如何将每个功能的输出传递到工作流程中的下一个函数。通过明确数据消耗并允许其触发功能和驱动工作流程,复杂功能互动可以容易和高效地得到支持。我们介绍Pheromone -- -- 一个在这种以数据为中心的设计之后可缩放、低延缓服务器平台。与已经建立起来的商业和开源平台相比,Pheromone将缩短功能的延缓度应用到大型的顺序,使功能互动和数据交换得以进行。