|
|
|
|
|
by badpun
2581 days ago
|
|
I wonder how much cheaper it is to implement software for one, huge machine that „just works”, vs the usual way of implementing for a network of distributed machines. Distributed programming is NOT easy, and, even if the hard parts are supposedly implemented by various protocols/frameworks, these solutions constrain the way you can program and also have a ton of „interesting” failure states - just take a look at logs of say Hadoop cluster that’s been running for a while - even though the cluster is supposedly running fine (or is it?), you’ll find various kinds of exceptions related to the distributed model (socket timeouts and whatnot). Not to mention trying to thoroughly understand various eventual consistency models. On th plus side, we’ve basically moved complexity from hardware to software (it was pioneered by Google, a software company, so no wonder) which increases salaries of software people, at the expense of hardware people. So yay for us I guess. |
|
CICS and IMS definitely made it easy to create scalable software decades ago. It is not that different from the frameworks we have invented to make distributed systems viable that you mention, which I find insanely cool.
One of the cool things of running e.g. Ceph is that it exposes a familiar API (POSIX filesystem) which makes things easy to integrate with. The mainframe is like that but for hardware. VMware has similar things to some degree where your VM can be kept alive across hardware failure, but not really on the same level.
Anyway, I will stop here but I could go on for hours :-)