ABSTRACT:
Serverless platforms have exploded in popularity in recent years. Unlike traditional server- full platforms that require users to manage and operate bare-metal servers, virtual machines (VMs) or containers, serverless platforms completely remove the execution environment from the responsibility of the user. The serverless platform manages creating and destroying the environment (usually based on a container or VM), freeing the user to focus on their application code.
In addition to being an easier user experience, serverless can reduce costs: serverless platforms use an on-demand cost model, meaning that users are charged only for time that their code actually runs. This is in contrast to server-full platforms, where a user must provision a VM or container in advance of when it will be needed. The user then pays for the entire time the VM or container runs, including while it is idling (e.g., memory and storage space consumption). Serverless, therefore, offers a cheaper, easier alternative to deploying applications compared to traditional VMs or containers.
The move to serverless brings with it a range of new workload characteristics not seen previously. Compared to monolithic applications, serverless applications tend to be short lived, and consist of many small actions. We begin by exploring the unique challenges to measuring performance of these workloads, with an emphasis on the storage components of the workload. We developed CNSBench, which enables users to assess the performance of their application and storage infrastructure. CNSBench allows users to create storage workloads that are representative of real cloud native and serverless environments: dynamic and consisting of a diverse set of individual workloads. Since serverless platforms are typically built atop container-based orchestration platforms, CNSBench helps users to measure storage performance at the container orchestration level. This is more general and flexible than targeting serverless platforms specifically, while still allowing for the evaluation of serverless platforms and applications with CNSBench.
Once we can measure the storage performance of serverless applications more accurately, we turn to improving performance. We introduce new techniques for managing data that are tailored to the usage patterns common in serverless environments, reducing costs to users while maintaining required levels of data durability. To this end, we built F3, a file system designed to optimize data exchange in serverless platforms. F3 introduces new methods for handling ephemeral data and modifications to a serverless scheduling algorithm so that data-locality is considered when scheduling serverless actions. These changes help to adapt existing file-based storage options to modern, cloud-native applications and use cases. F3 improves the performance of intermediate
data transfer, increasing throughput by up to 6.5x and decreasing latency by as much as 2.6x. By introducing new methods for handling ephemeral data, F3 makes a tradeoff between durability and performance. It does so by using higher performance but less-durable data stores for ephemeral data passed between application components. We further explore how lower-durability storage can be used, trading off durability for (dollar) cost. We have developed a mathematical model, called Storage Durability Cost Model (SDCM), that determines the durability level most appropriate for an application and its data. Additionally, we introduce an application architecture that utilizes this model to place data in cheaper storage while still meeting the data's durability requirements, thereby reducing overall costs to users. We show how SDCM can reduce storage costs by up to 3x.
In sum, serverless environments offer significant benefits over more traditional virtual-machine--based cloud environments. However, the workload characteristics of serverless environments differ in significant ways from other kinds of cloud environments. Therefore, it is our thesis that to fully realize the benefits of serverless computing, new performance measurement techniques and approaches to data management are required.
Dates
Thursday, May 02, 2024 - 02:00pm to Thursday, May 02, 2024 - 03:30pm
Location
NCS 220
Event Description
Event Title
'Ph.D. Thesis Defense, Alex Merenstein, 'Techniques for Storage Performance Measurement and Data Management in Container-Native and Serverless Environments