BLOG: IBM Z Mainframe Application Modernization: The Evolution to Open Source Tools into z/OS Dev Ops

September 10th, 2021 BLOG: IBM Z Mainframe Application Modernization: The Evolution to Open Source Tools into z/OS Dev Ops
Marianne Eggett
IBM Z Solutions Consultant


Financial institutions, Federal and State governments, large insurance companies all share in the benefits and challenges of IBM Z. Through the computing evolution, from monolithic applications to micro services, the IBM Z provided reliable capacity to drive these business applications. But has the mainframe hit its “brick wall” with the applications of the future? Is the mainframe unable to respond to the new development culture?

No, the mainframe, the IBM Z, both z/OS, Linux on Z and LinuxONE are all teed up to support the new applications with its new application development products and methodologies. Let’s look at this new IBM Z DevOps environment.


IBM Z Application Modernization


When we ask our customers what application modernization means to them, there are so many facets to this idea that no two answers are the same. Some think it’s about development life cycle, some want operational modernizations, yet others feel it’s centered in micro services. And they are all right. To provide modernization that syncs with the distributed and cloud applications, these facets all require consideration and possible change from today’s z/OS environment.


Operational Modernization


In z/OS, products such as Computer Associate’s (CA) host of products, provided management of mammoth applications But what’s evolving in the distributed environment is mostly open source products. The open source community offers orchestration and automation across any hardware platform and most operating systems. With customers looking for consistency to reduce the skill sets in their IT staff, these products must support the IBM Z applications, including z/OS and Linux which they do! Developers can roll out changes to Linux on x86, Linux on Z, or even enable access to CICS micro services.

With many of these products supported in Docker containers and Kubernetes the list of open source products exceeds this introduction. But here are a few key open source products to consider:

  • Jenkins can run in Red Hat OpenShift (OCP) on Linux on Z or LinuxONE. This product offers many features for modernizing applications including development life cycle and application orchestration.
  • Ansible is a simple automation language perfect for IT applications infrastructure, that also runs in Red Hat OpenShift (OCP) on Linux on Z or LinuxONE. Ansible playbooks contains the scripts for deploying applications and the needed middleware. They also issue commands to the z/OS system through API calls. These scripted API calls in the Ansible Playbook communicate to z/OS through z/OSMF Cloud Provisioning and Management, Zowe CLI or direct API calls into z/OS Connect or other z/OS enabling API products.
  • Zowe, mentioned above, is an open source product rolled out from the Open Mainframe Project of the Linux Foundation. Its capabilities offer integration of z/OS command services to products such as Ansible playbooks. The goal of this product is to provide z/OS with the look and feel of x86 to developers and administrators. Zowe CLI interacts with z/OSMF APIs while Zowe Explorer graphically navigates to z/OS, USS and JES via VS Code or other editors.

Beyond open source products there are a number of IBM products to help facilitate Continuous Integration / Continuous Delivery (CI/CD).

  • Z/OS Cloud Broker for Red Hat OpenShift has many functions including provisioning CICS, DB2 or other middleware for test environments. Like with Ansible and Jenkins, z/OS Cloud Broker orchestrates integration of IBM Z/OS with distributed application or tooling while regulating security for the team’s accessibility to z/OS services.
  • IBM Urban Code Deploy is another tool that facilitates the application deployment for continuous delivery in agile development. It provides the audit trail versioning and approvals needed for production.


Container Management


Container developed applications are the future. They simplify development, deployment, and management of applications. Kubernetes’ industry acceptance provides that framework for container- based applications. But Kubernetes itself needs added functionality to make it production ready. The Linux distributions, Red Hat, SUSE, and Canonical have embraced Kubernetes in their own ways. Red Hat and SUSE Rancher have led the pack, but Rancher is not yet available for Linux on Z or LinuxONE – possibly in the future. So, our focus will be on Red Hat OpenShift which runs anywhere Linux runs, including Linux on Z and LinuxONE. For IBM Z, there are two choices as to where your container applications will execute: Linux on Z or z/OS on Ziips.

Red Hat OpenShift Container Platform (OCP) runs in Linux on Z and LinuxONE. Nearly all x86 functions have been ported to the Red Hat OpenShift on IBM Z. OCP’s offers a full development life cycle and management capabilities for container applications. These container applications can integrate with z/OS mainframe applications, or with any other API product or application on premise, or in the cloud through the products we introduced in the prior section, Operational Modernization.

z/OS Container Extensions (zCX) offers the software infrastructure to run container applications in z/OS executing on Ziip processors. For the z/OS customer, the use of Ziip processors is critical to preventing skyrocketing IBM and 3rd party software costs due to container applications running in z/OS. Today, zCX uses Docker framework but in the future IBM will support Red Hat OpenShift in zCX. z/OS Management Facility (z/OSMF) is a prerequisite for zCX and used to provision, deprovision, and maintain the zCX address spaces in z/OS. zCX communicates to a z/OS application over a high-speed secure virtual IP network. Latency issue with off mainframe container-based applications is eliminated when that container runs in a z/OS address space.


z/OS Application Micro Services


So, what to do with our CICS applications?

Create CICS micro services and publish in GIT libraries. Now, these new container or cloud applications can easily find and integrate the new logic to exploit the CICS micro services. But what is needed to run these applications? Let’s look at a few:

  • CICS Liberty Microservice run as an application in CICS. Using CICS Liberty Microservices, approximately 80% of the workload executes on the Ziip.
  • IBM Application Discovery and Delivery Intelligence (ADDI) finds the business logic to build the microservices. It has deep analytics to find root cause, insights, and data dependencies. It discovers potential APIs for transforming traditional applications, such as COBOL, to microservices for API access.


z/OS application and data access


A z/OS receiving pipe is needed to enable access to these new CICS micro services and data by applications external to z/OS.

z/OS Connect has been providing API services for years into z/OS applications. Maybe one of the lynch-pin products to enabling z/OS and z/OS data accessibility to distributed and cloud applications, this is not an open source product but delivered by IBM. It enables an API pipe using Representation State Transfer (REST) calls and does the translation of JSON to copybooks expected by z/OS applications. z/OS Connect communicates with the z/OS application or to external application through APIs. It has an intuitive visual editor for creating APIs. Testing of the deployed APIs is accomplished directly with Swagger UI inside this editor. Much of z/OS connect execution is Ziip eligible, in some cases, over 95% of the workload. z/OS Connect integrates with off platform products such as IBM Cloud Pak for Integration products which includes IBM App Connect Enterprise (AKA IBM Integration Bus) and IBM API Connect that manages and publishes APIs to developers.

Data Virtualization Manager for z/OS (DVM) provides access to z/OS’s data. VSAM, Db2 for z/OS, IMS DB, sequential, non-IBM data structures such as IDMS, are accessed directly by DVM. API calls to DVM can be SQL, NoSQL, SOAP, or REST via z/OS Connect. This workload is also offloaded to the Ziip thereby preventing escalating z/OS and 3rd party software costs.

For data analytics applications, DON’T MOVE THE DATA! Instead, keep the data on z/OS by implementing IBM Open Data Analytics for z/OS. With DVM engine under the covers, IBM Open Data Analytics for z/OS (IzODA) extends analytics capabilities on z/OS with an Apache Spark runtime plus executes R, Python and Anaconda applications on z/OS. The Apache Spark and R portions of this workload will run on Ziips.


z/OS Developer’s Modernization


Every z/OS shop faces the dwindling supply of z/OS knowledgeable IT staff. New developers are not z/OS savvy, nor do they want to learn z/OS. And with the future of agile development methodologies, the trend is to develop container applications. Yet, these developers may need to test their application against CICS or VSAM data. Learning CICS macros or ISPF command line interfaces are not desired. Ultimately, this situation may hinder new z/OS application development leading to more business functionality moving off z/OS. Can these new developers use their current IDE platform to test and deploy z/OS applications?

In many instances, yes. There are several products for developer’s life cycle management:

  • IBM WAZI for Red Hat Code-Ready Workspaces runs in Red Hat OpenShift on x86 to provide a non-z/OS developer an easy to implement z/OS environment. We expect IBM to port this product to Linux on Z and LinuxONE. This IDE reduces the z/OS knowledge required to write, test, and deploy new code through Wazi Code. Wazi Analyze, that analyzes for changed code impacts, and Wazi Sandbox are included. Underlying in this tool is Jenkins which facilitates the orchestration of the z/OS services. A company can also bring their own IDE to integrate with the tool such as VS Code. With Wazi, CICS, IMS, Db2 for z/OS, compilers, and more run on x86 hardware. The converse is true too. z/OS developers can write container-based applications without in-depth knowledge of container development.
  • IBM Developer for z/OS (IDz), IBM Z Development and Test Environment (ZD&T) and IBM Developer for z/OS Enterprise Edition (IDzEE) are IBM’s IDE for the z/OS developers. Being Eclipse based, they offer capabilities for non-z/OS developers for coding, testing, and deploying applications for the CI/CD methodology. IDz EE includes Wazi Code, ZD&T includes Wazi Sandbox, and ADDI includes Wazi Analyze. Most run on x86 today.
  • IBM Z Open Editor – If your development shop uses Visual Studio Code, IBM offers a free download of IBM Z Open Editor that provides language support for COBOL, PL/I, High Level Assembler (HLASM) plus TSO/E REXX on x86.

Bottom line, deciding on the right tool often depends on the organization chosen standardized development tools. The goal is to minimize the number of tools needed for CI/CD of enterprise applications for all developers on all platforms. Tool consistency is the key goal.


z/OS API Monitoring and Performance


Monitoring the API performance on z/OS can be accomplished with IBM Z OMEGAMON for JVMs to offer a quick view of the z/OS Connect API performance. This tool can also diagnose z/OS Connect API failures. When your application needs better performance, especially to prevent production APIs competing with development APIs for z/OS resources, the environment benefits from z/OS Workload Manager (WLM) to influence the API execution, giving priority to production API workloads.



Customers Cultural Change


This BLOG is a quick introduction to the changes to z/OS DevOps environment. Hopefully, what is apparent is that there are many tools that provide the same capabilities to enable the CI/CD methodologies. The choice depends on the tools embraced by the development organization. Ideally, in most cases, the same tools can be used by the developers in tandem with z/OS tools, such as z/OS Connect, for easy access into the z/OS applications.

Though there are many changes outlined here, two factors need to be highlighted.

1. Distributed developers need easy access to z/OS microservices within their applications.

2. z/OS developers need to learn and embrace development using the distributed IDEs and container application environments.

Both teams need to evolve to create a new z/OS application modernized platform. When this happens the need for z/OS applications and data to move off the platform will diminish, reducing, if not eliminating, the need for z/OS applications end of life and businesses will continue to benefit from the security, performance, and TCO of the mainframe environment. With these new set of products and culture, the new environment is ready to enable the CI/CD methodologies for z/OS.

Get More Information
As an IBM Platinum Business Partner, Mainline has extensive experience with IBM Z mainframe systems and operating systems and we can help you with z/OS, z/VM, Linux on IBM Z, and LinuxONE. To set up an in-depth discussion about exploiting these technologies, please contact your Mainline Account Executive directly or click here to contact us with any questions.

Related Blogs, Videos, and Documentation:

Blog: Red Hat OpenShift on LinuxONE and IBM Z running under KVM

Blog: Benefits of z/OS Container Extensions on IBM Z

OnDemand Webinar: z/OS Connect (44:00 min)

Blog: Enterprise Modernizations – Data Management and Infrastructure Optimization – Are we there yet? Part 1

Blog: Enterprise Modernizations – Application Development and Process Integration – Are we there yet? Part 2