Provided services
Backend Development, Test Automation Services, CI/CD Implementation & Modernization. DevOps Services, Early-Stage Innovation, R&D Services, Software Reengineering, Refactoring and Modernization. Cloud Migration
Client
The established BSS (Business Support System) provider with a strong global presence and over 30 years of experience is dedicated to assisting prominent telecom and technology enterprises.
Product
Database update management application based on the Liquibase library.
The application provides the ability to perform database filling operations, get parameters from an arbitrary configuration file (config.properties by default), and load the data schema from a specified directory. Database filling is performed according to the rules described in the Liquibase data schema and can be performed in two ways: up to a certain tag in the schema or in full. This approach provides flexibility and convenience for the team, making it easy to manage data versions and simplify rollbacks of changes when necessary.
The process generates logging that includes both information output to the standard stream and error messages. Each time the application is launched, a separate log file is generated, contributing to work transparency and convenient analysis of emerging problems.
The result of the application operation is displayed in the console in the form of a text status bar containing the execution time and number of errors, which helps the team to promptly assess the correctness of the system operation and quickly respond to possible failures.
The application composition and structure:
- Console application, interface, services.
- LiquibaseUpdater main module.
- Auxiliary modules: Config, CommandLineResolver, LiquibaseManager, LiquibaseService, ExceptionLogger.

Challenge
The customer company works with non-trivial products with rather complex logic and many components. Therefore, customized automation of the software build and delivery process was one of the most important priorities for the team. Our company had to develop a clear, easy-to-use tool that would allow the customer to manage the data update process on different projects. All of this had to be released under tight deadlines and taking into account all the risks that can happen in the process of building and deploying products.
Initially, there were quite a lot of routine, ordinary operations in the development process, on which the stability of builds directly depended. Therefore, in this case, it was important to avoid the influence of the human factor and customize the CI/CD process, taking into account all the nuances, peculiarities of the delivery process of products developed by the customer’s team.
It was also necessary to save budget by building an application in the form of a wrapper based on an open-source product to provide CI/CD for working with databases (Liquibase).
JazzTeam Challenge
Automation of complex products in the telecommunications industry is very rarely performed on a project-by-project basis. This is a complex solution that requires deep immersion in the processes and specifics of the customer’s sphere of activity. However, in this case, we already had experience of cooperation and full trust of the client. Therefore, our team had to perform application development “turnkey” by a 3-country distributed team.
Solution
After thoroughly analyzing the system and studying the customer’s requirements, the decision was made to implement CI/CD as a separate component through the LiquibaseUpdater application. This solution was designed to manage database versions using the Liquibase tool efficiently. The primary objective was to ensure reliable migration execution, correct database population according to predefined schemas, and the ability to roll back changes to specified versions.
To enhance adaptability to various environments, the application was integrated with configuration files, enabling its operation to be customized based on the specific needs of each project. A key feature of the solution was the implementation of detailed logging for all operations, which ensured process transparency and greatly simplified error diagnostics.
Technological overview
The application was developed using the open-source library Liquibase, which allows efficient database version management, as well as database refactoring and change management in various database management systems (DBMS). Unit tests were prepared to ensure the reliability and correctness of the application. The coverage of the tests was checked using Jacoco. Code style standards and code quality requirements were implemented through Sonar.
Third-party libraries (Spring, Liquibase, Apache Commons).

The application architecture

Example of database commit:
The full database update
./liquibase_updater.bat -verbose -install=d:/doc/changelog/rollback2tag/master.xml
Update until a tag
./liquibase_updater.bat -verbose -config=config.properties -install=d:/doc/changelog/rollback2tag/master.xml -tag=version_0.1.0
Example of database rollback:
The full database rollback
./liquibase_updater.bat -verbose -force -config=config.properties -rollback=d:/doc/changelog/rollback/master.xml
Rollback until a tag
./liquibase_updater.bat -verbose -config=config.properties -rollback=d:/doc/changelog/rollback2tag/master.xml -tag=version_0.1.0
Rolling back the full database requires an additional key -force.
Example of log content:

Result
The ability to manage database version updates using the LiquibaseUpdater application was successfully implemented. Thanks to the decision to do the task at the level of a separate CI/CD service, the productivity of all customer teams was significantly increased, as the component was independent and could be easily integrated into the development process of different products. Within the project, the implementation of the functionality, bug fixing, and test coverage were performed.
JazzTeam Achievement
Quickly mastered Adobe Experience Manager to integrate with the client’s internal portals and publish release information.
Implemented integration with ExactTarget to automate notifications about database update statuses.
Enabled seamless CI/CD integration with the client’s corporate ecosystem.
Technologies
JUnit / TestNG; Git; Data Bases; Apache Maven; Project Management, Collaboration and Bug Tracking; Jira; XML; Liquibase; Apache Commons CLI; Maven JAR Plugin; DB Connection Pool (DBCP); Maven Shade Plugin; MySQL; Java; Oracle DB; Araxis Merge; Build and Dependency Platforms and Tools; Backend; Spring; Various Editors; XML based technologies; Test Automation; Source Code Management (SCM); CI/CD and DevOps; Languages, Protocols, APIs, Network Tools; Software Engineering and Management Tools; JaCoCo; Confluence; Java Libraries; Apache Commons; DB Tools