A Comparison between Java and Go for Microservice Development and Cloud Deployment
Youqin, Sun (2021)
Youqin, Sun
2021
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-202104195171
https://urn.fi/URN:NBN:fi:amk-202104195171
Tiivistelmä
In the era of Big Data and light-speed socio-economic development, the scalability, availability, and reliability of software systems become increasingly important. As cloud technology advances and matures, a growing number of organizations are moving their operations to the cloud (Babar and Chauhan, 2011). However, the processes of developing applications with different programming languages may differ from one to another. Software projects with similar functionalities may require different resources and produce distinct performance outcomes if they are not built with the same language.
In this paper, the theoretical knowledge of cloud computing, containerization and microservice was presented based on up-to-date resources. Two microservices with equivalent functions were successfully developed and deployed to the Google Cloud Platform using Docker, Helm and Kubernetes. One of the projects was developed with Java and the other with Go. Furthermore, the discrepancies in resource consumption and efficiency were observed and analyzed. Moreover, it was found that the application developed with Go was more efficient and cost-effective. However, the exact advantages and drawbacks of each language depends heavily on the scale, complexity and features of the software system to be developed. Each programming language offers distinct features and various supporting libraries and frameworks. Therefore, extensive research on how to maximize the advantage of those elements for the best outcome of the target application is strongly advised prior to the implementation of such projects.
In this paper, the theoretical knowledge of cloud computing, containerization and microservice was presented based on up-to-date resources. Two microservices with equivalent functions were successfully developed and deployed to the Google Cloud Platform using Docker, Helm and Kubernetes. One of the projects was developed with Java and the other with Go. Furthermore, the discrepancies in resource consumption and efficiency were observed and analyzed. Moreover, it was found that the application developed with Go was more efficient and cost-effective. However, the exact advantages and drawbacks of each language depends heavily on the scale, complexity and features of the software system to be developed. Each programming language offers distinct features and various supporting libraries and frameworks. Therefore, extensive research on how to maximize the advantage of those elements for the best outcome of the target application is strongly advised prior to the implementation of such projects.