Function as a Service (FaaS) is a software paradigm that is becoming increasingly popular. Multiple cloud providers offer FaaS as the interface to usage-driven, stateless (serverless) backend services. FaaS offers an intuitive, event-based interface for developing cloud-based applications. In contrast to the traditional cloud interface, in FaaS, users do not explicitly provision or configure virtual machines (VMs) or containers. FaaS users do not pay for resources they do not use either. Instead, users simply upload the code of their functions to the cloud; functions get executed when “triggered” or “invoked” by events, such as the receipt of a message (e.g., an HTTP request) or a timer going off. The provider is then responsible for provisioning the needed resources (e.g., a container in which to execute each function), providing high function performance, and billing users just for their actual function executions (e.g., in increments of 100 milliseconds).
Our research in this project is currently addressing two key aspects of serverless platforms’ infrastructure: (1) creating state management and function coordination/communication techniques to enable a broader set of FaaS applications to perform well on the platform; and (2) creating resource management techniques for making the platform more cost-efficient for the FaaS provider. Longer-term, our goal is to revisit the infrastructure layers (e.g., architecture, hypervisor, operating system) of the stack and optimize them for the serverless computing.
People
Daniel S. Berger
Senior Researcher
Ricardo Bianchini
Technical Fellow, Corporate Vice President, Microsoft Azure
Esha Choukse
Senior Researcher
Sameh Elnikety
Senior Principal Researcher
Íñigo Goiri
Principal Research SDE
Enrique Saurez
Research Software Engineer 2