At the recent GSUK conference, PopUp Mainframe presented a session on some of the most useful open-source tools we are using in our lab. Here’s a recap of the information we shared.

Our Journey With Open-Source Technology

Aiming to improve productivity, over the past year the team at PopUp Mainframe has embraced open-source tooling. Open source has been harnessed within the PopUp development team, helping us implement faster approaches, streamline our build process, and automate countless tasks. We have seen wide-ranging and sometimes surprising benefits of using open source with z/OS and now rely on open-source tools to develop, build, and test PopUp Mainframe product features. And, with customers requesting open-source options for their PopUps, we also share best practice to help them get the most from these resources.

In short, open source is important to us. Here, we outline the open-source tools we are leveraging, and the benefits.

ZTI (Z Terminal Interface)

ZTI is a Python application which gives you a full 3270 interface in your command prompt. It removes the need for a separate (commercial) TSO terminal emulator product, while giving you nearly the same green screen experience. ZTI is great for anyone without a TSO emulator, but it has a whole host of other capabilities too.

ZTI enables you to interact with z/OS through command line – running commands, connecting to the master console, and more. This is powerful because you can script these interactions and include them in applications or automation. We are using ZTI in our team to run z/OS commands and utilising it for master console management too.

CBT Tape

CBT Tape is a library of free software for the IBM mainframe MVS, OS/390, and z/OS environments. It has evolved over decades and continues to expand. Useful CBT Tape facilities we have recently leveraged include –

  • SHOWZOS – makes MVS control information displayable, such as OS info, software and storage config. This can be web-enabled too.
  • WHOSON – shows you who else is logged on to TSO at any time.
  • Xmit Manager – enables you to view the contents of xmit files on a laptop, without having to copy it onto a z/OS system first.

ZOPEN Community

The Zopen community offers a range of tools which have been ported onto Z to help make Unix System Services (USS) easier to use. The more like Linux USS becomes, the better, as it makes USS easier to use for mainframers, as well as making the mainframe world more familiar and “standardised” and therefore easier to develop and maintain by anyone. There are around 300 tools in the zopen community.

Ten of the zopen tools are officially supported by IBM and distributed free-of-charge with the IBM Open Enterprise Foundation kit. These are all available pre-installed on our product. A couple of examples –

  • Vim: While the Vi editor is available on USS, it’s not very user friendly, and now zopen gives us vim instead. The vim text editor reduces the learning curve for a non-mainframer to be able to make changes very simply.
  • Bash: The popular Bash shell gives much more functionality than the Bourne shell (the default on USS), such as auto-completion, which saves a lot of time and makes for a more rewarding coding experience.

While these may seem like small benefits, they do add up and can be the difference between a useable, productive interface, and a frustrating interface which continually slows you down.

Zowe

There are two main components of Zowe which we are actively using in our team: Zowe CLI and Zowe Explorer (a VSCode extension).

Zowe Command Line Interface (CLI)

Zowe CLI enables you to interact with the mainframe remotely and use common tools such as shell commands, bash scripts and build tools for mainframe development. It provides a core set of commands for working with datasets, USS, JES, as well as issuing TSO and console commands. It has a very small learning curve since it provides user-friendly help, giving you all options so you can get started without being an expert. By contrast, TSO commands are very brittle and not user friendly, particularly for someone who doesn’t have a mainframe background.

The Zowe CLI is very extensible too, and there are many plugins available which can be used easily by a non-mainframer, and new features are being released all the time.

Zowe Explorer

Zowe Explorer is an extension for VSCode which allows you to interact with your mainframe LPARs through VSCode. Once you are connected, you can view and interact with datasets, USS and jobs through your IDE. Zowe Explorer in VSCode allows you to ‘find’ objects simply, something which is not simple in ISPF. It also enables viewing of multiple z/OS environments at once, and the compare feature is very useful.

CI/CD Pipelines

We have built CI/CD pipelines to deliver mainframe changes, and we have seen the benefits of robust, reliable, and accelerated build, test, and deployment of code changes. One of our CI/CD pipelines looks like this –

  • The pipeline is orchestrated by GitHub Actions, and is triggered when code is checked in to GitHub
  • Build is performed using IBM DBB (which is not open source)
  • Unit testing is performed using open-source Galasa and COBOL Check
  • Artifactory is used to store the binaries
  • IBM Wazi Deploy (not open source) deploys the code to the target environment
  • For integration testing, we are using Galasa again, this time with Selenium, for end-to-end testing of the mainframe application.

Observability

We have built a mainframe observability solution using Prometheus and Grafana. This has saved us countless hours finding info and troubleshooting and is now a one-stop shop for the team to self-service information. Some dashboards we have built:

  • A near real-time list of which z/OS environments we have. With PopUps being so quick and easy to stand up, we create new environments and tear them down often. We now have ready access to the full list of PopUps and other VMs, and their status, including which version of z/OS is running, the status of z/OS, a view of some subsystems on each environment, backup details, and more.
  • License information is now available in one place with expiry dates and number of available licenses clearly visible and trustworthy.
  • A report to show the usage of DASD volumes, highlighting which ones have usage over a threshold. This helps us manage our lab more proactively instead of waiting for a problem to occur.

We continue to expand our portfolio of dashboards and it is paying dividends for us. The dashboards are also available for PopUp customers and gives them observability out-of-the-box.

Ansible

We also make extensive use of Ansible in our lab – and within our core product. We have built numerous playbooks to manage z/OS environments, including config, software installation, maintenance, and user management. For more details see here.

Where next?

Mainframe innovation is driven by growing demand and fresh ideas from both end-user organisations, vendors, and the wider community. The Open Mainframe Project and other open-source efforts are delivering valuable technologies, and we’re excited about making the most of these advancements and bringing them to our customers through the PopUp Mainframe product.

Recommended Posts