FaaS (Function-as-a-Service) revolutionized cloud computing by replacing persistent virtual machines with dynamically allocated resources. This shift trades locality and statefulness for a pay-as-you-go model more suited to variable and infrequent workloads. However, the main challenge is to adapt services to the serverless paradigm while meeting functional, performance, and consistency requirements. In this work, we push the boundaries of FaaS computing by designing a serverless variant of ZooKeeper, a centralized coordination service with a safe and wait-free consensus mechanism. We define synchronization primitives to extend the capabilities of scalable cloud storage and outline a set of requirements for efficient computing with serverless. In FaaSKeeper, the first coordination service built on serverless functions and cloud-native services, we explore the limitations of serverless offerings and propose improvements essential for complex and latency-sensitive applications. We share serverless design lessons based on our experiences of implementing a ZooKeeper model deployable to clouds today. FaaSKeeper maintains the same consistency guarantees and interface as ZooKeeper, with a serverless price model that lowers costs up to 110-719x on infrequent workloads.
翻译:FaaS(函数即服务)通过用动态分配的资源取代持久化虚拟机,彻底革新了云计算。这种转变以牺牲局部性和有状态性为代价,换取了更适应可变且低频工作负载的按需付费模式。然而,核心挑战在于如何在满足功能、性能和一致性要求的同时,将服务适配到无服务器范式。在本工作中,我们通过设计ZooKeeper(一种具有安全无等待共识机制的集中式协调服务)的无服务器变体,拓展了FaaS计算的边界。我们定义了同步原语以增强可扩展云存储的能力,并概述了一套高效利用无服务器计算的需求。在FaaSKeeper——首个构建于无服务器函数与云原生服务之上的协调服务中,我们探索了无服务器产品的局限性,并为复杂且延迟敏感型应用提出了关键性改进方案。我们基于实现可部署于当前云平台的ZooKeeper模型的经验,分享了无服务器设计方面的启示。FaaSKeeper保留了与ZooKeeper相同的一致性保证与接口,其无服务器定价模型可将低频工作负载的成本降低110至719倍。