Elasticity is a key property of cloud computing. However, elasticity is offered today at the granularity of virtual machines, which take tens of seconds to start. This is insufficient to react to load spikes and sudden failures in latency sensitive applications, leading users to resort to expensive overprovisioning. Function-as-a-Service (FaaS) provides significantly higher elasticity than VMs, but comes coupled with an event-triggered programming model and a constrained execution environment that makes them unsuitable for off-the-shelf applications. Previous work tries to overcome these obstacles but often requires re-architecting the applications. In this paper, we show how off-the-shelf applications can transparently benefit from ephemeral elasticity with FaaS. We built Boxer, an interposition layer spanning VMs and AWS Lambda, that intercepts application execution and emulates the network-of-hosts environment that applications expect when deployed in a conventional VM/container environment. The ephemeral elasticity of Boxer enables significant performance and cost savings for off-the-shelf applications with, e.g., recovery times over 5x faster than EC2 instances and absorbing load spikes comparable to overprovisioned EC2 VM instances.
翻译:弹性是云计算的关键特性。然而,当前弹性机制以虚拟机为粒度提供,其启动耗时长达数十秒。这对于响应延迟敏感型应用中的负载峰值和突发故障而言远远不足,导致用户不得不采用昂贵的过度配置方案。函数即服务(FaaS)提供了远高于虚拟机的弹性能力,但其事件触发编程模型与受限执行环境使其难以适配现成应用程序。先前研究试图突破这些限制,但往往需要重构应用架构。本文展示了现成应用如何通过FaaS透明地获得瞬时弹性能力。我们构建了Boxer——一个横跨虚拟机与AWS Lambda的拦截层,该层通过截获应用执行过程,模拟应用在传统虚拟机/容器环境中部署时所预期的多主机网络环境。Boxer的瞬时弹性机制为现成应用带来了显著的性能提升与成本节约,例如:故障恢复速度比EC2实例快5倍以上,且能吸收相当于过度配置的EC2虚拟机实例所应对的负载峰值。