The European market leader in telecom management technology (Amsterdam, the Netherlands).
A group of applications based on Mule technology.
The customer’s company develops several applications based on Mule technology, and all actions related to the installation of new versions of the software on the server are carried out manually.
At a certain stage, the number of versions and applications increased so much that further manual support became unreasonably expensive and took too much time. In addition, problems that needed to be eliminated regularly emerged during installation. It was necessary to involve a separate specialist (system administrator), and additional resources were constantly required.
Continuous integration and delivery (CI/CD) needed to be implemented in order to organize and systematize the application delivery process.
CI/CD was implemented for the process of developing software products that already exist. Integration and delivery processes carried out manually had already been built on the project. Therefore, it was necessary to introduce automation as painlessly as possible and without compromising commercially important deliveries.
Approaches and solutions
- Exploring the application lifecycle as well as the entire project ecosystem. In order to simplify and optimize part of the activities, our team carried out a detailed analysis of the processes on the project (development, integration, and support). As a result of the study, our specialists created terms of reference for the implementation of CI/CD on the customer’s project.
- Implementation of smoke testing to quickly check the operation of new versions of the application after installation.
- Jenkins installation and job preparation. JazzTeam prepared the necessary jobs in a simple and accessible format, which made it possible to cover the entire base of the project needs. We created a kind of a command post, which collects all information about deliveries. For example, in just a couple of clicks, you can find out which version of each application is installed, when the next delivery is expected, etc.
The following jobs were developed and configured as part of CI/CD implementation:
- Build — runs automatically after each code change (commit to the repository), starts and checks all JUnit tests, and after successful completion of the tests, builds the project or informs the developer about problems.
- Publish release — after successfully building the project, it increases the version of the project and publishes the created zip archive containing the current version of the software product to Nexus (a repository for storing artifacts).
- Deploy on server — gets the latest version number of the application, downloads it from Nexus, and deploys the necessary environment to run the customer’s software product on the application server.
So, a significant part of important processes that had previously been performed manually and required constant involvement of developers became automated.
Outcomes and achievements
- The CI/CD implementation task is completed and the customer is fully satisfied with the work performed. Through the implementation of continuous integration and delivery, the project team was able to move to a completely different level of product delivery management. We managed to significantly reduce labor costs and reduce the time taken for bug fixing, building, and delivery of the software product.
- A full scope of jobs was prepared, which fully covered the needs of the customer’s company.
- All necessary documentation was created and training of the customer’s specialists was carried out. This allows the customer’s specialists to independently support and develop the CI/CD process in the future.