Mainframe

Elevating Mainframe Applications with Containerized Deployment

July 31, 2023

In the ever-evolving landscape of technology, containers have emerged as a revolutionary concept, transforming the way software is developed, deployed, and managed across various platforms. This blog will provide an introduction to containers and what it means to the mainframe ecosystem.

In the world of mainframe computing, virtualization has long been a familiar concept, enabling efficient resource utilization and workload management. Containers extend this virtualization paradigm revolutionizing application deployment and management.

Role of Virtualization on the Mainframe

In the 1960s, mainframes emerged as powerful computing systems, IBM kept ahead of the workload growth by adding more and more capacity to new generations of the physical machines. However, the need to maximize resource utilization and support multiple workloads led to the birth of virtualization.

As mainframes evolved, the concept of logical partitions (LPARs) was introduced. LPARs enabled workload isolation, improved resource allocation, and increased overall system efficiency. This technology became a cornerstone of modern mainframes. Virtualization expanded beyond just operating systems to include other key resources within the mainframe environment–storage and network virtualization.

 fig1

Figure 1: Virtualization on mainframe

First-layer virtualization is provided by the Processor Resource and System Manager (PR/SM) to deploy one or more Logical Partitions (LPARs). Each LPAR supports a variety of operating systems. A virtual hypervisor, z/VM or KVM, can also be run as the second layer virtualization in LPARs to create as many virtual machines (VMs) as there are resources assigned to the LPARs to support them.

What are Containers?

Containers are similar to virtual machines. The key differentiator between containers and virtual machines is that virtual machines virtualize an entire machine down to the hardware layers and containers only virtualize software layers above the operating system level.

fig2

Figure 2: Virtual machines vs container 

While there are several tools available for running containers (container engines), Docker and Podman are two popular options.

Why Containers?

Here are the benefits of using containers:

Portability

Imagine you want to send a gift to a friend, and instead of putting it in a well-packaged box, you send the individual parts separately. This is analogous to deploying applications without containers. Containers are lightweight software packages that contain all the dependencies required to execute the contained software application.

Today, SMP/E is used to install mainframe software applications
. The software gets promoted to various target and distribution zones, performing individual adaptations to fit the software to the target runtime environment. Time must then be scheduled (this is called a change window) to deploy into production. Imagine that you can avoid these manual steps with containers, as each container comes prepackaged with whatever it needs to run–application code, runtime, environment variables, exporting ports, required file system paths, etc.

Isolation and Resource Efficiency

Containers provide isolation just like virtual machines without the overhead of running guest operating system. This isolation allows applications to run independently. Many more lightweight containers can be run than virtual machines on the same hardware.

Improved Productivity

Imagine a recipe for your favorite dish. When you prepare it in your kitchen, it turns out delicious. However, if someone else tries to recreate the same dish in their kitchen without a recipe or proper instructions, it might not taste the same. Containers provide the recipe for your application, ensuring it runs consistently and produces the same results, regardless of where it's deployed.

Containers allow developers to create predictable runtime environments, including all software dependencies required by an application component, isolated from other applications on the same machine. There is no more “But it works on my system” excuse.

Where Can You Run Containers?

Containers are supported on various architectures such as Linux x86, Windows, zLinux, and z/OS.

fig3

Figure 3: Running containers in various mainframe environments

If you wish to leverage your dedicated Linux processors on the mainframe (called IFLs), you can deploy the containers on zLinux or virtualized zLinux systems. With this strategy, you can leverage open-source technologies alongside your z/OS workload.

However, if you want to go even closer to the z/OS system, z/CX enables you to deploy zLinux applications as Docker containers in a z/OS system to directly support workloads that have an affinity to z/OS. zCX workloads are zIIP eligible making them cost efficient. Within the zCX address space is the z/OS Linux Virtualization Layer, which enables virtual access to z/OS storage and networking.

IBM intends to deliver container support for IBM z/OS as per IBM’s Statement of Direction.

Why Should You Care?

By now, you may be curious about the possibilities of using containers on the mainframe and how they can significantly improve your operations.  

  • Bring applications closer together

If you are deploying some applications (e.g. web interfaces, monitoring tools, etc.) on a Linux or Windows system which has affinity towards mainframes, you have an option to containerize and run them closer on the mainframe to simplify the operations and improve the efficiency.

  • Leverage open-source application/frameworks/libraries

Containers offer a seamless way to leverage a multitude of open-source applications, frameworks, and libraries. For instance, you can effortlessly integrate popular technologies such as Cassandra, Postgres, MongoDB, logstash, WordPress, etcd, Kafka, IBM MQ Client, Nginx, and more. Additionally, utilizing Linux Shell environments, Jenkins, Ansible, Apache Ant, Apache Maven, GitHub, and Zowe empowers you to enhance productivity and streamline your development processes. Leverage machine learning tools to ​​unlock the potential of your mainframe data and leverage it to make informed decisions and gain a competitive edge.

Broadcom’s Mainframe Operational Intelligence product is packaged in containers so that powerful open-source machine learning components can be leveraged to provide insights over mainframe operational data. Also, Broadcom is updating monitoring solutions to help you with the container journey on Mainframe. For example, SYSVIEW Performance Intelligence now contains support for monitoring your zCX instances.

fig4

Figure 4: SYSVIEW zCX Monitor

In a highly containerized environment with numerous running containers, the importance of an orchestrator becomes paramount. Stay tuned for my upcoming blog where I'll delve into the topic of orchestration. If you require any guidance or support throughout your container journey, don't hesitate to reach out to me machhindra.nale@broadcom.com.