This post was co-written by Stephen Midgley and Victoria Wright.
A common challenge that countless organizations face is legacy tech debt and developer toil as a result of clunky middleware. To combat this, many organizations know that they should migrate to open source frameworks, but doing so can be highly complex and tedious—especially when done manually. For example, with help from VMware Tanzu Labs, a financial services company migrated from a legacy enterprise service bus platform to a fully microservice-based environment, achieving a predicted 50 percent reduction in developer toil. In just two months, Tanzu Labs demonstrated how they could automate 75 percent of the organization's code, and how it would lead to massive time savings and cost efficiencies.
Enterprise service buses accrue technical debt over time
Enterprise service buses (ESB) are a type of middleware that are built upon the concept that there should be a central system that enables application-to-application communication. Although that sounds great in theory, many organizations tend to run into problems with ESB over time. With the low-code nature of service buses, it’s easy for teams to wire up their logic using drag and drop GUIs. Over time, the logic embedded in these low-code systems can become extremely difficult to test and maintain. In addition, when the ESB needs to be upgraded to a new version, it may require a new syntax for the applications running on it.
As a result, many organizations are opting to move from legacy middleware to more modern, open source frameworks like Spring. These frameworks embrace test-driven development (TDD) and encourage microservice architectures. Making the move from a legacy ESB to a true microservice-based infrastructure is difficult and requires massive amounts of logic re-writing.
Luckily, in our years of work helping enterprises move to open source frameworks, Tanzu Labs has streamlined the migration process with tools and “recipes,” or, repeatable patterns that can be used for multiple applications and workloads. Through hundreds of engagements, these recipes have a proven track record of enabling customers to successfully migrate to their desired technology.
Migrate off legacy middleware faster with automation and tooling
Over the years, we’ve identified the opportunity to automate these recipes and embed them into tooling. When working with the financial services company discussed above and many other customers, we’ve found there are important considerations to work through in order to automate and execute a successful migration off of middleware:
- How can you be sure that developers will use the automated tools which are created?
- How can you be sure that developers will accept and be able to understand the code generated?
- How can you be sure that the output quality of the tools meet your company's quality of standards?
With these considerations in mind, how can we streamline the migration from legacy middleware to open source frameworks in a way that’s simple and fast? Tooling and building an iterative strategy both play a huge role in answering that question. We have built a comprehensive multiphase working practice based on those two elements in order to achieve results quickly and efficiently.
During our engagement with the financial services organization, we used Spring Boot Migrator to analyze the source code of existing applications, and created new source code by applying automated recipes. Spring Boot Migrator uses Abstract Syntax Trees (AST) to find underlying patterns within code and map these to automated recipes.
Combined with our initial review of the ESB estate using Cloud Suitability Analyzer (a tool that scans and scores an application’s cloud readiness), we identified the Spring Boot Migrator recipes that made sense to automate based on common archetypes.
Once we knew the recipes we wanted to generate, we selected our first application to migrate—one that had low complexity but featured most frequently used components. Then, once we had successfully migrated the first application, we created recipes for automation and repeated the process within the estate. In the meantime, the new recipes were distributed to the development teams for their immediate use.
Achieving major efficiency gains
As a result of building an iterative strategy and leveraging tooling like Spring Boot Migrator, we were able to demonstrate the full generation of 75 percent of the source code and partially generate 10 percent—leaving just a small percentage to be handled manually. Applications that would have previously taken development teams hours to convert to Spring could now migrate in minutes, leading to incredible time and cost savings.