z Container eXtensions — Docker on Mainframe

Vikas Pujar
4 min readJun 11, 2021

Overview:

Mainframes continue to be the workhorse across enterprises even after 6 decades they were first launched into the market. The mainframe has built a reputation for reliability, availability and security, hence most of the organizations place their trust in this platform.

Mainframe has constantly reinvented itself and stood the test of time. It has evolved over the years to adapt to the ever-changing technology landscape. The modern mainframe recognizes itself very well with all New IT technologies of today and the topic of this blog is one of the most talked-about offering docker and its availability on Mainframe.

IBM released docker support for Mainframe (zOS) in 2019 and named offering zCX — z Container Extensions ( referred to as zCX hence after). There are a handful of mainframe customers who run only zOS on Mainframe and zCX offering will help these clients leverage the power of Linux on Z without the need to have Linux on Z :-)

Docker Overview:

Docker and Containers have taken over the cloud world by storm. Let’s have a look at what Docker and Containers are.

Docker is a tool that allows easy deployment of applications in a sandbox (called containers) to run on the host operating system typically Linux. The advantage of Docker is that it allows users to package an application with all of its dependencies into a unit that can be deployed on top of Docker engine. Unlike virtual machines, containers do not have additional overhead and hence able to use underlying systems and resources efficiently. Below is the high-level diagram of the Docker offering.

Container eXtensions – Docker on Z

IBM zOS Container Extensions (IBM zCX) is a new feature of zOS 2.4 that enables us to deploy Mainframe interfacing applications as Docker containers inside zOS. All of this is done without the need for any additional Linux Server and/or zOS controls operations.

Overview of z Container eXtensions offering:

1. zCX expands and modernizes the software ecosystem for zOS to include Mainframe interfacing applications. Most applications that are only available to run on Linux on Z, will now be able to run on zOS as Docker containers

2. zCX gives zOS environments the ability to deploy Mainframe interfacing applications as Docker Containers. It is not a replacement for traditional Linux on Z environments though which means if you are a client with Linux on Z installations, you will continue to run those installations

3. zCX runs on z14(or later version of Mainframe hardware) and zIIP eligible which means no direct impact to MIPS usage for clients with zIIP engines

4. If you are a zOS client that has never had a Linux on Z installation, then zCX is a low effort way to try Linux on Z

5. A sample use case could be a front-end app built on modern languages like NodeJS interacting with zOS to fetch data from the DB2 database. The front end NodeJS application can be dockerized and deployed on to zOS running zCX which then reads data directly from the DB2 database

Technical Aspects of zCX

The below image depicts the high-level architecture of zCX. zCX runs inside zOS as a separate address space along with other address spaces (CICS, DB2 etc.)

The important technical features of zCX:

1. zCX will run on zOS in a separate address space and all the connections to zCX address space are thru TCP-IP

2. Single zCX address space can host multiple Docker Containers. Ex: Image shows single zCX address space running NGiNX, MongoDB and Kafka docker containers

3. Up to 64 independent zCX address spaces can run in parallel. Each zCX address space is identified by DVIPA (Dynamic Virtual IP Addressing)

4. Advantage with Dynamic VIPA — In case of system failure the DVIPA moves along with the docker image, hence the IP address of zCX will remain the same

5. As of the first release Docker Swarm is packaged with zCX, Kubernetes is NOT supported as of today (In Pipeline)

6. The high-speed cross memory virtual network provides fast access to zOS subsystems or data (Like DB2) hence reducing the latency which was seen with Linux on z applications interacting with zOS

Benefits of z Container eXtensions:

1. Time to Market: Delivery of new products and services to market faster using digital technologies

2. Cost Savings: 43 to 60% reduction in TCO by running docker containers on Mainframe (Leveraging zCX) vs docker containers on x86 servers*

3. Co-Location: Co-locating of Mainframe interfacing workloads on IBM Z can provide a significant advantage in terms of latency, application performance

4. High-Performance: Leverages High-Performance Computing (high processor frequency, high-speed cache, and memory) of Z

5. Security: Leverage sophisticated security offering on Z including One-Click Data Encryption offering

6. Attract new Talent: Adoption of Modern technologies like Docker will attract new talent to work on Mainframe

Summary

The Docker which supported major Operating Systems (Linux, Windows, macOS) now supports zOS — the core operating system of Mainframe. The mantra of having code and data in proximity is one of the use cases which zCX tries to address.

All Docker container images that run on Linux on Z, including images from Dockerhub (There are around 2000 images of Linux on Z on Dockerhub), can now run on zCX. zCX will let customers use the latest open-source tools, popular NoSQL databases, analytics frameworks, application servers, and so on within the zOS environment. Exciting times ahead for Mainframers!

References:

*https://www.ibm.com/downloads/cas/ZEM93ORZ

https://www.ibm.com/support/z-content-solutions/container-extensions/

https://docs.docker.com/get-started/overview/

--

--