How to Bring Legacy Systems to DevOps Speed
Find a platform that gives you both a solid workhorse and speedy thoroughbred.
The promise of DevOps — faster delivery of core functionalities online, better teamwork, speedier resolution of issues — is real. The only caveat: DevOps must be applied systematically, so its delivery is not slowed down by legacy applications that were not designed for — nor support — agile and DevOps methodologies.
The key to organizational success in every vertical today is to access legacy or backend systems — the workhorse — without creating more code and holding up agile and DevOps — the thoroughbreds that accelerate digital transformation.
Stable vs. Agile
While legacy systems are stable, these large monolithic structures tend to have many interconnected pieces, with one application impacting several other systems. Thus, DevOps faces the hurdle of having to validate changes across all of these affected systems. The complex 10- or 20-year-old architectures that make these systems valuable are the very obstacles that thwart the ability to deliver changes at the pace expected — demanded, actually — by today’s businesses.
On the other hand, agile development and DevOps methodology both aim to deliver software to the business at a faster pace: agile, by targeting shorter goals to allow developers to focus on one problem at a time and see test results quickly after they check in their code; and DevOps, by increasing cross-functional communication and automating everything from build through deployment, thus accelerating delivery of changes to users.
Applications that are completely wrapped in agile and DevOps, with rapid iterations offering many incremental changes to the application over time, fit the Silicon Valley mantra of “fail fast”: implement it, find the problems, resolve them. This is, of course, the opposite of the view that has forever guarded legacy systems and kept them stable and reliable — controlled change coupled with thorough test environments.
Can You Get the Best of Both Worlds?
How can you play to both strengths? Replacing legacy systems is a long, expensive process and is generally not an option. To improve productivity and delivery timelines without making things worse, you need a platform that grants access to the wealth of data stored in legacy systems without requiring a massive amount of new development on those systems — a framework to give DevOps the business logic that applications need, one that is flexible enough to serve that information wherever DevOps teams need it.
The Magic of Microservices
Microservices, or microservices architecture, is an approach to application development in which a large application is built as a suite of modular components or services. For example, an approach that builds APIs on top of microservices composed of standard Java stacks means that Java developers can get to the data they need without having to wait for the legacy team to develop more code. DevOps can continue to “fail fast” and “fail small” since the microservices architecture limits changes required on legacy systems. In this environment, changes are made at the microservice or by combining microservices, just like any other API that can be enhanced or combined. No changes need to occur on the legacy backend.
While the legacy systems continue to store and protect mission-critical data, you can extend those core systems for access by agile teams. Monolithic legacy applications can serve data where and when it is needed with a platform that uses a microservices architecture with APIs that are both easily generated and customizable by Java developers. This platform:
- Uses connectors to tie backend systems into the microservice and API generation to generate the frontend API. This eliminates the need to develop access code in the most common access scenarios — even in a highly flexible environment requiring support for cloud and mobile.
- Helps teams adapt backend access with microservices and DevOps outside the monolith, thanks to integration with modern development and DevOps tools. Developers will find existing skill sets extend to legacy applications and data, and DevOps teams gain the benefits of stable, secure datasets and procedures while making application delivery faster.
- Generates APIs that can be called from any language that supports SOAP or REST API calls. That means developers and teams can use the toolset that best fits the goals of agile and DevOps, taking advantage of the languages they are already familiar with but gaining access to legacy systems and data that power the enterprise.
Remember that most new developers entering the workforce — trained in modern languages like Java, Node.js and Python — are not equipped to handle the environments in which legacy applications were developed and are maintained.
Who Says You Have to Have One or the Other?
The microservices approach lets agile developers generate the APIs, make changes required, and keep their projects moving forward. With the development shifted to agile teams and platforms integrated into the DevOps life cycle, the need for legacy changes is reduced or eliminated, allowing projects to use the data and subsystems that have worked for years, while getting the benefits of agile and DevOps development speeds. Kind of like having your cake and eating it, too.
Feature image via Pixabay.