The State of Stateful Serverless Systems

University essay from KTH/Skolan för elektroteknik och datavetenskap (EECS)

Abstract: Serverless computing and Function-as-a-service are popular paradigms that simplify application development by abstracting the development layer from the underlying infrastructure components. These systems work in a pay-as-you-go model and provide an efficient environment for developers to focus entirely on developing their business logic. Different stateful serverless systems are available—for example, Apache Flink StateFun, Azure Durable Functions, Kalix, and Cloudburst. Currently, there is a lack of comparison criteria to compare these systems successfully. In this thesis, we approach solving the question of how we can compare different stateful serverless systems. We devise a comparison criterion and assess four state-of-the-art systems. From these comparison results, we derive assessments that ease choosing one system over the other in the best interest of the user’s development goals. These results and assessments can be applied to more upcoming stateful serverless systems and attempt guiding product owners, software engineers, and researchers to choose a stateful serverless system that best suits their application development goals. We devise a comparison criteria based on the system’s architectural, functional, and performance qualities. The results of these comparisons list essential features. Based on architectural qualities, we conclude that features such as different function types and patterns are essential criteria. Based on functional qualities, we conclude that features such as being language agnostic, support for different in-built primitives, and state and message guarantees are important comparisons. Performance quality results include locally running the chosen system and testing with varying numbers of sequential invocations. The chosen systems are Apache Flink StateFun and Azure Durable Functions. We test the system with varying numbers of sequential invocations to a Greeter function and find the system’s execution time in seconds and throughput in events per second. From the results, we infer that the performance of Apache Flink StateFun is better than Azure Durable Functions when running the systems locally and invoking the function sequentially.

  AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)