Serverless teknologiat ja FaaS-pohjainen web-sovelluksen taustajärjestelmä

Paakkunainen, Olli · Aaltodoc (Aalto University) · 2019

The popularity of cloud computing has grown explosively in recent years, which has led to the transformation of moving workloads from on-premise server rooms into public cloud environments. This change has enabled developers to shift the responsibility of server and infrastructure management to a cloud service provider. Additionally, in the past few years, cloud providers have introduced services, which aim to abstract the infrastructure and server management from the users completely. Along with these services, a new term has been introduced, serverless computing, which refers to the concept, where the user does not need to manage any server infrastructure. Function as a Service (FaaS), is a serverless computing service model, which allows the developers to deploy individual functions to the cloud. FaaS has proven to be useful for several computing tasks, but because of occasional high response times, using it for web applications can be problematic. Nevertheless, there is an interest to use serverless computing for web applications. This thesis studies serverless computing and analyzes the feasibility of using a FaaS platform to implement a web application backend. The research work is concluded by creating a FaaS-based web application backend and evaluating it by inspecting the development process and executing performance tests. The differences between PaaS- and FaaS-based web applications are compared in terms of cost, performance, and developer experience. Based on the research work, FaaS was identified to be a very cost-effective solution for low traffic web applications, and the performance was considered to be comparable to a PaaS-based backend solution if occasional high latency response times are not an issue. In regards to development experience, it was noted that FaaS platforms impose some technical limitations and might affect the development speed negatively in large projects. However, for smaller projects or utilized in sub-components of a large project, FaaS can be a very effective solution, and it can provide increased development speed and low time-to-market.

Read the paper · More papers on PaperTik