This year’s z/VM Workshop User’s Group Conference was held June 22nd through June 24th at Rutgers University. This venue of technical topics is excellent for the z/VM technical community to stay abreast of the latest activities on Linux for z Systems. This year was no different, with many breakout sessions focused on Open Source for LinuxONE servers.
In August 2015, IBM announced the LinuxONE server and included a large focus on Open Source software. One of the most dominant Open Source software products is Docker. So what is Docker, and why is it a good fit on z Systems?
Why is Docker gaining traction?
Docker began in 2014 as a consortium to develop a set of tools, which enables the creation of application images and an easy runtime environment, that became known as “Docker containers.” The premise for Docker is that multiple applications can run under the control of a single operating system, yet remain securely separate from the other applications.
This is different from Virtualization, where every application runs under the control of the operating system and inherits the operating system’s characteristics. If many applications run in the same virtual server, they share the server’s resources and its definitions. Therefore, the server-defined parameters affect every application in that virtual server. There is no autonomy.
With Docker, policies can be set at the application level, within the container. This gives the application more control of itself. Docker achieves this by using native Linux capabilities called CGROUPs and NAMESPACES, which are parameters that have been in Linux for a long time. These capabilities enable the application to define CPU, memory, Disk I/O and network resources unique to this application. Even the file system can be isolated to the application’s Docker Container. What’s also significant is that this is set by the application team using Docker tools, and not by a System Administrator. And, the spinning up of the Docker containers can be at the application team control, too. More autonomous usage – therefore more flexibility.
Demystifying Docker for Mainframers
So, let’s do some correlations to the mainframe.
Docker Containers can be compared to z/OS Address Spaces. Docker containers run Docker images, which are separate from other Docker image containers; just as in z/OS, where z/OS address spaces keep their autonomy. So what is the Docker Image?
Docker images are created by Docker’s Dockerfile tool set using the Linux commands CGROUP and NAMESPACE. They define access to read-only files, comparable to z/OS shared libraries and SVAs. The Dockerfile commands can be comparable to z/OS JCL to start the Address Space for the application.
Docker exec commands is a Docker-defined set of commands used to control the application. The commands are similar to CICS commands. Through these commands, cores can be added, memory added, and priorities changed.
There are a few differences, too. Docker Composer enables the creating of a Docker container which contains multiple Docker images. There is nothing like this in z/OS.
Docker Swarm is a cluster management tool that handles the container’s placement and scheduling into the execution server. Therefore, cluster orchestration is facilitated through Docker Swarm and Docker Composer.
Docker and LinuxONE Server
Cloud is a big reason for the LinuxONE announcement. Here, Cloud means the rapid growth and destruction of applications to service user demand.
In a LinuxONE demonstration on youtube, Donna Dillenberger presents an example of the build-up of workload, for an analytics query, on the Greek financial crisis using data captured live, ingested, analyzed and presented to a web browser or apple and android phones. This demonstration shows millions and millions of events per second, happening real time. The volume of Docker Containers deployed increases with the ever-increasing demand to capture, analyze and present real-time information.
LinuxONE server satisfied the growth demand, while maintaining the 200ms response, even with the millions of events generated from two hundred and seventy thousand transactions per second. For MongoDB, the memory grew from 500 MB up to 1 TB. Using LinuxONE server’s compression hardware, LinuxONE was able to persist and save the Docker Containers 4 times faster than other platforms. Encryption is 28 times faster than other platforms. The demonstration also shows a fail-over in the middle of this analytical query, without a blip in 200ms response time.
This is the power of the LinuxONE platform. This is cloud computing at its best.