Serverless computing is a popular cloud deployment paradigm where developers implement applications as workflows of functions that invoke each other. Cloud providers automatically scale function instances on demand and forward workflow requests to appropriate instances. However, current serverless clouds lack efficient cross-function data transfer, limiting the execution of data-intensive applications. Functions often rely on third-party services like AWS S3, AWS ElastiCache, or multi-tier solutions for intermediate data transfers, which introduces inefficiencies. We demonstrate that such through-storage transfers make data-intensive deployments economically impractical, with storage costs comprising more than 24-99% of the total serverless bill. To address this, we introduce Zipline, a fast, API-preserving data communication method for serverless platforms. Zipline enables direct function-to-function transfers, where the sender function buffers payloads in memory and sends a reference to the receiver. The receiver retrieves the data directly from the sender's memory, guided by the load balancer and autoscaler. Zipline integrates seamlessly with existing autoscaling, maintains invocation semantics, and eliminates the costs and overheads of intermediate services. We prototype Zipline in vHive/Knative on AWS EC2 nodes, demonstrating significant improvements. Zipline reduces costs and enhances latency and bandwidth compared to AWS S3 (the lowest-cost solution) and ElastiCache (the highest-performance solution). On real-world applications, Zipline lowers costs by 2-5x and reduces execution times by 1.3-3.4x versus S3. Compared to ElastiCache, Zipline achieves 17-772x cost reductions while improving performance by 2-5%.
翻译:无服务器计算是一种流行的云部署范式,开发者将应用程序实现为相互调用的函数工作流。云提供商按需自动扩展函数实例,并将工作流请求转发至相应实例。然而,当前的无服务器云平台缺乏高效的跨函数数据传输能力,限制了数据密集型应用的执行。函数通常依赖第三方服务(如AWS S3、AWS ElastiCache)或多层解决方案进行中间数据传输,这导致了效率低下。我们证明,此类通过存储的传输方式使得数据密集型部署在经济上不切实际,存储成本占无服务器总账单的24%至99%以上。为解决此问题,我们提出了Zipline——一种快速、保持API兼容的无服务器平台数据通信方法。Zipline实现了函数间的直接传输:发送方函数将负载缓冲在内存中并向接收方发送引用;接收方在负载均衡器和自动扩缩器的引导下,直接从发送方内存中检索数据。Zipline与现有自动扩缩机制无缝集成,保持调用语义,并消除了中间服务的成本与开销。我们在AWS EC2节点上基于vHive/Knative实现了Zipline原型,并展示了显著改进:相较于成本最低的AWS S3和性能最优的AWS ElastiCache方案,Zipline在降低成本的同时提升了延迟与带宽性能。在实际应用中,与S3相比,Zipline可降低2-5倍成本,并将执行时间缩短1.3-3.4倍;与ElastiCache相比,Zipline实现了17-772倍的成本削减,同时性能提升2-5%。