Full-stack project containerization
Thielman, Geoffrey (2022)
Thielman, Geoffrey
2022
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2022053113678
https://urn.fi/URN:NBN:fi:amk-2022053113678
Tiivistelmä
Software development has undergone an overhaul when it comes to the testing and
delivering software products. Hosting software for business related purposes upon
virtual machines has grown to be an encumbering process with significant overhead
when it comes to manging many virtual machines. The industry has shifted towards
utilizing containerization technologies to solve this overhead and to leverage
consistency of their products.
The author explores the concepts and role of virtual machines within its former
traditional hosting role for software compared to that of containers, its successor. He
suggests that containers add value to traditional virtual machines hosting with added
security and increased abstraction while creating consolidating physical resources to
the actual software solution rather than the operating system and overhead processes.
The introduction of a product thesis covered that of a testing tool in development that
already has been taken into use with a growing pain of building installers as the end
solution for the testing and delivering the product to the end-users. Slow builds have
been hampering testing phases significantly due to wait times for the installer to be
built. The solution previously being prone to environmental errors caused by
installations in unsupported operating system by end-users which has been taking time
away from developers to resolve these.
The thesis goals have been set by the author to minimize these problems by
containerizing the full-stack project that makes up the testing project, to automatize its
building process and to publish to an Artifactory storage. The sub-goal being to reduce
build times by at least 40 % compared to its previous build solution.
Overcomming implementation difficulties and having theorized multiple methods to
optimize build times with various tools, the author succesfully containerized the project
into isolated containers for each component. Having containerized the solutions he
constructed the continuous deployment pipelines required to accommodate the need
for automation.
The author concludes the project in an overall succes while displaying minimum time
saves of 55 % and describes direct and indirect benefits of the containerization for the
future of the test tool’s development.
delivering software products. Hosting software for business related purposes upon
virtual machines has grown to be an encumbering process with significant overhead
when it comes to manging many virtual machines. The industry has shifted towards
utilizing containerization technologies to solve this overhead and to leverage
consistency of their products.
The author explores the concepts and role of virtual machines within its former
traditional hosting role for software compared to that of containers, its successor. He
suggests that containers add value to traditional virtual machines hosting with added
security and increased abstraction while creating consolidating physical resources to
the actual software solution rather than the operating system and overhead processes.
The introduction of a product thesis covered that of a testing tool in development that
already has been taken into use with a growing pain of building installers as the end
solution for the testing and delivering the product to the end-users. Slow builds have
been hampering testing phases significantly due to wait times for the installer to be
built. The solution previously being prone to environmental errors caused by
installations in unsupported operating system by end-users which has been taking time
away from developers to resolve these.
The thesis goals have been set by the author to minimize these problems by
containerizing the full-stack project that makes up the testing project, to automatize its
building process and to publish to an Artifactory storage. The sub-goal being to reduce
build times by at least 40 % compared to its previous build solution.
Overcomming implementation difficulties and having theorized multiple methods to
optimize build times with various tools, the author succesfully containerized the project
into isolated containers for each component. Having containerized the solutions he
constructed the continuous deployment pipelines required to accommodate the need
for automation.
The author concludes the project in an overall succes while displaying minimum time
saves of 55 % and describes direct and indirect benefits of the containerization for the
future of the test tool’s development.