Doctor of Philosophy
Bauer, Michael A.
The emergence of serverless computing has brought significant advancements to the delivery of computing resources to cloud users. With the abstraction of infrastructure, ecosystem, and execution environments, users could focus on their code while relying on the cloud provider to manage the abstracted layers. In addition, desirable features such as autoscaling and high availability became a provider’s responsibility and can be adopted by the user's application at no extra overhead.
Despite such advancements, significant challenges must be overcome as applications transition from monolithic stand-alone deployments to the ephemeral and stateless microservice model of serverless computing. These challenges pertain to the uniqueness of the conceptual and implementation models of serverless computing. One of the notable challenges is the complexity of defining Service Level Agreements (SLA) for serverless functions. As the serverless model shifts the administration of resources, ecosystem, and execution layers to the provider, users become mere consumers of the provider’s abstracted platform with no insight into its performance. Suboptimal conditions of the abstracted layers are not visible to the end-user who has no means to assess their performance. Thus, SLA in serverless computing must take into consideration the unique abstraction of its model.
This work investigates the Service Level Agreement (SLA) modeling of serverless functions' and serverless chains’ executions. We highlight how serverless SLA fundamentally differs from earlier cloud delivery models. We then propose an approach to define SLA for serverless functions by utilizing resource utilization fingerprints for functions' executions and a method to assess if executions adhere to that SLA. We evaluate the approach’s accuracy in detecting SLA violations for a broad range of serverless application categories. Our validation results illustrate a high accuracy in detecting SLA violations resulting from resource contentions and provider’s ecosystem degradations. We conclude by presenting the empirical validation of our proposed approach, which could detect Execution-SLA violations with accuracy up to 99%.
Summary for Lay Audience
Serverless computing has brought significant advancements to the delivery of cloud computing to end-users. By adopting the ephemeral, short-lived microservice model, developers can avoid the administration and operational overheads of previous cloud delivery models and focus on the application’s code. Despite such advancement, at its current state, FaaS currently lacks the transparency to allow users to judge the performance of the FaaS platforms. Users have limited insight into the execution performance of their microservices, i.e., serverless functions, and consequently are unable to improve such performance.
This work investigates the factors that impact serverless functions’ performance. We demonstrate that end-user choices and providers’ ecosystems can significantly influence how a serverless function performs. We propose a framework that users and providers can leverage to assess the performance of serverless functions and define performance guarantees, i.e., SLAs. The framework leverages resource utilization traces of a serverless function to infer its performance and detect degradations that impact the SLA. We apply the framework to serverless applications of different sizes and application categories and examine the accuracy of detecting SLA violations.
Elsakhawy, Mohamed, "Defining Service Level Agreements in Serverless Computing" (2022). Electronic Thesis and Dissertation Repository. 8382.