Executive summary
With over $6 billion in annual revenues and 13,000+ employees, this US-based business and financial services company is a leading provider of financial analysis software, consulting, training and software services.
One of the company’s highly profitable and business-critical brands is an educational and training business platform that offers licensing courses, advanced certifications, continuing education and custom training for financial services professionals.
Over 500,000 students have taken courses on this platform, which is an aging monolithic enterprise application built nearly two decades ago. The monolithic architecture is now challenging their engineering teams with a lack of flexibility, development velocity, and accurate documentation, as well as a “black box” scenario resulting from functionality built by multiple teams with various development and release strategies over the years.
The challenges
Aging architecture
The application is a Java monolith developed over nearly two decades across multiple teams with different development practices and project sprints. Various development and release processes made it difficult to comprehend the service footprint and functionalities.
Documentation gaps
Over the years, documentation about the system became muddled. Without a clear grasp of how each part of the application functions, the team was unable to accurately scope and plan modernization efforts without committing to years of reverse engineering.
Stalled manual efforts
As a result of decades of mixed development and release patterns plus a general lack of accurate documentation, modernization efforts stalled. The team estimates that as much as $1 million was spent trying to manually update and support this critical application–without success.
The solution with vFunction
Transformation to microservices
The team’s strategy depended on the ability to transform a monolithic application to a decoupled microservices architecture deployed to AWS–all while shielding customers from negative impacts due to refactoring. Using a combination of vFunction Modernization Hub and AWS Migration Hub Refactor Spaces, the team started by decomposing and extracting functionality for a single critical microservice.
Automation and AI with vFunction
The team used vFunction Modernization Hub to automatically assess, analyze, and extract a single microservice from their monolith without making changes to their existing code base. This allowed them to create fresh APIs, replacing existing entry points, to this isolated service and begin a broader modernization refactoring effort.
Routing and provisioning from AWS
Using AWS Migration Hub Refactor Spaces, the team provisioned a new environment to operate alongside the existing monolithic application. This included routing for the newly extracted microservice, and a set of default routes and services that matched existing API calls for the monolith.
The results
Clearly defined scope and resources
vFunction gave the team insights into the system architecture, suggested domains for new microservices, and the ability to refactor code at the individual class level. This enabled them to accurately determine the scope of the modernization effort, identify the resources, time, and expertise needed, and locate specific areas of functionality where refactoring would provide the
largest impact.
Application scalability
By moving from a complex, on-premise monolith to individual microservices in the cloud, they were able to achieve higher levels of scalability for critical services. Leveraging AWS technologies like EC2 lets the team flexibly manage and provision compute resources to meet their ideal targets without risks to the user experience.
Future risk reduction
This industry leader now has a clear path forward and the right tools to analyze, extract, provision, and host additionally decomposed microservices going forward. The team is confident that this “factory model” approach to modernization will enable them to eliminate risk due to aging code, frameworks, and complexity. This is especially valuable for incorporating future IT functionality as well as new acquisitions for their application portfolio.