FaaS (Function-as-a-Service) brought a fundamental shift into cloud computing: (persistent) virtual machines have been replaced with dynamically allocated resources, trading locality and statefulness for a pay-as-you-go model more suitable for varying and infrequent workloads. However, adapting services to functions in the serverless paradigm while still fulfilling functional requirements is challenging. In this work, we demonstrate how ZooKeeper, a centralized coordination service that offers a safe and wait-free consensus mechanism, can be redesigned to benefit from serverless computing. We define synchronization primitives to extend the capabilities of scalable cloud storage and contribute a set of requirements for efficient and scalable FaaS computing. We introduce FaaSKeeper, the first coordination service built on serverless functions and cloud-native services, and share serverless design lessons based on our experiences of implementing a ZooKeeper model deployable to clouds today. FaaSKeeper provides the same consistency guarantees and interface as ZooKeeper, with a serverless price model that lowers costs up to 450 times on infrequent workloads.
翻译:FaaS(函数即服务)为云计算带来了根本性变革:(持久化)虚拟机被动态分配的资源所取代,将局部性和有状态性转化为更适合变化性、低频工作负载的按需付费模式。然而,在无服务器范式下将服务适配为函数的同时满足功能性需求仍具有挑战性。本研究展示了如何重新设计ZooKeeper(一种提供安全无等待共识机制的集中式协调服务)以受益于无服务器计算。我们通过定义同步原语来扩展可扩展云存储的能力,并提出一组实现高效可扩展FaaS计算的需求。我们首次提出了FaaSKeeper——基于无服务器函数和云原生服务构建的协调服务,并基于实现可部署于当前云平台的ZooKeeper模型的经验分享了无服务器设计原则。FaaSKeeper提供与ZooKeeper相同的一致性保障和接口,其无服务器定价模型在低频工作负载下可降低高达450倍的成本。