Comparing Programming Languages used in AWS Lambda for Serverless Architecture
Shrestha, Sachin (2019)
Shrestha, Sachin
2019
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2019070117607
https://urn.fi/URN:NBN:fi:amk-2019070117607
Tiivistelmä
The primary purpose of this thesis was to explore AWS Lambda service and its features provided by Amazon.com, Inc. The benefits and importance of this service which adapts the principles of serverless computing are discussed. This service has been used in case company to manage infrastructure that hosts and executes codes. The task of such service includes sizing the available provision and scale multiple servers while managing operating system updates, apply security patches and then monitor all the resources for performance and availability.
The secondary purpose is to research in detail about the native programming languages supported by AWS Lambda and their respective implementation methods. They are popular languages in technological field and widely implemented everywhere. These languages are compared under the characteristics of availability of compilers and tools, reusability, efficiency, familiarity, reliability and readability. The specification of each language is studied, and the project report is constructed by providing same test case for all natively supported language separately multiple times.
The analytics result of individual performance under project case was documented and observed to form a general conclusion. It was observed that there is subtle difference in performance among the language when tested in common environment. In terms of speed of execution, interpreted languages performed better than compiled language. While performing the cold start process, C# was slower than other languages, but the difference was in milliseconds. Java had the largest package size compared to others.
This thesis can be useful to get detailed information about AWS Lambda service and know why it is an important realization of serverless architecture. This study also dis-cusses the benefits of serverless architecture over traditional systems on the grounds of efficiency, performance and cost of production and maintenance. The options to integrate AWS Lambda with other services provided by AWS is the main reason for its popularity. The language can be chosen depending upon the requirement of application service model and developer’s preference.
The secondary purpose is to research in detail about the native programming languages supported by AWS Lambda and their respective implementation methods. They are popular languages in technological field and widely implemented everywhere. These languages are compared under the characteristics of availability of compilers and tools, reusability, efficiency, familiarity, reliability and readability. The specification of each language is studied, and the project report is constructed by providing same test case for all natively supported language separately multiple times.
The analytics result of individual performance under project case was documented and observed to form a general conclusion. It was observed that there is subtle difference in performance among the language when tested in common environment. In terms of speed of execution, interpreted languages performed better than compiled language. While performing the cold start process, C# was slower than other languages, but the difference was in milliseconds. Java had the largest package size compared to others.
This thesis can be useful to get detailed information about AWS Lambda service and know why it is an important realization of serverless architecture. This study also dis-cusses the benefits of serverless architecture over traditional systems on the grounds of efficiency, performance and cost of production and maintenance. The options to integrate AWS Lambda with other services provided by AWS is the main reason for its popularity. The language can be chosen depending upon the requirement of application service model and developer’s preference.