Hacker News new | ask | show | jobs
by aus_ 3952 days ago
By trade, I am a mainframe systems programmer at a large financial institution. My group is responsible for mainframe operating systems: z/OS (it may also be referred to as MVS), z/VM (the mainframe hypervisor), and z/Linux (Linux on a mainframe) and many of the software components that go along with these.

I'm really excited about this announcement. I think IBM finally realized they need to be more open if they want to grow the Linux on z community. I just hope they are not too late to the game.

There's a lot of mystery and misconception behind mainframes, so I am happy to answer any questions about mainframes that I can.

3 comments

What kind of demand do you think there is for a Linux-only mainframe?

My limited understanding is that most mainframe customers are locked-in, e.g. they have legacy COBOL code running their ledger system and the expense to switch off of it is simply prohibitive. That plus the fact that the system is reliable, low-maintenance, etc. preserves the status quo, despite the fact that if you were to write the same applications today, you'd choose a newer platform because it would be more cost-effective.

As such, IBM has historically offered z/Linux and co-processors only to hold onto data and processing that was being pulled off of the mainframe because it was too expensive/too onerous to do on the mainframe using z/OS and the like. So customers, unable to completely shut down their mainframe, could kind of make the best of a bad situation and at least get some cheaper Linux cycles out of their expensive iron.

If the above is true (and correct me if it's not) what is the appeal of a Linux-only mainframe? Or is it only interesting if it is radically cheaper than a z13?

> What kind of demand do you think there is for a Linux-only mainframe?

I think the answer really depends on IBM. Technically speaking, the hardware is rock-solid. There are no single points of failure in mainframe systems. But there are still some obscurities with the platform. There's a lot of packages you'd expect to be available in your s390x distribution of RedHat or SUSE that missing. And that's probably because the average open-source developer/maintainer doesn't have the means to develop/test on a mainframe.

IBM needs to realize they have an open operating system on a closed platform and the two don't mix. They are taking steps in the right direction, but time will tell if they get there. And they have to prove they can compete with the x86 guys on price.

> My limited understanding is that most mainframe customers are locked-in, e.g. they have legacy COBOL code running their ledger system and the expense to switch off of it is simply prohibitive. That plus the fact that the system is reliable, low-maintenance, etc. preserves the status quo, despite the fact that if you were to write the same applications today, you'd choose a newer platform because it would be more cost-effective.

You are mostly on track there. Mainframes haven't died because of many of the reasons you listed above. But I'd have to disagree with last statement about choosing a "newer" platform. Mainframe hardware is modern hardware, in the sense they are updated every one to two years. Mainframe operating systems are modern operating systems. They also get updated every one to two years. If you look at every industry that has been around for more than 30 years, almost all of their mission critical workloads are done on System z. Cheaper isn't cheaper when you have downtime.

But for some workloads, you are right: companies are only on mainframes because migrating to a different platform would be too costly. Even over 10, 15, 20 years.

OK, I'll start. I'm a former IBM-er (IBM Cambridge, Lotus building what up!). I worked mainly on the software side of things, and had some intermittent exposure to AIX and WebSphere which I found to be fascinating both from the historical evolutionary perspective as well as the functional perspective. I'd consider myself competent if someone were to call me in and save an iSeries POWER setup from complete meltdown. If I wanted to, I could get an old POWER5 on eBay with AIX 6L for less than a grand, or better yet rent a VM to learn on for $100/mo.

It seems like, except for "Cracking the Mainframe" or whatever, there's no easy (or even moderately accessible) way of simulating a mainframe setup to learn. Again, I love this stuff. I read Redbooks in my spare time. I have Hercules and z/OS setup, and that took a long time to setup compared to an Arduino or firing up a Linux VM. An average HNer is probably like me -- he/she might want to fire up a z/OS instance and play around with it. But he has no way of doing it though.

These are the tinkerers who end up deciding what platforms to use down the road. The high school kids playing with those free STM32 micro-controllers that TI gave out was a brilliant move. When they choose to do their semester project junior year, they might stick with TI because that's what they know. AVR was lucky Arduino took off too for the same reason. 10 years from now, those high school kids are going to be choosing what to buy 10k units of to throw into the pick'n'place machine.

There are some interesting big-data cloud IaaS/SaaS offerings you've put out to keep up with the times but outside of alliances with large incumbent vendors (say, SAP in ERP; EPIC in Healthcare) to sell large modules, you're not going to see much traction.

Offer something the tinkerers can play with. Make that the gateway drug. Amazon did it perfectly with AWS - easy to roll out, pretty predictable pricing schemes, pay for what you need, and scale up (more VM's/larger VM's) or out (other products within AWS). Every other vendor is chasing their tail trying to capture that market.

Linux on the z community offers me nothing as a decision maker. If I was already vendor-locked into you guys, then the prospect is appealing. But even with low latency (operating within the u-seconds, m-seconds and people start losing jobs/panicing), five-nines SLA (healthcare, HFT prop trading) requirements, what does the Z platform have to offer? How can I even evaluate prospective costs when pricing this out to pitch to the (hypothetical) board?

You are preaching to the choir! I am not an IBMer, so I have the same gripes.

Mainframes gradually exited academia in the mid-80s. It was a terrible mistake by IBM, because they essentially eliminated the next generation of mainframers. They've since come to their senses with a program called the IBM Academic Initiative [0] which promotes the use of mainframes in Computer Science courses. It's only about 20 years too late.

But I think they could do a better job. Up until recently, the only way to try z/OS without accessing million dollar hardware was to break the law. You literally had to torrent a pirated copy of z/OS. And it's not easy to find. A few years ago, IBM changed this with their tool: Rational Developer and Test for System z [1]. It's essentially Hercules but you get a legal copy of z/OS. And it's $9500 per year per CPU. And there is some stupid hardware license usb key.

And regarding your questions, your points are valid. Vendor lock-in is a concern. IBM is the only player in the business, and they know it. But look at every major industry that's been around at least 30 years: all the mission critical stuff runs on a mainframe. Maybe it's because it's the only thing that runs their legacy COBOL code. But it works and it's rock solid.

The poster child of migrating to Linux on z is Nationwide. They successfully moved almost all of their x86 processing to Linux on z and saved a ton of money. There's the definitely-not-vendor-biased white paper out there. Do some googling on "Nationwide Linux on z".

[0]: http://www-304.ibm.com/ibm/university/academic/pub/page/acad... [1]: http://www-03.ibm.com/software/products/en/ratideveandtesten...

I totally agree it's too painful to set up. That's why I didn't despite the excellent work done on Hercules. I really wanted to have a mainframe running on my PC to screw with. However, the list of steps and background knowledge to even get started were ridiculous.

That's why I broached in another comment an application, VM model like we saw for VMware, etc. They have a pre-configured VM for about everything. Could do the same for various aspects of mainframes so people could selectively use or learn each piece while slowly building up understanding. Pre-configured Hercules with some good tutorials on usage might be a start if not the other model.

What about the idea of offering a mainframe experience for the cloud? Have a mainframe but instead of delivering it to a customer with a groups of consultants just offer its aspects as a service?

(Disclaimer: I have not idea what I am talking about when it comes to mainframe, just a quick thought that popped into my head).

I think IBM is headed that direction with BlueMix. That is their public cloud offering. However, there are no mainframe offerings yet.
So, why use Linux instead of z/OS? Is it cheaper? Offer more tools?
The reason from my perspective is that it is different than a traditional unix system, and what unix emulation it offers is limited (to put it in perspective, it feels like a bad vim emulation... your native skillset doesn't quite translate). Lots of issues with dealing with data formats (EBCDIC). Access to open source compilers and scripting languages was limited. Granted these were strengths of the platform as well, but it made our workload (maintaining a compiler for the target) harder than other unix-alikes for those of us not fully versed in JCL.
It's hard to answer "z/OS vs Linux on z" generically, because there's use cases for both. But perhaps the most generic answer I can give you in favor of Linux is: familiarity.

z/OS has a long history. It's predecessor, OS/390, dates back to the 1990s. Before OS/390, there was OS/360 which dates back to the 60s. Back then, IBM was first to market on business computer processing. (That was the only computer processing.) Major industries, like financial, insurance, and airlines, poured their infrastructure into mainframes, because it was the only name in the game. IBM prides itself in assuring its customers that the COBOL code that ran your business back in the 80s will still run today on z/OS 2.1 (the current version of z/OS). Chances are, when you swipe your credit card, that transaction touches a mainframe and probably some code that was written in the 1980s. Or earlier. I know, because I've seen the timestamps.

This compatibility is really evident when you use z/OS. The green screen is perhaps the most obvious example. When you see a systems programmer (that's mainframe-talk for sysadmin) debugging a system, you'll see them page through a really archaic, unsexy TN3270 interface. Why? The same reason Unix (and thereby Linux) uses teletype. Because that's what the operating system was built on.

Sure. z/OS has Unix System Services. In fact, it's even POSIX compliant. But can you `apt-get install ruby`?. No. There's no Ruby for z/OS (unless you count JRuby). There's no package manager for USS. It's just plain, vanilla Unix. There's no new open source contributions. There's no Bash that comes with the operating system. You get a 10 year old version of Shell. There's all kinds of shenanigans with SCP/SFP and ASCII/EBCDIC. IBM has to maintain the tools. (Actually, it's been turned over to Rocket Software.) It feels very "round peg, square hole".

So z/OS has an image problem. IBM made a huge mistake back in the mid-80s. When commodity x86 PCs became available, universities realized they could teach their computer science programs on cheaper hardware instead of expensive mainframes. Compute Science is platform agnostic, right? What IBM didn't do is recognize this as a problem. They didn't give out free mainframes to universities, so schools quit teaching with them. How many people do you know under 30 that had a mainframe-based curriculum? And for the self-taught, how are you suppose to learn the basics of a platform if costs millions of dollars? Anybody can install Linux on their $100 laptop in a few hours. But mainframes?

Fast-forward a couple of decades and now you have a talent pool that's extremely saturated with x86 people. And the mainframe people? Well, they are all retiring and there aren't many replacements. Second-generation mainframers are far and few. (I'm one of them.)

So let's say you have a new workload. It's undeveloped. What platform should you choose? There's probably not many technical reasons why you could not accomplish what you want to do in z/OS. But how many people do you know that consider themselves proficient with debugging z/OS? Outside of "dead languages", your options are pretty much limited to Java. (There's a few exceptions to this, but Java is the biggest modern language player.) But that's not to say there isn't any new development happening in the z/OS space. There's plenty of new workloads coming to WebSphere on z because porting a WebSphere application could be pretty easy. There's also performance benefits when you are on the same system where all your financial records are stored. z/OS is definitely an option, but it varies by use case.

With Linux on z, you get real Linux. And the majority know Linux. The majority can debug Linux. And you get the same benefits of being on rock-solid mainframe hardware and you get memory-speed I/O against mainframe data and services through a special networking interface called Hipersockets. Mainframes are also pretty good a virtualization, because they invented it. (z/VM has it's roots dating back to the 70s.)

That was definitely where they screwed up: universities. They have recent program pushing mainframes to universities more. However, they would've been better off (a) giving them to Universities at physical cost, (b) donating time to their students from a pool IBM themselves use, or (c) supporting the Hercules emulator for use in educational institutions that acquire licenses. This would've gotten more exposure. Each are still good moves today.

Not sure what they're actually doing but closing it off too much holds them back. It can still be proprietary. However, people need to be able to hack on it or a VM of it for best results. Preferably, a way for people to learn it in pieces so they don't have to know all mainframe stuff at once. Think the pre-configured, appliance VM's for various services. Have those for z/OS admins, CICS users, etc.

I'm curious too. Of course, anyone here can quote the usual benefits of open source (no licenses, familiarity with the technical crowd in general, the "many-eyes"), but I'm curious how valid these benefits are in the mainframe space.
Maybe more software is supported on Linux. So it combined some of the hardware advantages of a mainframe + more recent/wide variety of packages?