Paper, DOI Link, Youtube Link

Authors: Michael Wawrzoniak, Rodrigo Bruno, Ana Klimovic, and Gustavo Alonso

The goal is to run applications across traditional VMs and FaaS instances without requiring changes in the application. Ephemeral elasticity with FaaS is proposed using a custom tool called Boxer to provide a familiar distributed model (i.e., POSIX-style network-of-hosts), which generic applications expect, on top of existing FaaS platforms.

Motivation

Today’s VMs are insufficient to react to sudden load spikes or VM failures as their deploy time is in the order of minutes. Moreover, allocating new resources for a ‘fast starting’ container takes tens of seconds. As this methods are slow to respond to load spikes or failures, users often resort to over-provisioning of resources to provide the illusion of high elasticity which lead to higher costs.

On the other hand, FaaS platforms, such as Azure Functions and AWS Lambda offer high elastic computer pools that automatically scale based on the number of tasks invoked.

However, although it offers high elasticity, current FaaS implementation have constrained execution environment (execution time and VM size) and are based on an event-triggered programming model which makes them unfit to run general-purpose cloud applications off-the-shelf.

Existing FaaS platforms force applications to be written as a collection of short-lived, stateless functions, which cannot accept network connections while executing.

Introduction

The paper focuses on providing ephemeral usage of FaaS to absorb load spikes and accommodate sudden failure recovery as long-running VMs still provide a cost advantage for running entire applications.

A new type of elasticity is proposed, refereed as ephemeral elasticity for affordable and highly elastic cloud infrastructures.

A file:///home/god/MEGA/2_attachments/d9/87776e-5278-4331-8512-b7e171ab15c8/boxer_faast_ephemeral_elasticiy_for_off_the_shelf_cloud_applications.pdf to see the viability of this approach and the results where that costs could be reduced.

Boxer

Boxer is an interposition layer spanning VMs and AWS Lambda, that intercepts application execution and emulates the network-of-hosts environments so applications can be deployed in VMs or FaaS services without any changes.

It does not require changes to the application and integrates with orchestration tools such as Docker Compose.

It works by intercepting system C Library function calls and emulates the necessary network-of-hosts environment (network, file system, name resolution) that applications expect when deployed in a VM/container environment.

Limitations

Current implementation of the process monitor relies on the lightweight dynamic linking mechanism for interposition, which cannot handle applications issuing system calls directly.

It has only been tested in AWS.

The interface have complex semantics and, combined with the additional constraints, makes handling all of the cases challenging.