IBM i Wish List: Add A Virtual IBM i Platform Like System z Wazi
March 22, 2021 Timothy Prickett Morgan
Serendipity is a funny thing; part serene and part dippy, I suppose. I was poking around for something interesting that might be relevant to the IBM i platform, and ran across announcement letter 221-122, which was for something called IBM Wazi Developer for Red Hat CodeReady Workspaces. I had recently heard of CodeReady Workspaces because of the recent Power Systems announcements, but I had no idea what Wazi was.
What I now know is that I want this in an IBM i flavor.
There is no such thing as a portable and cheap and ubiquitous System z mainframe environment, or one for Power Systems operating systems AIX or IBM i, either. You can’t just grab the stack and put it on a laptop, as developers the world over like to do for Linux and Windows Server platforms. This is a big shortcoming in a world where any programmer anywhere in the world can run Linux, and depending on whether they want to pay Microsoft, Windows Server or Windows 10 on a client.
For a long time now – like for more than a decade as far as we can tell, but probably longer – IBM has had one or more emulation environments that allowed for z/OS mainframe applications to be written and tested on PCs. As far as we known, these are not based on the open source “Hercules” System z hardware emulator or the Flex-ES hardware emulator that ran into all kinds of legal problems with Big Blue quite a while back. The most recent ones include IBM System z Personal Development Tool, or zPDT for short, that allows for the z/OS, z/TPF, or z/VSE operating systems and the Db2 relational database for System z machines to run on a PC, with the hardware emulated on top of Linux on an X86 processor. There is another tool called Z Development and Test environment, called ZD&T for short, which is another emulator running atop Linux that runs the entire z/OS stack. This latter mainframe clone is the interesting one, since it is embedded in this Wazi tool.
ZD&T, as you can read here, comes in a Personal Edition, which as the name suggests provides a z/OS mainframe platform running on an X86-based PC. The Enterprise Edition is a full-on product that allows for a System z mainframe stack based on z/OS to run across a cluster of Linux/X86 servers. The Parallel Sysplex Edition allows for mainframe-style shared memory clustering that is native to System z mainframes and their integrated controllers to be run across a cluster of Linux machines.
IBM warns, right from the beginning: “ZD&T cannot be used for production workloads of any kind, nor robust development workloads, production module builds, preproduction testing, stress testing, or performance testing.”
There is probably a good reason for this, but then again, there is probably a better reason to want to do it anyway. And we highly suspect that more than a few System z shops do just that.
What the Wazi Developer for CodeReady Workspaces does is allow for the System z platform to be containerized and run atop Red Hat OpenShift so that greenfield, native cloud applications written for Kubernetes containers from the get-go can access mainframe applications. The idea is that this is a developer environment, but we have two wishes. First, create an IBM i equivalent to Wazi – you could call it iClipse, seeing as though it will be snapping into the Rational Developer implementation of the open source Eclipse integrated development environment. And two, we want for IBM to allow for production IBM i workloads to run on this atop X86 and/or Power iron so customers can start building hybrid containerized applications. Basically, if you can’t get OpenShift to be native on Power Systems for IBM i workloads, then get IBM i workloads to be native on OpenShift container clouds running on X86 iron.
I have no idea if IBM has spent money making an emulated IBM i stack at the same level that it has done for System z iron. We have a sneaking suspicion that at the core this is all the Flex-ES software which IBM gained access to after its lawsuit with its creator, Fundamental Software. It’s a guess, but only that. So IBM might not have done any work to get the core code at the heart of ZD&T. Or, maybe IBM created it from scratch. It doesn’t matter. What matters is that it exists and it creates a precedent for doing the same thing for IBM i and AIX customers, which I think IBM should do. Why not let customers chose across a very wide variety of hardware that runs an IBM i platform inefficiently or native hardware that runs it exceedingly well? IBM is doing this for mainframes to make System z relevant to the younger generation, why not for IBM i?
Why not, indeed.
Re: IBM i Wish List – This is an observation from an RPG programmer, but there are at a minimum two major problems with an emulated IBM i on x86 hardware; one is the TIMI virtual layer and the other is IBM i nee AS/400 hardware support in the IBM CPU’s.
On the one hand, TIMI means there already is a virtual layer between IBM i and hardware. Looking ahead to point 2 I don’t know what if any assumptions there are about the special instructions IBM has for IBM i and predecessors in IBM CPU’s. It also means that only the TIMI has to be ported to the environment to translate, just like every other CPU change, the scope dependent on how deep assumptions are of what the supported hardware in the past contained.
But porting the entire virtual environment of IBM i to run like a PC for which IBM could charge very little while disowning anything that happens with it in hopes of promoting sales of multi-hundred thousand dollar servers makes absolutely no sense at all. There are free IBM i sessions available for the asking, not from IBM but IBM i oriented vendors. That isn’t the holdup. What to do with an IBM i is the holdup. The scaling is the key, but it takes significant software development to have something worthy to an organization to scale.
Issue 2 is baked in IBM CPU hardware support for IBM i and predecessors. Forget the memory security and any object support which is fundamental to IBM i. The BCD math hardware support is also fundamental. The others emulate with integer types, but IBM hardware with RPG and COBOL perform with CPU hardware accounting math at scale. The equivalent to me is using GPU for floating point hardware support. Yes, it can be done with integers, but at scale you need hardware assisted.
So an emulated IBM i on x86 is also emulating some key core instructions that IBM i executes for business, and lacks every actual hardware capability of IBM i. The fact that it could do anything would be simply a tribute to software porters and OS/400 genius level architecture from Rochester.
But there is a middle ground between free IBM i sessions for the asking from a couple of vendors, and of course paid session support, and expensive new IBM servers with support. Used systems are available for several thousand dollars. A few years ago I paid $8k for a high end Linux server. The 720 was more than that, and only 2TB vs 28TB (both RAID5), but I could have got an iseries for same price.
That might change if used systems got snapped up, but I think dealing with a real IBM i through online or your own server is only realistic approach from both developer and IBM.
I am greedy, Ralph. I want a cheap box, a cloud option, and a runtime that runs on X86 clusters. That way, all the bases are covered. HA!
that’s the reason we run PUB400.COM