Many techies are wary of mainframes because of the myths and mystique surrounding them. There are three main myths about mainframes:
1 They are hugely powerful.
2 They are very complicated.
3 They are ultra reliable.
None of these is actually true, let’s have a look at each of them and see what the facts are.
Firstly mainframes are not all that powerful; their clock rates are actually quite low because they have to propagate the clock over a long distance rather than just across a chip. They achieve much of their performance from smart pipeline and parallelism but like any parallel system this implies particular workloads. This workload type is the key to mainframe performance, given the right sort of load they do perform really well. This “typical” mainframe load is basically running OLTP type programs against simple hierarchical databases with text only output to a 80x36 text display. Mainframes have been set up to handle this load really efficiently which is where they get their reputation for performance. Give them a complex VB type application or even a complex database application and they struggle, in fact they can be a lot worse than a Windows Server.
Mainframes are very complicated from a hardware point of view but from a software perspective they are much the same as any other system. The operating system, languages etc are much the same as a Windows system. There are two main areas of difference however and these are in the connectivity and the middleware running on the mainframe. Whilst these are different they are not actually more complex, it’s just the terminology is different, in fact as pointed out at Life as a Reformed Mainframe Programmer in the .Net World MTS and CICS are very similar. I will write up a mainframe 101 to explain mainframe comms and middleware in MS speak to show this.
Mainframes are made up of lots of parts and connections and so are inherently much less reliable than a Windows server. Of course in real life the key thing needed to provide reliability is operations and maintenance not hardware or software and that’s what mainframe shops are great at. If you take a system (Windows or mainframe) and put it in a sealed environment with rigorous fault, error, upgrade and maintenance regimes and a static, well understood workload then you will get similar reliability. If you abuse the system in any way then the reliability will tumble. I have a really fun story about sex in a mainframe causing reliability problems that I have been told that I can’t publish so you will have to imaging the details!
Microsoft had a marketing campaign around reliability and five nines a few years ago which really annoyed me. It implied that if you used Windows then you would get five nines which is of course silly. Most downtime is caused by poor operational procedures rather than the software.
So whilst mainframes are different from Windows systems they have the same issues, limitations and requirements. We in the Windows world could learn a lot from the mainframes about operations, workload types and reliability which would address many of the issues that we have today on Windows servers. There is certainly no reason to either dismiss mainframes as legacy or be frightened of their supposed power and complexity because these are just myths.