Evaluation of Programming Languages for Memory Usage, Scalability, and Cold Start, on AWS Lambda Serverless Platform as a Case Study
摘要
Serverless Computing is a Cloud architecture, an alternative to the traditional model. It offers numerous advantages over the monolithic model, such as providing agility, innovation, automatic scaling, flexibility in development and better evaluation and control of costs. It emerged as an evolution of microservices running in containers and implementing functions, which is why it is sometimes called function as a service. Although it has the aforementioned advantages, there are also many challenges and problems to solve. Among them the initialization or startup of said functions, this problem known as cold start. Most scientific publications do not take programming languages into account for this analysis. In this work, the behavior of different programming languages in initialization, cold start, memory use and scalability is evaluated, under a serverless approach on the Amazon Web Services platform. Because the comparison of languages can be carried out in different aspects or taking different types of metrics, it was considered appropriate to perform the tests using CRUD operations. This also allows us to analyze their behavior when initializing the database. Therefore, a series of questions arise, such as: Are the initialization of the programming languages all the same? Is the initialization of the database with the programming languages independent of the language used? Is the cold start equivalent in the different languages? Is its impact relevant when the number of requirements is high? Does memory usage and scalability behave the same, regardless of the programming language? Through the tests carried out, it was possible to evaluate the behavior of the programming languages and answer some of the questions mentioned above.