Issues with the infrastructure provider impacted roll-outs during a project to expand the functionality of the existing software. The project team was facing delays due to technical issues on the infrastructure level. Needed tools and libraries were not provided in the requested versions and were not consistence across all servers. There was a rising need for automated deployment of the software during the project.
Background of the Project
The multi-tier enterprise software was to be deployed into multiple locations for a large scale project. The client was outsourcing the IT infrastructure operations and had just recently changed the service provider, who was just starting the process of taking over the systems and processes while working out the technical dept and restrictions the client’s landscape, workflows and requirements imposed.
Paired with manual processes for configuration and setup, each deployment was bringing new issues and problems which resulted in added new steps to the deployment guide.
All of this threatened the success of the project which aimed to replace legacy components and introduce new functionality to grow production automation.
The ongoing development required new deployments every few weeks on the staging system, which was then to be was to be deployed to the production system once approved. In addition the new features included additional libraries and tools which were not part of the approved configuration deployments, which meant they have to be bundled with the built scripts.
Automated deployment streamlined the process, reduced the dependency on developers and minimized the human error factor.
After analysis of the provided servers on the client side, we created the needed configuration and bundled the needed libraries and tools into a bundle. As the client’s infrastructure didn’t utilize modern IaC tools, we have created our own scripts to check the environment, install and configure the dependencies, setup the software and setup the environment including the system service scripts.
Once it was tested and approved we moved on to automate the scripts, eliminating the need for a ticket request to the local IT department and a dedicated developer in the team for each deployment. The project team was able to just run the tested and approved scripts to deploy the new software versions whenever needed.
The project team was able to focus on the testing and deploying the new functionality and generating value fast to the customer. Before the deployment automation they had invested a lot of time and effort into getting the environment in the right configuration each time the needed to deploy changes to a new machine. The automated configuration and deployment was an added effort at the initial phase, but it was worth it, as it streamlined the whole process across multiple hosts.
The project gained more flexibility
The automation reduced the needed skills in the different phases, freeing the developers from the mundane tasks of setting up and debugging the hosts leaving them more time for the actual feature development. The operations engineers, both on the end client and on the vendor side, were relieved of the tasks of coordinating together these deployments and troubleshooting the issues.
Automated deployment produced also a lot less incidents
The generated code had included sanity checks and all the needed configuration, which meant that it ran each time in the same manner. This meant that the team was able to save time on the project, as it was running very smoothly.