Isolates as constructs for FaaS

Serverless computing is an emerging paradigm where instance-sizing, multi-tenancy, over-provisioning, short start-up times, and execution speeds are of paramount importance. FaaS is a popular realization of serverless computing, which is characterized as short-lived stateless functions that are triggered by events. Resource allocation, isolation, scalability, and orchestration are left to the service provider. In recent years the research community has put effort into achieving these goals by methods of Containers, Light Weight VMs, and more recently, by the use of Web Assembly Isolates. However, Containers and VM have bulky image sizes and suffer from cold start problems, and v8 isolates are yet to achieve bare-metal performance. Although isolation is required among different execution contexts, it is desirable to share memory among function instantiations within the same workflow. However, current FaaS implementations execute each function in a sandbox and share data via data copy requiring user kernel boundary crossings and memory copy with a bootstrap of the process for function execution. With all these aspects, the platform overheads start to dominate the function execution time. This is a hurdle for applications requiring low latency and high throughput such as Cloud Radio Access Networks (C-RAN), Augmented Reality (AR), high-frequency trading, etc. One emerging application is Service Function Chains (SFCs) using Network Function Virtualization (NFV). Network Virtualization using SFCs through NFVs have the advantage of programmability. However, sizing the NFVs and the associated SFC chaining based on tenant-specific flows and incorporating desired scaling using cloud resources needs to be addressed for realizing the benefits of cloud resources. The emerging adoption of the Serverless computing paradigm is a promising idea where the developer need not worry about deployment aspects. However, aligning the serverless paradigm for adoption to network function executions in the context of SFCs has the challenges of meeting real-time execution deadlines. Popular serverless platforms use containers as the deployment construct for FaaS instances. We evaluate the suitability of these to meet the real-time execution capability as required by SFCs and motivate the need for a native function execution framework akin to v8 isolates, to handle the real-time stream processing requirements of the network domain.

In this research, we explore the possibility of developing a bare-metal function execution framework to exploit full hardware potential with the provision for shared memory among related functions belonging to the same task, and minimal environment bootstrapping for function execution. However, without sacrificing the security offered by virtualization technologies. Our goal is to achieve low latency and high throughput such that these applications can be realized on serverless platforms.