Staging Environment Implementation in a Software Delivery Automation Pipeline
Teivonen, Patrik (2024)
Teivonen, Patrik
2024
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2024060521178
https://urn.fi/URN:NBN:fi:amk-2024060521178
Tiivistelmä
This thesis aims to evaluate the use of staging environments in enhancing the development processes for software delivery automation pipeline tooling. With the implementation of a staging environment for an existing delivery automation pipeline case, it was envisioned that adding it would ease the testing of changes to the tools and configurations while not disrupting the production environment and releases, thus improving the efficiency and the quality of the release process. The work was commissioned by The Qt Company Oy.
The first step in achieving the intended goals was to map out the current automation infrastructure and to identify the minimal required changes for the pipeline to support a multi-deployment scenario and which parts needed to be replicated. Then, a more refined version control branching strategy was chosen as a vehicle to make those adjustments without unnecessarily disrupting the production deployment and for the future development of the automation tooling. Finally, the deployment of the automation pipeline was conducted to provisioned machines in the staging environment, verifying that the configurations are correctly set up and that all parts of the pipeline functioned as expected.
The thesis work concluded with a functioning initial deployment of the staging pipeline. Additionally, the new proposed development and testing process for automation tooling was trialed with taking it in use for the subsequent changes. The new branching and production update strategy has already proved effective in speeding up the development workflow separating it from other release activities, although it will take some more time for everything to adopt the new process. While not all the benefits of the staging environment could be realized at this early stage, the results gathered were considered useful in detecting gaps in the current deployment and planning future enhancements.
The first step in achieving the intended goals was to map out the current automation infrastructure and to identify the minimal required changes for the pipeline to support a multi-deployment scenario and which parts needed to be replicated. Then, a more refined version control branching strategy was chosen as a vehicle to make those adjustments without unnecessarily disrupting the production deployment and for the future development of the automation tooling. Finally, the deployment of the automation pipeline was conducted to provisioned machines in the staging environment, verifying that the configurations are correctly set up and that all parts of the pipeline functioned as expected.
The thesis work concluded with a functioning initial deployment of the staging pipeline. Additionally, the new proposed development and testing process for automation tooling was trialed with taking it in use for the subsequent changes. The new branching and production update strategy has already proved effective in speeding up the development workflow separating it from other release activities, although it will take some more time for everything to adopt the new process. While not all the benefits of the staging environment could be realized at this early stage, the results gathered were considered useful in detecting gaps in the current deployment and planning future enhancements.