We have a server room full of computers at work.
Back in the bad old days, each physical box had one job. One piece of hardware was a database server, one was a web server, one was an authentication server, one handled user logins, etc etc. Dozens of machines – some performing multiple jobs, but still tied to their specific hardware.
As a result, if one box went down, one *entire function* went down.
A drive fails or a power supply gives out?
You are *fucked*, matey. No database for you.
One of the biggest problems was granularity – if you had a dozen physical boxes with 16GB of RAM each, then each one got 16GB, no more, no less. If you had a server that only needed 2GB, then that’s 14GB completely wasted and unused. Another server could really use 24GB? Sucks to be you I guess.
The same with disk space and CPU capacity. A whole stack of little buckets of resources, and each server got one bucket, whether that was too much or too little, you just went with what you *thought* you’d probably need, then you had to live with it.
And backing up / restoring machines was a pain in the ass – if a disk died and you had to restore from backups, it meant going in there, plugging in a monitor and keyboard, getting the install disks and rebuilding the operating system from scratch before importing the data, or having to do horrible things fishing around inside to copy drives and plug them back in…
**Then along came virtual machines, and everything changed.**
Now we have a small handful of extremely grunty physical machines with a shitload of RAM and storage each – and each of our servers is just a *file* on those machines, sharing their resources between them.
You want to give the webserver more RAM? A bigger disk? Click. Done. All the servers get whatever share they need of one massive pool of resources, and take as much or as little as you care to give them.
One of the physical servers goes down? The VMs *automatically* get shunted onto the other physical machines. In some cases without even dropping a network packet. A drive dies? No big deal, everything’s highly redundant and the remaining drives can pick up the slack, we just take that drive out of service and put in a warranty call. When the replacement arrives, we just stick it back in and re-enable it; the capacity of the storage pool goes back up again.
You want to restore a machine from backups? Snapshot it so you can test out some changes, then roll back if it doesn’t work? That’s a few clicks in a web browser, from your desk. You want to build a new server? Again, all done in software.
It’s computers-as-a-service, it’s commodified all our computing resources as a whole and it made our lives indescribably better.
Latest Answers