Advanced DevOps Service: Database Change Management Solution as Key Performance Booster of Dev Team

  • Duration: 6 months
  • Industries: Telecom Industry; IT Industry
  • 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
  • IT Architecture Paradigms and Approaches: Test Driven Development (TDD)
  • Technical Expertise: Continuous Integration & Continuous Delivery (CI/CD); Databases
  • DevOps Expertise: Advanced build organization; CI/CD Advanced
  • Technologies: Git; Data Bases; Apache Maven; Project Management, Collaboration and Bug Tracking; Jira; XML; Liquibase; Apache Commons CLI; Maven JAR Plugin; JUnit / TestNG; MySQL; Java; DB Connection Pool (DBCP); Maven Shade Plugin; Araxis Merge; Build and Dependency Platforms and Tools; Backend; Oracle DB; Various Editors; XML based technologies; Spring; 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
  • Team size (2):
  • 1 Project Manager
  • 1 Backend

Project summary

thumbnail-image

The LiquibaseUpdater application is a wrapper over Liquibase. This application performs the database migration and allows to control the management process of database version updating.

The application provides the following functionality:

  • Performing operations on filling the database.
  • Getting parameters from the arbitrary configuration file (by default config.properties).
  • Getting data schema from arbitrary directory.

The database filling procedure is carried out according to certain rules described in the Liquibase data schema. Filling the database can be done in two ways: until a certain tag in changes schema or complete database filling according to the scheme.

There is a processes log. Log contains both the information sent to standard output, and exceptions service messages. Each application run creates a separate log file.

The result of application operation is displayed in console as a text status line indicating the time of the application operation and the number of execution errors.

The application composition and structure

  • Console application, interface, services.
  • LiquibaseUpdater main module.
  • Auxiliary modules: Config, CommandLineResolver, LiquibaseManager, LiquibaseService, ExceptionLogger.
  • Third-part libraries (Spring, Liquebase, Apache Commons).
The application composition and structure
The application composition and structure

The application architecture

The application architecture
The application architecture

Technologies

Liquibase, Spring, Apache-cli, JUnit, DBCP, MySQL, Oracle, Maven, Maven-jar, Maven-shade, Jacoco, XML, Liquibase log framework, Git, Jira, Confluence.

  • Distributed team – 3 countries, 3 cities.
  • Scrum/Agile – daily Scrum meetings.
  • Within the project the implementation of the functionality, bug fixing, tests coverage were performed.

Company’s achievements during the project

  • Adobe Experience Manager was quickly studied and used.
  • All the tasks set relating to both UI and server parts of application were solved successfully.
  • The application interaction with ExactTarget service was realized.

Project results

The possibility to control the database versions updating using the LiquibaseUpdater application was realized.

Company’s achievements during the project:

  • Test coverage was checked with Jacoco.
  • Code style standards and code quality requirements were implemented through Sonar.
  • Unit testing was implemented.

Examples

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:

log
Example of log content

Clients about cooperation with JazzTeam

Related projects

Recent Work

    Contact Us

    What happens next?
    • 1

      Leave your project request. We will contact you and schedule a call.

    • 2

      Signing of the NDA to ensure the project info confidentiality.

    • 3

      Negotiation of your request and the required services.

    • 4

      Team forming, coordination of workstages.

    • 5

      Contract signing and project start.