Containers are the hottest trend in data center innovation today. If you don’t know where Containers are used in real use cases: Everything at Google runs in a container. Containers are one of the secrets to the speed and smooth operation of the Google’s search engine. For running Google Search operations, it uses containers by themselves, launching about 7,000 containers every second. It is not just their search, if we use Gmail or Google DocsOK, let us understand what is a container.
Container a.k.a LXC (Linux Container) is an operating-system-level virtualization environment for running multiple isolated application instances on a single Linux OS. Linux containers give each application running on a server its own, isolated environment to run, but they all share the host server’s operating system. Remember this to distinguish between Virtualization and Containers: In containerization, multiple virtual images of operating system with dedicated hardware are not launched for each application.
LXC combines linux kernel’s cgroups and support for isolated namespaces to provide an isolated environment for applications. The Linux kernel provides cgroups functionality that allows limitation and prioritization of resources (CPU, memory, block I/O, network, etc.) and namespace isolation functionality that allows complete isolation of an applications’ view of the operating environment, including process trees, networking, user IDs and mounted file systems. Kernel libraries are shared across each container, and user mode processes communicate and use the kernel through the Kernel API and system calls.
Now, let us look at Mainframe systems. On the Mainframe z/OS operating system, user processes are run in an address space with multiple tasks (TCBs) providing multi-tasking support, but share a common “kernel” through libraries on the system volume. Privileged instructions are executed using supervisor calls or SVC calls, which run in supervisor mode – the equivalent of running a process in the kernel. Thus each address space is logically isolated from another using virtual memory addressing however all address spaces and tasks are processed or “dispatched” on the same z/OS instance. Workload Manager (WLM) – equivalent to cGroups – controls the resource allocation priorities based on the goals set for service classes. So it is a single operating system , applications run utilizing multiple address spaces for various components (database,security,logging,networking,I/O, batch, OLTP etc) within single OS sharing all the underlying resources.In short, zOS address spaces are namespaces on containers, zOS WLM is cGroup on linux containers and it is just single instance of OS in both the cases. So today’s hottest trend in data center world is a technology concept from 1960’s ?
Imagine if it is possible to spawn multiple instances of mainframe test or development environments in few seconds just like the way it works on Linux usingDocker technology, it will be a great leap forDevOps on Mainframes.