Serverless vs. traditional computing : a multi-dimensional comparative analysis
Amman, Mohammad (2025)
Kandidaatintyö
Amman, Mohammad
2025
School of Engineering Science, Tietotekniikka
Kaikki oikeudet pidätetään.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe2025080580893
https://urn.fi/URN:NBN:fi-fe2025080580893
Tiivistelmä
Serverless computing has recently emerged as the new trend in the world of web development. Big companies are moving from traditional client-server-based models to a serverless model. However, there is not much research that directly compares these two models across essential aspects such as Performance, Cost, Scalability, Energy consumption, and developer productivity. Many companies are adopting serverless infrastructure without knowing the pros and cons of the serverless model. This thesis aims to fill in the gaps and give us a clear understanding of which model to choose under which circumstances, with the help of experimental evidence.
For the experiments, a payslip-generating application was developed for both AWS Lambda (serverless) and AWS EC2 (traditional server) using Python.
Payslips of five thousand employees were sent to both AWS EC2 and AWS Lambda applications. Then, the system was theoretically scaled to ten million requests based on the measurements to evaluate the performance. The cost estimations were conducted using AWS pricing calculator. Scalability, Energy consumption, and developer productivity were evaluated through measurement data and estimation.
The research showed that AWS EC2 exceeded AWS Lambda in CPU-intensive and sustained workloads by handling 10 million requests significantly faster. Average response time for EC2 was 80ms, whereas for Lambda, it was 120ms. AWS Lambda showed a considerable reduction in cost for variable or low-duty-cycle workloads, with a breakeven point of around 5.3 million monthly requests. AWS Lambda also showed automatic scalability and a 54% reduction in energy consumption. While Lambda provided faster development time, EC2 provided better debugging and more detailed control.
The most significant limitation of this research is the use of a very small-scale application due to budgetary constraints, which might not accurately represent enterprise-level workload. The exclusive testing on AWS, excluding alternative cloud providers such as Azure or Google Cloud, was also a limitation. The implementation was conducted solely in Python. Using compiled languages like Java would increase the performance.
For the experiments, a payslip-generating application was developed for both AWS Lambda (serverless) and AWS EC2 (traditional server) using Python.
Payslips of five thousand employees were sent to both AWS EC2 and AWS Lambda applications. Then, the system was theoretically scaled to ten million requests based on the measurements to evaluate the performance. The cost estimations were conducted using AWS pricing calculator. Scalability, Energy consumption, and developer productivity were evaluated through measurement data and estimation.
The research showed that AWS EC2 exceeded AWS Lambda in CPU-intensive and sustained workloads by handling 10 million requests significantly faster. Average response time for EC2 was 80ms, whereas for Lambda, it was 120ms. AWS Lambda showed a considerable reduction in cost for variable or low-duty-cycle workloads, with a breakeven point of around 5.3 million monthly requests. AWS Lambda also showed automatic scalability and a 54% reduction in energy consumption. While Lambda provided faster development time, EC2 provided better debugging and more detailed control.
The most significant limitation of this research is the use of a very small-scale application due to budgetary constraints, which might not accurately represent enterprise-level workload. The exclusive testing on AWS, excluding alternative cloud providers such as Azure or Google Cloud, was also a limitation. The implementation was conducted solely in Python. Using compiled languages like Java would increase the performance.
