z/OS Container Extensions (zCX) is a new technology from IBM. It provides a way to run Linux capabilities on z/OS.
So, what’s a container? A container is a standard unit of software that packages up code and all of its dependencies, so the application runs quickly and reliably on different computing environments. You may be familiar with Docker. A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries and settings.
Container images become containers at runtime, and in the case of Docker containers, images become containers when they run on a Docker engine. The advantage is that containerized software will always run the same, regardless of the infrastructure. Containers isolate software from its environment and ensure that it works uniformly. Docker packaging reduces the complexity and installation of software.
So why do we need zCX to run Linux? Don’t we already have UNIX System Services? zCX provides a complete Linux on Z operating system as part of z/OS. zCX runs in a started task and contains both a full Linux system and Docker (a portable software packaging and execution environment). zCX is a virtual appliance that requires minimal involvement after set up. z/OS V2.4 provides this virtual Linux appliance as part of the OS. It’s set up to expose Docker-based functionality. And the benefit is that z/OS can run Linux code that has an affinity for z/OS data or applications. The thinking is that once it’s been set up, an appliance won’t require the system programmer to spend very much time managing it. And any management the zCX server does need can be simplified by using z/OSMF workflows.
Bringing z/OS Benefits to Linux Applications
Running a virtual Docker appliance as a started task on z/OS makes all of the great features of z/OS available to Linux applications. In particular, Linux applications will benefit from z/OS performance of high-speed networking as well as resiliency around data replication and automation. zCX also expands and modernizes the software ecosystem for z/OS to include Linux on Z applications.
Most applications (including systems management components and development utilities/tools) that are currently only available to run on Linux will be able to run on z/OS as Docker containers. Linux on Z applications will be able to run on z/OS, using existing z/OS operations staff and the existing z/OS environment. And that means operational control is maintained within z/OS with the result that all of the things you associate with z/OS (like scalability, availability, integrated disaster recovery, backup, z/OS Workload Manager and integration with z/OS security) are available for your Linux applications.
Simplified and Straightforward
As mentioned above, zCX installation is straightforward because it’s included as part of the z/OS 2.4 license and it uses z/OSMF workflows for configuration and starting. It only runs on z14 hardware. And zCX runs on general purpose engines, while the workloads that run on zCX are zIIP eligible.
Application developers don’t a require knowledge of z/OS to create and deploy Linux on Z applications to run in zCX because applications will look like Docker applications to the developer, rather than z/OS applications. So, if an application comes from Linux on Z, no z/OS skills are required, just a knowledge of Docker and Linux. Not surprisingly, zCX runs in ASCII (rather than EBCDIC) like any typical Linux distribution.
The initial release of IBM zCX for IBM z/OS V2.4 is intended to provide Docker Swarm as support for Docker cluster management. It doesn’t make use of Kubernetes. However, IBM apparently plans to leverage Kubernetes clustering for the orchestration, scalability and management of zCX with compatible cloud platforms.
zCX Isn’t a Replacement for Linux on Z Environments
So, if you can now run Linux inside z/OS, what’s the future for USS or Linux on Z? At the moment, IBM is saying that UNIX System Services is still an integral and strategic component of z/OS that continues to be supported with the rest of the operating system. It also says that zCX isn’t a replacement for traditional Linux on Z environments. If you’re a client with Linux on Z installations, you will continue to run those installations. But for z/OS clients that used to, but no longer have a Linux on Z installation, zCX could be of real interest. Similarly, z/OS clients that have never had a Linux on Z installation may find that zCX is a low effort way to try Linux on Z.
The version of Linux that comes with zCX is Ubuntu, which is the same Linux distribution used in Secure Services Containers (SSCs), and is provided and maintained through IBM. In addition to open-source packages, IBM plans to have IBM and third-party software available at the GA of z/OS V2.4. Clients will be able to participate with their own Linux applications, which can easily be packaged in Docker format and deployed in the same way as open-source, IBM and vendor packages.
A Strategic Idea
It strikes me as a very good idea from IBM. A lot of mainframe sites also use Linux, so it’s an easy way to get people to experience the power of the mainframe with their Linux applications. Once they’ve done that, they won’t want to go back. It’s good for the systems programmers because they now have an excuse to “play with” containers, which they may not have had a chance to do before. Because it becomes available with the next release of z/OS, it could be a driver, convincing sites to upgrade to the new version sooner than they might otherwise have done. And because it only runs on z14 processors, it might well act as a spur for sites to upgrade to the latest hardware, when they may well have been putting off the cost involved for, perhaps, another year.
And maybe we’re looking at the first baby steps taken by IBM into the future. What if sites that still run z/OS and z/VSE could, in the future, run z/VSE as a container inside z/OS? Or, thinking even further outside the box, what if there were to be a container that ran Windows 10 or, better, Windows Server 2019? What if it became possible to do all of your everyday computing on a mainframe? It could be like the old days of running VM with lots of operating systems running under it on the same hardware. Now you could run z/OS and have lots of containerized operating systems running inside of it.
I’m sure we’ll hear more about zCX.