You are here

Server hallway at CERN

How DevOps can improve mainframe app agility

public://pictures/tushar_photo.jpg
Tushar Tawale, Senior Technology Architect , Infosys, Ltd.

Many enterprises suffer from so-called SOS. Shiny object syndrome is a common ailment that occurs when IT or another team in the organization encourages the business to chase after the newer and more modern over the tried-and-true. It’s not a fatal approach, but it does hold back enterprises, especially those with DevOps initiatives, from realizing the full potential of their tools.

Nothing exemplifies this better than your humble, neglected mainframe. 

Today’s mainframe isn’t ill, or on its deathbed, but it has been largely neglected by the DevOps community. Why? Because mainframes have limited release cycles, limited automation capabilities, and limits on build and deployment that affect how quickly the business can implement a change and realize value from it. But mainframes are critical to the enterprise. In fact, mainframe systems and software comprise the infrastructure backbone for many of the mobile processes in place today.

If your organization wants to continue to provide solid, reliable services to its customers, it needs to invest in its mainframe, and in those responsible for maintaining it. Continuous integration (CI) and continuous delivery (CD) in a mainframe environment can play a pivotal role in meeting business demands such as for early business value, reduced time to market, and a faster return on investment.

How to Build a DevOps Toolchain That Scales

Executing CI and CD on the mainframe

DevOps needs three things to work: people, culture and automation. DevOps improves time-to-market for mainframe applications by bringing the development and operations teams together for development. With automation, this culture change plays a key role in shortening the development lifecycle and ensuring a better quality product. It also brings up validation tests earlier in the development lifecycle, helping developers to better filter out and correct bugs during the development process.

You can use cutting-edge integrated development environment (IDE) tools for DevOps to assist with CI and CD, and to help organize and achieve true automation on the mainframe. These tools help you deliver high-quality code, and provide early defect detection by enforcing automated code review rules, automated unit testing, code coverage testing, continuous integration, and automated deployment.

Additional features, such as auto-completion, real-time syntax checking, and offline compile, greatly increase developer productivity. IDE tools can aid developers with a pictorial view of flow-in analysis across multiple programs, and can provide an overview of data movements in variables, identify unused variables, dead code, and more. These tools don't just help on the mainframe; you can also use them to assist with the deployment process for distributed applications while addressing dependencies and fostering better collaboration.

Virtualization is another tool that should be part of your DevOps toolset. DevOps teams can use it to speed up testing lifecycles and provision testing regions faster. Bringing virtualization to mainframe testing helps reduce your dependence on test region availability, which is at a premium in mainframe systems today. It also means the MIPS for testing cycles take less time and cost less.

Thankfully, new technologies make marrying DevOps and mainframe investments easier. If you want to bring the two together, look for a DevOps tool vendor that offers:

  • A DevOps roadmap that leverages the current landscape.
  • DevOps tool integration with your existing tool stack on the mainframe.
  • DevOps tool integration with existing supply chain management products.
  • A continuous integration pipeline with the existing CI server on a distributed platform.

Why you need DevOps on the mainframe

Mainframes are still critical for managing mobile loads, testing and payment processing. Enterprises need the reliability, security and pure processing power that mainframes provide in a mobile-first world. Despite this, mainframes are often ignored in favor of distributed platforms and services. This is especially true when it comes to developing applications through the traditional DevOps process.

For example, Infosys used DevOps on the mainframe to speed up time-to-market for its mainframe applications. All it took was a change request to get DevOps to play a pivotal role. Infosys' process included eclipse-based development capabilities, automated code reviews, automated unit testing, code coverage testing, continuous integration and automated deployment. It was, essentially, a seamless pipeline for one-click deployment. Most bugs in the system were detected early, thanks to quality assurance and unit testing processes that had been brought into the development lifecycle earlier in the build phase.

InfoSys' experience shows the potential for DevOps in mainframe environments. DevOps on the mainframe can migrate mainframe test environments to distributed test environments. The target regions can simulate a mainframe environment and address region unavailability issues that are typical with mainframe projects. In so doing, teams can complete test region provisioning and virtualization faster, reducing development cycle times for test regions. This, in turn, reduces the time and money required for mainframe region provisioning and testing. And you can use different test data management tools can for massaging of data on the simulated environment.

But part of smart mainframe execution is knowing what should and shouldn’t run in the first place. DevOps teams must acquire the skills they need to identify which applications are best suited for the mainframe and which are not.

[ Webinar: Agile Portfolio Management: Three best practices ]

A phased approach to DevOps

Don't just go all in. I recommend a phased approach to implementing DevOps on the mainframe.

Start by leveraging existing tools and products in your mainframe environment to implement your CI/CD services. This is the least intrusive and most cost-effective approach.

Then select and provision the best-suited tools based on your mainframe landscape, business strategy, processes, and so on for implementing the CI/CD cycle. Once your DevOps maturity level has increased, project scope can be broadened from just CI/CD to include other aspects of the DevOps cycle as well.

All of this is far more achievable than you might think. All you need is a culture change and better collaboration between your development, test and operations teams. With the aid of DevOps tools and the right strategy, you can implement a flexible, adaptable, and incremental approach to faster deployments.

Image credit: Flickr