Containerization of a polyglot microservice application using Docker and Kubernetes

Vamsi Krishna Yepuri,Venkata Kalyan Polamarasetty,Shivani Donthi,Ajay Kumar Reddy Gondi
2023-05-01
Abstract:This project investigates the benefits of containerization technology in modern software development and deployment. The study emphasizes the advantages of using Kubernetes and Docker in the development process, including the easy packaging and deployment of microservices, efficient resource utilization, faster startup times, and greater scalability and flexibility. The project concludes by proposing a study that involves creating a polyglot microservice application using Java, Python, and JavaScript, containerizing it with Docker, and deploying it in Kubernetes. The study aims to evaluate service discovery and auto-scaling in distributed mode and compare the performance metrics with virtual machines and containers. The results of this study can inform software development teams about the benefits of containerization in modern software development and deployment.
Software Engineering,Performance
What problem does this paper attempt to address?
The problem this paper attempts to address is optimizing the development, deployment, and management process of multi-language microservice applications using Docker and Kubernetes containerization technologies. Specifically, the study aims to evaluate the advantages of containerization technologies in modern software development, including: 1. **Easy packaging and deployment of microservices**: Each microservice can be packaged into a container image, making it easier to deploy and run in different environments without compatibility issues. 2. **Efficient resource utilization**: Containers share the same operating system kernel, thereby improving resource utilization, reducing startup time, and enhancing scalability and flexibility. 3. **Automatic scaling and service discovery**: In a distributed environment, Kubernetes can automatically manage and scale containerized microservices, ensuring high availability and performance. 4. **Performance comparison**: By comparing with virtual machines, the study evaluates the performance differences of containerization technologies in terms of resource utilization, startup time, scalability, and storage efficiency. To achieve these goals, the researchers built a multi-language microservice application (using Java, Python, and JavaScript), containerized it, and deployed it on Kubernetes to evaluate the capabilities of service discovery and automatic scaling, and compared its performance with traditional virtual machine strategies. The research results can help software development teams understand the advantages of containerization technologies in modern software development and deployment.