This blog outlines the challenges involved in implementing DevOps while maintaining legacy mainframe environments, and how mainframe modernization can extend the DevOps philosophy to large and business-critical applications.
In order to remain competitive and relevant in a world driven by efficient service, businesses require speedier development methodologies to bring products and services to market faster. Across the planet, businesses are finding that traditional waterfall approaches to software development and delivery are not sufficient to meet these ever-evolving needs.
DevOps, a contraction of development and operations, represents a culture of continual experimentation and learning in the name of competitive edge. The core concept around the DevOps philosophy is connecting development and operations teams to establish a set of practices that allow code to be built, tested and released in small, frequent steps. It drives collaboration between teams to achieve efficient, competitive, and sustained innovation; ultimately resulting in faster, more automated and more agile delivery.
So how can you adopt DevOps when working with a legacy mainframe environment? It can be (and has been) done, but the truth is… it’s difficult at best.
Mainframe code, applications, and environments have typically been in place for decades. While the systems themselves are robust and reliable, they can also cause a lot of pain for the organization from several points of view, with common problems including:
- Rigidity and difficulty in accessing development and test systems
- Extreme sharing of environments, causing bottlenecks in development and test
- Using code that is difficult to understand, difficult to establish dependencies within
- Unfamiliar or unknown build and deploy procedures
- Back-level software, with no idea how to upgrade or what impact that may have on the functionality of the systems
- Inability to make chances, sometimes due to inability to test
- Lack of integration / co-ordination with other platforms
- Lack of a service-oriented architecture and extensibility
- Exorbitant operating costs
Even though adopting DevOps could address all these problems, the challenge is that in most circumstances, attempting to apply DevOps to the legacy environment unchanged is a recipe for disaster. Procedural codebases, pre-relational databases, and mainframe infrastructure are incredibly unmalleable (even more so when you consider that the mainframe talent pool continues to shrink), and the concepts that DevOps embraces are central to object-oriented languages and concepts.
It’s important to note that increasing the frequency of feature implementation with DevOps requires a decrease in the amount of time it takes to validate new features. One of the key things that can help decrease this is a deep understanding of both the architecture and expected behavior of the environment – and this is where modernization can help.
Migrating off the mainframe
Modernization can transform an organization. In January, Nasdaq’s CIO spoke up about the benefits that Cloud migration has brought onto the stock exchange – particularly in the wake of both the Covid-19 pandemic and the stock market turmoil surrounding the GameStop short squeeze earlier in the month. Continuous integration is essential for reacting promptly to turbulence and mitigating technical disasters, so it almost goes without saying that a DevOps approach is best applied to a service-oriented environment like the Cloud. When the system itself is the biggest hurdle to realizing DevOps, then it’s time to think about modernizing it.
Automated refactoring (also known as automated conversion) provides a turnkey modernization of your procedural codebase (or 4GL) to object-oriented Java or C#, and your non-relational database to a relational model deployed to the Cloud or in open systems on premises. The resulting applications are easily maintainable and functionally equivalent to their original legacy counterparts; meaning you can retire the mainframe for good.
Taking the first leap: Automated Assessment
Any system that acts as a transaction engine for core business functions over a long period will have been augmented, tweaked, and extended multiple times by a multitude of developers. By engaging in an Automated Assessment first, your organization can carve out the pieces of the legacy system that are no longer used and remove them from the scope of the modernization process entirely. Automated Assessments bring complete visibility to the legacy system that benefits platform decision making going forward. They are relatively inexpensive, and ultimately provide the optimal foundation for moving towards DevOps with legacy core business systems. Contact us if you want to learn more about our own Automated Assessment tool.