Skip to main content

DevOps Tools for z/OS

Can DevOps tools work for z/OS? Yes, and there are two current methodologies which can enable using tools like Eclipse, Jenkins, GIT and many others. One methodology, which most of the mainframe community has likely heard about, is Zowe. Zowe is the first open-source framework for z/OS and was announced at SHARE in St. Louis. The second methodology uses the Jenkins slave interface, with Rocket’s port of GIT and IBM’s Dependency Based Build APIs. There are pros and cons for each of these methodologies.

For the purposes of this article, I’ll focus on the second methodology, using Jenkins and GIT with Eclipse. However, one of the challenges is how to marry the two different philosophies—TSO/ISPF and Java development—together. These two philosophies are very different in some regards, but also very similar.

The zJenkins Project

The zJenkins project is a way that can achieve the second methodology, while easing the transition of “older” generations of z/OS application developers into Eclipse. The zJenkins base code was adapted from IBM’s sample Mortgage Application using Dependency Based Build APIs. From this sample developed a project in Jenkins and GIT called zJenkins. This project, mostly written in Apache’s Groovy language, is a stand-alone application, called by a z/OS application, to build and deploy applications to z/OS. Also, since most shops have multiple vendor tools, this project works with some of those vendors’ products as well.

This project, which is just a proof of technology at this point, can build and deploy Assembler, BMS maps, COBOL, Copybooks, Eztrieve, LinkEdit, JCLCheck, Xpediter, Java, along with running CICS scripts to build COBOL to JSON (DFHLS2JS/DFHJS2LS) and SOAP (DFHLS2WS/DFHWS2LS). The CICS scripts are run using a configuration file as source to generate the necessary files to be deployed into CICS.

An application defined to Jenkins would pull the source code to z/OS using GIT client and calling build.xml (Java) and build.groovy (others) to start the build process. The build.xml, currently is using Apache Ant running on z/OS. The build.groovy calls zJenkins routine to start the build process. This routine is very similar to IBM sample build.groovy and reads a text configuration file in the application to determine what source code to build.

A developer would set up the GIT repo for the application they’re going to work in Eclipse, sync it, change the source code, update the text configuration file with source code change and save the updated source back to the GIT central server. If Jenkins is set up to trigger a build when the application/project GIT repo is updated, then the source code is compiled/built and deployed, ready for testing.

We need the source code on z/OS in PDS, and the zJenkins process has a number of useful features—including creating and copying all the source into PDS. Other features include CICS CSD interface (DFHCSDUP), z/OS programs, IEBCOPY, ICKDSF, ADRDSSU, IDCAMS, utilities and catalog search.

So, if we have those interfaces, can this be used to build a z/OS OS? Yes. First, look at the z/OS OS like an application, with the resident volumes and products as applications and PARMLIB/PROCLIB as configuration files. Then take it one step further, interface with BCPii APIs to change the IPL volume, tell system automation to perform fully automated IPL of the LPAR, then run test case, like Initial Verification Programs (IVPs) for the products.

Learn More at SHARE

To find out more, come to SHARE in Phoenix, where there will be a number of sessions on Zowe and a a few other sessions regarding the information in this article. These sessions include:

  • #23910—Open-source tools for mainframe and IAAS
  • #24018—Using GIT for mainframe development
  • #24209—Watch a Jenkins pipeline for CICS/DB2 application in action (Zowe)
  • SHARE MVS track: #23911—z/OS IAAS, automating z/OS RESvolume builds

Key Enterprises LLC is committed to ensuring digital accessibility for techchannel.com for people with disabilities. We are continually improving the user experience for everyone, and applying the relevant accessibility standards.