The serverless computing trend is steadily picking up steam over the last few years and is challenging the traditional microservices on Kubernetes model which included inefficiencies like idling. The big three cloud providers AWS, GCP and Azure have different opinions on what ser
...
The serverless computing trend is steadily picking up steam over the last few years and is challenging the traditional microservices on Kubernetes model which included inefficiencies like idling. The big three cloud providers AWS, GCP and Azure have different opinions on what serverless computing and serverless applications should look like, how they should be designed and what their architecture should be leading to each cloud going their own separate way. Ultimately, this causes vendor lock-in, fragments the serverless cloud technology landscape, paralyzes other research and development efforts while also harming other stakeholders like users, developers and businesses that depend on these cloud services and products. The heavy reliance on often changing proprietary API that is not compatible with alternatives makes stability a serious concern and enables exploitation of users. This thesis proposes MSA - Monadic approach to Serverless Applications to enables developers to write cloud agnostic serverless applications and tackle vendor lock-in. Users can build complex serverless applications without polluting business logic and migrate from one cloud to another by pressing a button. This thesis makes multiple other contributions such as documenting and showing how to reconcile differences in features between the big clouds in various ways for telemetry, metrics, unifying interactions of equivalent services in different clouds, getting rid of tedious boilerplate code in business logic while remaining cloud agnostic among others. Three serverless applications are built with MSA and benchmarked against equivalent applications build with alternatives. Serverless applications built with MSA frequently outperformed in execution time and RAM usage. These experiments also yielded insights on situations in which certain types of serverless applications perform better on a cloud than others. Lastly, usability of MSA and the quality of solution (solving vendor lock-in) received good scores in a user survey.