Licencja
Resource Allocation Methods for Serverless Cloud Computing Platforms
Abstrakt (EN)
Serverless computing changes the way we use, operate, and think about cloud computing. Instead of using conventional Virtual Machines or containers, with Function as a Service (FaaS), cloud customers define a function: essentially a code snippet. Then, a FaaS system executes the function in an isolated environment in response to incoming events. This paradigm frees the cloud customer from the responsibility of provisioning and maintaining the underlying software stack. At the same time, FaaS workload is less opaque for the cloud provider, compared to VMs or containers – the design of FaaS and the (relatively) small size of functions allow more accurate estimation of function resource usage or execution times. The provider may use this knowledge to improve provisioning execution environments or change the order in the schedule. In this dissertation, we analyze three aspects of resource management in FaaS. First, we study function composition: a function call may form a chain or, in general, a DAG. Knowing the internal structure of composition, the cloud provider can schedule these future invocations, prepare required execution environments in advance and optimize resource usage. Second, we analyze scheduling and load balancing from the cluster perspective. We introduce a model connecting these aspects, where the resource manager is responsible for both scaling the number of instances (e.g., function execution environments) and distributing the workload between them. Third, we focus on scheduling performed on a single node of a cluster. We specify possible enhancements and propose heuristics that benefit from information gathered locally on a node: recorded call frequencies and durations of previous function calls. Our results show that the characteristic properties of FaaS allow for significant improvements in resource utilization, and the proposed solutions will bring benefits to both the cloud provider and the customers.