Serverless computing and FaaS platform as a web application backend

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

Perustieteiden korkeakoulu | Master's thesis

Date

2019-06-17

Department

Major/Subject

Web Technologies, Applications and Science

Mcode

WEB

Degree programme

Master’s Programme in Computer, Communication and Information Sciences

Language

en

Pages

56 + 6

Series

Abstract

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.

Pilvipalvelujen suosio on kasvanut räjähdysmäisesti lähivuosina, joka on johtanut IT-infrastruktuurin siirtymiseen yritysten omista palvelintiloista julkisten pilvipalvelintarjoajien konesaleihin. Tämä muutos on mahdollistanut palvelin- ja infrastruktuurihallinnan vastuun siirtämisen kehittäjiltä pilvinpalveluntarjoajille. Tämän lisäksi palveluntarjoajat ovat viime vuosien aikana julkistaneet palveluja, joiden tarkoituksena on abstrahoida instrastruktuuri- ja palvelinhallinta käyttäjän osalta täydellisesti. Näiden palvelujen myötä on myös syntynyt uusi termi, serverless computing, joka viittaa konseptiin, jossa käyttäjän ei tarvitse hallinnoida palvelininfrastruktuuria ollenkaan. Function as a Service (FaaS) on serverless palvelumalli, jonka avulla kehittäjät pystyvät suorittamaan yksittäisiä funktioita pilviympäristössä. FaaS on todettu olevan hyödyllinen monien erilaisten tietojenkäsittelytehtävien suorittamisessa, mutta sen hyödyntäminen web-applikaatioissa voi olla ongelmallista korkeiden vasteaikojen takia. Tästä huolimatta, FaaS-palvelujen hyödyntämisestä web-kehityksessä on paljon kiinnostusta. Tämä diplomityö käsittelee serverless teknologioita, ja analysoi FaaS-alustojen soveltuvuutta web-applikaation taustajärjestelmän toteutuksessa. FaaS-pohjaista web-applikaation taustajärjestelmää on evaluoitu suorityskykytesteillä ja tarkastelemalla sen kehitysprosessia. Työssä verrataan FaaS- ja PaaS-pohjaisia web-applikaatioita kustannusten, suorituskyvyn ja kehityskokemuksen osalta. Tutkimustulosten perusteella, FaaS on huomattavan kustannustehokas vaihtoehto vähäliikenteisille web-applikaatioille, ja suorituskyky on samalla tasolla PaaS-pohjaisen taustajärjestelmän toteutukseen, jos ajoittaiset korkeat vasteajat eivät ole ongelma. Kehityskokemuksen osalta FaaS palvelut asettavat kehitykselle joitain teknisiä rajoituksia, jotka saattavat hidastaa kehitystä isoissa projekteissa. FaaS on kuitenkin erinomainen ratkaisu pienille ohjelmistoprojekteille, tai käytettynä osana laajempia projekteja, jolloin se voi nopeuttaa sovelluskehitystä ja projektien valmistumista.

Description

Supervisor

Vuorimaa, Petri

Thesis advisor

Puumala, Tuukka

Keywords

serverless computing, web development, function as a service, cloud computing

Other note

Citation