Will IBM i Become More Like Linux?
June 13, 2022 Alex Woodie
The recent launch of Merlin, a Linux-based collection of tools for creating next-gen IBM i applications, has raised questions about the future of IBM i. One of the questions has to do with IBM i’s relationship with Linux, and whether it will have to be become more like Linux to survive. Just like IBM i had to become more like Unix and Windows Server, in many ways, to survive.
Merlin is a different sort of product than what IBM typically ships. For starters, it isn’t a modernization tool per se, but more like a collection of tools that allow IBM i customers to begin developing IBM i applications using modern DevOps methods. It’s a framework, if you will, that today includes a Web-based IDE, connectors for Git and Jenkins, and impact analysis and code conversion software OEMed from ARCAD Software. And in the future, Merlin will have even more goodies, including possibly an app catalog, PTF management, security capabilities, and more integrations with tools from third-party vendors.
Merlin is also unique in how IBM chose to deliver it. Instead of making this software all native, Big Blue wants it to run in the same modern manner in which the wider IT world runs stuff, which means containers.
Merlin runs only in a container. In fact, it runs only in containers managed by Kubernetes, and the only Kubernetes distribution it supports is IBM’s own Red Hat OpenShift. What’s more, all Kubernetes runs on Linux, which makes Merlin a Linux app at the end of the day. Google, which created the Borg workload and container scheduler, the origination of Kubernetes, to simplify the massive workloads running in its cloud datacenters, and which open sourced a layer of Borg as Kubernetes in 2014, didn’t develop Kubernetes to be able to run on other operating systems – not Windows, not Unix, and certainly not IBM i.
IBM didn’t have to use OpenShift as the delivery mechanism for Merlin. But it did, for several reasons. The first and most important reason is that running containers in the cloud – and specifically, with the Kubernetes container controller in charge of how these containers are podded and managed – is the way the rest of the IT business does things these days. That makes it quintessentially modern, and being modern is what Merlin is all about. Secondly, IBMers also admit that they are doing a little bit of demand generation for OpenShift, which IBM is positioning to be the strategic Kubernetes alternative for any container workloads not running on AWS, Microsoft Azure, or Google Cloud. That has to please IBM Rochester’s Red Hat colleagues, even if it annoys midrange die-hards who refuse to even spell K8S (that’s the shorthand for Kubernetes, by the way).
This tie-in between Merlin, Kubernetes, Linux, and IBM i raises several interesting questions. If Merlin represents the future of modern IBM i development, does that mean Kubernetes (and therefore Linux) is the future of the platform too? Can IBM i be made to be more like Linux, or compatible with it? Will Kubernetes ever run on IBM i? Can containers run on IBM i? If so, what would that even look like?
IBM i And Kubernetes
Steve Will, the IBM i chief architect, CTO, distinguished engineer, and mastermind of Merlin, admits that even the IBM brass had some questions when he first brought his idea for Merlin to their attention.
“The very first people I disclosed this to assumed I was going to be telling them that this project was about running containers on IBM i,” Will said during his keynote address on Merlin at COMMON’s annual POWERUp 2022 conference several weeks ago.
The question of whether containers and Kubernetes can even run on IBM i is a bit moot. There is a simple answer: There are fundamental technological incompatibilities that make it virtually impossible to run containers and Kubernetes on IBM i. But there’s also a longer, more complex answer that perhaps is more revealing.
Merlin is good because it “places IBM i directly in the Red Hat OpenShift conversation,” Will told POWERUp attendees. “In the world today, programmers are being pushed, encouraged to do container-based things. It’s the latest trend.”
“[But] there is no container management system that runs on IBM i today,” he continued. “It isn’t that IBM i doesn’t support containers. It’s that there’s no container management system that knows how to build a container on IBM i.”
Containers are useful, Will said, because they provide a way to encapsulate a bunch of services and code and put it all together. In fact, IBM i already has something like that. “We can do that today,” he said. “We can build an environment that’s very much like a container today. What I can’t do is manage a container management system because they only care about Linux.”
The IBM brass greenlighted Merlin in part because it liked the direction Will was taking with Kubernetes and containers (even if they didn’t like the name). The fact that there is a fundamental impedance mismatch separating IBM i from the world of containers is not a dealbreaker in their eyes. Nor do the top decision-makers at Big Blue seem especially worried about it.
“None of the executives at IBM are asking us to make IBM i into Linux so that we can do containers. They recognize that’s not a thing,” Will said. “But we’re going to put out software that helps people move in a forward direction. Being in lockstep and this idea of having container-based software is a good thing to do.”
IBM i will never run Kubernetes or be a home for traditional containers, which are usually based on a technology called Docker. But the next best thing is getting the IBM i-resident applications and data as close to the applications and data residing in containers (in Kubernetes on Linux), which appears to be the strategy at this point.
“Now ultimately as you do modernization, you might end up writing some code that exists on IBM i and calls out to containers that are running somewhere else,” Will said. “That’s a valid, modernized way of doing things. Many people are doing that. You can do it with our tool set, or you can do it with other toolsets. We are not trying to make IBM i support containers with this. What we’re trying to do is give you tools that run in containers that will help you do your real job and help you cut off those questions about IBM i and containers.”
While Kubernetes isn’t going to run on IBM i, and IBM i isn’t going to morph into a version of Linux, the platforms can still work closely together, especially with OpenShift running directly on Power (although Merlin also will run on Red Shift on X86.
The key to getting them work closely together and making life easier for the customer is delivering a management layer that can work with both IBM i and Kubernetes. That management layer is Ansible, according to Steve Sibley, vice president of Power Systems offering management at IBM.
“We see bringing those closer together and simplifying how it’s put together and managed by the customer as the way to do that,” Sibley told IT Jungle in an interview at POWERUp 2022. “The way you bring it closer is to make the ability to manage the environment simpler. For instance, we talk about Ansible as a key management capability. It really is bringing Linux closer to i. It’s about bringing the i platform into a customers’ overall management environment. They can use the exact same Ansible platform to manage both their i platform as well as their Linux on Power as well as their Linux on X86 environments.”
IBM i isn’t going to run Kubernetes and it’s not going to become Linux. But it will sit right next to them, enabling IBM i applications and customers to integrate with them to the greatest extent possible. Will be enough to ensure IBM i’s continued relevance and survival in a world dominated by containerized microservices running in the cloud? Only time will tell.