Containerization of Web Application Back-Ends - Järvinen, Marko (My University, 2024)
Traditionally, web applications and services have been deployed on-premise on physical servers or virtual machines by installing and configuring the necessary software and dependencies manually. This approach can be cumbersome and inefficient, especially when it comes to managing dependencies and scaling applications. As an alternative to traditional deployment methods, utilizing container technologies has emerged as a popular solution for packaging and deploying applications in a consistent and efficient manner. Containers encapsulate an application and its dependencies together with its configuration into lightweight self-contained units that can be independently deployed and managed with relative ease. By running applications in containers, the underlying infrastructure is abstracted from the developer, allowing them to focus on writing code and building applications rather than managing the infrastructure. This thesis explores and investigates containerization and container technologies as a solution for operational bottlenecks faced by web application back-ends. The thesis begins by providing a background and overview of container technologies, focusing on Docker containers. Then, a literature review is conducted to identify the benefits and drawbacks of containerization in the context of software development and deployment. After this, a case study is presented on a web application called eShare, which is an information management tool for engineering projects in marine and process industries developed by Cadmatic. The case study involves identifying operational bottlenecks in eShare and proposing a partial containerization solution to address these bottlenecks based on the results of the literature review. Lastly, the feasibility and effectiveness of the proposed containerization solution are evaluated by comparing the containerized solution with the unmodified eShare application.
Keywords: docker, containers, containerization, microservices, web applications