A study of resource management policies for function-as-a-service

Function as a Service (FaaS) offers a novel way to deploy computing applications to serverless backends in the cloud. This evolving paradigm shifts more control of resource management from the cloud users to the cloud providers. Despite the benefits of FaaS, cold start problems significantly impact...

Full description

Bibliographic Details
Main Author: Lin, Yukun
Other Authors: Tang Xueyan
Format: Thesis-Master by Research
Language:English
Published: Nanyang Technological University 2023
Subjects:
Online Access:https://hdl.handle.net/10356/166480
Description
Summary:Function as a Service (FaaS) offers a novel way to deploy computing applications to serverless backends in the cloud. This evolving paradigm shifts more control of resource management from the cloud users to the cloud providers. Despite the benefits of FaaS, cold start problems significantly impact its performance. To alleviate such effects, cloud providers often pre-warm containers or maintain a container pool to respond quickly to unforeseen requests. This exposes a trade-off between performance and resource consumption. However, various request patterns of functions make it difficult to achieve targeted optimization for cloud providers of universal FaaS platforms. We seek to optimize a general-purpose FaaS platform, Fission, in terms of managing both container termination and container specialization. A pod termination policy is proposed to manage the termination of idle pods by dynamically changing their expiry times. We also modify the workflow of processing requests in Fission and develop a pod specialization policy. We evaluate the performance of our policies on a simulator with a public dataset from Microsoft Azure. According to the results obtained, the proposed pod termination policy adapts to the workload of different intensities and offers better performance than the default policy of Fission. In addition, the pod specialization policy reduces the average processing latency of requests, while maintaining or slightly reducing the idle time of pods.