x86 virtualization is one of a select few truly unquestionable success stories in the modern IT landscape. It works well, has seen widespread adoption and it is a technology in the intriguing position of blurring the lines between two competing computing models. Those two models are the mainframe and the commodity PC. The mainframe model sees specialised hardware married to precision crafted software. Dozens or hundreds of individual processing units are joined together with the highest capacity interfaces available. The mainframe focuses on raw speed and software that ensures every last cycle is wrung out of the hardware available.
VirtualBox Ubuntu installing Windows XP - Image by Andrew Mason
To contrast, PCs are nowhere near as elegant. The x86 architecture is a series of kludges, one after another built up over decades. Compared to mainframes, the software to manage this mishmash of technologies is painfully inefficient. Were mainframes and commodity PCs to be at price parity, the mainframe would win hands down. Things aren't that neat, however. Mainframes are shockingly expensive while PCs set price/performance records with every quarter. None of that mattered for a very long time however, because mainframes offered something PCs couldn't: virtualization. The power of a mainframe could be cut up into neat little slices, each running a completely ‘containerised’ piece of software. Operating system virtualization, application virtualization... pick a buzzword off the list and mainframes have had it for ages. x86 virtualization changes everything.
Today, incredibly powerful computers can be purchased for shockingly low prices, and then sliced up in much the same way mainframes had allowed. But how does this help you? There are a number of ways you can reap the benefits. The first and most obvious benefit of virtualization is the ability to collapse multiple physical servers into one. This saves space, cuts down on power consumption, requires less cooling, and less costs for maintenance, asset tracking and disposal. Virtualization allows agility; the ability to create and destroy entire operating systems at the push of a button, all as isolated from one another as they would be if they were separate physical systems. This has profound security bonuses for various elements of testing; it can also mean the ability to turn a single system into a multi-user environment without exposing all users on the system to viruses, malware or external hacking/cracking attempts incurred against one user’s system.
Virtualization is great for enabling high availability; with the right tools your workloads can survive the loss of any one computer system or component and continue to work elsewhere in your datacenter. Workloads can be spun up on demand, and spun down when not required. Similarly, the fraction of resources devoted to a specific workload can be carefully managed, allowing different workloads to take priority at different times. x86 virtualization then is a critical tool to the modern business. It has brought expensive mainframe-class techniques and abilities to the commodity PC market. What was once enterprise computing completely out of reach for most businesses has become business as usual for everyone.