Serverless Computing Use Cases – Benefits and Disadvantages
Kylliäinen, Jonas (2022)
Kylliäinen, Jonas
2022
Julkaisu on tekijänoikeussäännösten alainen. Teosta voi lukea ja tulostaa henkilökohtaista käyttöä varten. Käyttö kaupallisiin tarkoituksiin on kielletty.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe2022102262761
https://urn.fi/URN:NBN:fi-fe2022102262761
Tiivistelmä
Serverless Computing is a form of cloud service where the cloud vendor offers a platform with a simplified development and deployment environment, allowing developers to focus primarily on implementing business logic. Moreover, the operation burden is reduced as the cloud vendor manages all the inner workings of the platform. The level of abstraction has also made the consumption-based billing-model possible, in which the customer only pays for the computational resources consumed by their applications.
This thesis explores the benefits and disadvantages of implementing business solutions in the cloud using serverless platforms as opposed to more conventional application development. Three example use cases are investigated, each having a conventional implementation and serverless alternative. The serverless implementations were developed using cloud services available in Microsoft Azure, whilst the conventional ones utilised Java combined with Spring Boot.
The serverless implementations demonstrated that the platforms made it effortless to implement certain features, as the complexity was managed by the vendor. Moreover, the characteristics of the platforms made them particularly suitable for applications featuring bursty workloads. However, there are drawbacks as well, a considerable one being the hard dependencies to the platforms that the serverless implementations featured. These dependencies create an effective vendor lock-in, tying the customer to the cloud vendor.
This thesis explores the benefits and disadvantages of implementing business solutions in the cloud using serverless platforms as opposed to more conventional application development. Three example use cases are investigated, each having a conventional implementation and serverless alternative. The serverless implementations were developed using cloud services available in Microsoft Azure, whilst the conventional ones utilised Java combined with Spring Boot.
The serverless implementations demonstrated that the platforms made it effortless to implement certain features, as the complexity was managed by the vendor. Moreover, the characteristics of the platforms made them particularly suitable for applications featuring bursty workloads. However, there are drawbacks as well, a considerable one being the hard dependencies to the platforms that the serverless implementations featured. These dependencies create an effective vendor lock-in, tying the customer to the cloud vendor.