Many years ago I decried the new mania for virtual servers as a fix for Windows’ limitations in allowing services to be moved from one host to another. They’re also being used in the Linux world (particularly) in the form of “appliance architecture”, where services are not run on operating systems but whole systems are run within systems. I guess this allows non-technical people to visualise them better or something.
The situation is getting out-of-hand. People don’t understand they’re using a paradigm, and not a computer. This is leading to a lot of nuttery.
I’ve seen an instance when two virtual servers (running on one host) were running a service between them with a virtual load balancer in front in an attempt to improve performance. This was in a production environment. I only hope that whoever designed the system assumed it was going to run on real hardware, and then some muppet came along and simply copied a prototype to “the cloud”.
Reality check people: You may have something that looks like lots of small computers, but underneath there’s just one of them – and you’re sharing it with other customers. By virtualizing lots of small servers you’re just burning cycles on the big one, and retarding its disk performance. It’s a bonkers as a perpetual motion machine; it’s never going to run as fast as it would have directly on the host.
I’ve even heard people comparing one virtual host with another as if it was real hardware. Mine’s got 64Gb of RAM! Well mine is all SSD and a 16-core Xeon!
No you haven’t! You’ve got a software emulation of whatever your provider has sold you, running at whatever speed is left after the other customers have taken their chunk. You don’t have any RAM at all. Your OS thinks it has, but the whole OS could be swapped out. It’s disk accesses go through the hypervisor cache, and to its backing store at whatever speed it goes at. It may not look like your memory is paged, but the hypervisor is certainly going to be paging it anyway. If you feel better thinking you’ve got all the RAM you need, please continue in your virtual wonderland.
Ah, but you’ve got Elastic Computing, and can inflate the size of your RAM number of CPUs as demand increases. Let me tell you, an inflatable is never as good as the real thing. And your high demand may coincide with someone else’s. So you “reserve” the resources needed to cope with your peak demand. Hmm. Sounds a bit like having your own hardware to me.
I use one cloud server provider – vultr.com. It’s a bit of a love-hate relationship as, in case you didn’t realise, I don’t think much of cloud computing and anyway, I can afford to have my own. But if you need a small service on the end of an IP address on the other side of the world, they’re just what you need. I was amused to note that my “512Mb/20Gb” virtual server believed it came equipped with a 10Gb NIC talking to the Internet. Software emulation of 10Gbps anyone? And then there’s the contention ratio to worry about.