Case study
Legacy modernisation and support

Containerising legacy Java back-office applications

How we made two legacy Java registry applications of a state-owned enterprise portable and easy to deploy - without touching the business logic.

Download the case study
PDF · in English and Hungarian
2
legacy Java applications
1
shared Docker layer
0
changes to business logic
Next-next
deployment via Git-Nexus

The client

Client website

Our client is a Hungarian state-owned enterprise whose day-to-day operations are supported by two legacy Java back-office registry applications. The applications ran on Java 11, the Payara application server and a PostgreSQL database, on Windows servers.

The goal was to move the application runtime from Windows to Linux - without changing the proven business operation, while making operations simpler.

Client
Hungarian state-owned enterprise
Industry
State-owned enterprise
Project type
Legacy modernisation, containerisation
Duration
~5 months, including testing
Team
FrontX: project manager, database architect, Java developer
Key technologies
Java 11, Payara Server, PostgreSQL, Docker, Git, Nexus, Linux

The challenge

FrontX took part in the project as both designer and implementer. The starting point was difficult in several respects:

A mandatory platform changeThe application runtime had to be migrated from Windows to Linux.

A costly native migrationPorting the two applications natively to the new environment would have required a very significant effort.

Slow performance, hard to operateThe applications were very slow and hard to operate.

Hardcoded environment settingsSP integration, mobile app integration, file server paths and server environment settings were hardcoded, so every environment change required a developer.

Our approach

On the FrontX side the team was a project manager, a database architect and a Java developer. AI-based development tools were also used during the work.

Containerisation instead of native migration

Instead of rewriting the applications natively, we placed them in Docker containers. The Payara application server, PostgreSQL and the other runtime components run inside the container, so the solution is portable and works independently of the host operating system.

One shared Docker layer for two applications

The same Docker layer was built for both applications, in a way that left the business logic unchanged. This reduced both the development effort and later operating effort, and made the two systems consistent to manage.

Git-Nexus integration, next-next deployment

The containerised solution is built with Git and Nexus integration, turning deployment into a simple, step-by-step (next-next) process.

Externalised environment settings

The previously hardcoded environment settings - SP integration, mobile app integration, file server paths, server environment settings - were moved to an external setup file, where they can be changed easily.

Results

Both applications moved to the new environment without a native migration. As a result of the project:

  • Fast deploymentThanks to the Git-Nexus integration, deployment became a fast, next-next process.
  • Environment independenceThe applications run in containers together with their full runtime environment, so they are portable and independent of the host operating system.
  • Better performanceThe previously very slow applications perform better in the containerised environment.
  • Unchanged business logicThe proven business operation did not have to be touched, which reduced project risk.
  • A consistent solutionBoth applications are built on the same Docker layer.
  • Configurable environmentEnvironment settings can be changed in the external setup file, without developer involvement.

Lessons for other projects

A platform change does not have to mean a rewriteWith containerisation, a legacy application can be moved to a new environment without taking on the full cost and risk of a native migration.

One shared layer can serve several applicationsWhere runtimes are similar, a single well-designed Docker layer can cover the modernisation of several systems.

Externalise configurationMoving hardcoded environment settings to an external file brings a real operational benefit, even as a side effect of modernisation.

AI tools help with legacy work tooThe AI-based tools used during development supported the team in a legacy environment too.

Planning a similar project?

If you are facing a greenfield build or a complex business domain, we would be glad to talk through how we would approach it. No obligation.

Book a free consultation