Continuing on from my previous post on virtualisation, there is another relatively easy, but very effective way of using virtual machines in your organisation. But first, let me ask you a question.
How often have you made a change in your IT environment that either hasn’t been tested properly, or has not gone smoothly despite extensive testing?
I’m sure, like me, you have encountered more that one situation that fits those criteria. After all, IT is a hugely complex subject and you can’t predict everything, right ? Well, actually, I think it is possible, and indeed is becoming easier thanks to virtualisation technology. First of all, though, lets take a slightly closer look at the issue.
The goal of effective testing is, very obviously, to make sure that any changes to your live environment are subjected to sufficient tests before implementation to ensure that, when implemented, the predicted behaviour is actually achieved. Simple, eh? Well actually, it isn’t. There are a number of issues that form a barrier to effective testing. For a start, your test and live environments will always be different. How different will depend on how much investment you make in your test environment, but at the very least there will be data differences.
Now lets consider one of the characteristics of virtual machines, namely the isolation of the operating system from the underlying hardware.
So instead of needing drivers for a particular make and model of CD-ROM drive, for example, each virtual machine on a physical server will use a standard virtual drive regardless of the physical drive. The story is the same for all the virtual components - CPU, memory, network card, hard drive, etc.
So now, instead of having to ensure there are no hardware differences between your live and test environment, you can go ahead and use pretty much any hardware you like, as long as it can cope with running a single virtual machine.
The other relevant feature of virtualisation technology is the ability to take a snapshot of the virtual machine at any point in time. (Note: this is a feature of VMWare software, and of many other virtualisation solutions. If your software won’t do this then you should probably change it.) So essentially you are taking a complete copy of your live server to do with what you will.
So effective testing is now a much simpler matter. Instead of having to maintain a test environment that stays completely aligned with you live environment, all you have to do now is take a snapshot of the live environment, make the chnages and carry out your testing. If the testing is successful, then you can go ahead and change your live environment with a high degree of confidence that the update will not fail. Indeed, if the live environment has not changed while testing is carried out, then you have the option of replacing the current live virual machine with the updated snapshot.
Don’t forget though, backups are your friend!