Difficult Legacy Applications

A leading company in the consumer finance marketplace was having stability and performance issues with their existing financial processing applications. These legacy applications had become increasingly difficult to maintain, enhance, deploy and run. These applications frequently crashed and were not able to keep up with the increasingly growing demand placed upon them. New features were impossible to develop, test and reliably deploy.

 

SUM Global was engaged to address the stability and performance issues of the legacy system. Our engineers addressed these issues by both fixing critical bugs causing system instability and migrating the legacy platform to a maintainable and growable architecture. SUM Global also introduced industry best practices for source code management (SCM), building, testing and deployment.

 

 

 

Phase 1

 

Following the SUM Global process, our team:

 

  • Migrated existing codebase from poorly organized and largely un-versioned Subversion repository to Git
  • Determined which Subversion revision of the code was running in production
  • Production revisions and current development revisions were migrated to Git where appropriate
  • Split existing monolithic source code repositories into repositories for each separately deployable module
  • Determined library versions used from existing “Library Dump” (A directory where third party libraries were placed)
  • Upgraded libraries based on fixed security bugs
  • Rewrote existing Ant build using Gradle. Explicitly listed dependencies to be dynamically downloaded
  • Migrated deployment environments to scripted, rebuildable CentOS images
  • Created Vagrant virtual machine sandboxes allowing developers to test in the same type of environment the applications were deployed in
  • Created automated deployment modules using RPMs, while adding the capability to move to DEB files in the future
  • Updated Jenkins Continuous Integration (CI) server and built snapshot, nightly and release jobs for all components
  • Added Artifactory repository manager
  • Added third party build dependancies
  • Used for maintaining snapshot, nightly and release versions of internally built artifacts (JARs, WARs, etc.)
  • Stored RPMs in the YUM repository for deployment in all life-cycles
  • Split out environment specific application properties in order to deploy the same binaries in all environments
  • Updated all tools and libraries to recently supported versions
  • Trained staff on new tools
  • Training was an ongoing process. As each tool was updated the staff was introduced to how to use it
  • Documented the process and trained leads to maintain and evolve the process going forward

Phase 2

 

After stabilizing the current environment, SUM Global consultants began working with the business champions and technology management to assist with determining the future direction and architecture. After gathering requirements and future business plans. SUM Global and the company’s chief architect determined the best strategy was to move towards a micro-service, REST based architecture. To support this SUM Global engineers:

 

Migrated new application development to Wildfly application server in order to take advantage of JEE architecture and industry best practices

Introduced Keycloak as an integrated Single Sign On (SSO) and Identity Management (IDM) tool for securing mobile apps, web apps and RESTful web services

Helped develop multiple RESTful micro-services designed to replace existing monolithic applications