Performance Evaluation of Asynchronous FaaS

Function as a Service (FaaS) is a novel but dynamically emerging field of cloud computing. The majority of the leading cloud service providers have their own FaaS platforms, however, the open source community has embraced this technology, therefore an increasing number of FaaS alternatives can be deployed for on-premise use-cases. FaaS systems support both synchronous and asynchronous function invocations. In this paper we examine the differences in performance and billing between the two invocation types in OpenFaaS, Kubeless, Fission and Knative by using a simple function chain containing echo functions and a more complex image and natural language processing chain, implemented in Python3. We also present our solution, the implementation of asynchronous function invocations by using the Redis key-value store. Finally, we show how asynchronous function invocations avoid the negative effects on the billing when functions are cold-started.