Thursday, 18 December 2008

Testing through the Credit Crunch - Part 3 - Virtualization

So far in the series we have learnt how to save money by becoming more Agile and by implementing Test Driven Development. The move to these can take a little while to implement because of the learning curve involved and/or the inability of some people to move out of their comfort zone.

This post is going to discuss virtualizing our test environments. Virtualisation is fast becoming the norm in data centers because it allow infrastructure managers to build up disaster recovery machines fairly quickly. They can also utilize the hardware of the host more efficiently. Good thing when everyone is trying to become 'greener".

So if the infrastructure people think its a good idea then it must be a good idea for testers. Getting real machines for testing is expensive, not only in terms of the hardware and software, but also the human resources to maintain them. Think about having 10 computers with 10 Windows licences that then need to be maintained. Having a quick look at Dell for a basic computer it would cost at least £2990 for the 10 computers and windows licences and just to make it a round number lets say that it will take £100, £10 per machine, to maintain them for a test cycle.

So we now have a cost of at least £3000 to get all the computers and maintain them for one cycle. That doesn't include the electricity to run all of this hardware. Since its the credit crunch we don't that amount of money to waste. The best thing to do is to virtualise the whole lot.

Spend the same amount of money on a low range server . So now we only have one machine that needs to be maintains. Maintenance cost goes from £100 down to £20. I say £20 because maintenance on servers can be a little more because the hardware is slightly more expensive. http://www.vmware.com/go/calculator will give you a better calculation. I did it and for 500000 machines, defaults in the calculator, I saved £350000+ over a time frame.

So whats the best Virtualisation software available? This is a very hard question to answer. I am big fan of free software so use Microsoft Virtual Server 2005 and VMWare ESXi. I have heard good things about XEN if you have a Linux. The main thing is to chose an application that you feel that you can work with quite well. Both MS Virtual Server and VMWare ESXi have APIs that allow you to manipulate the machines that are running on it. This means that you can clone machines and create a new machine by just running a script. As with Test Automation you won't see the saving straight away but it will save time, hence money, in the long run.

In the next post I will discuss visualisation of testing

3 comments:

Anonymous said...

Hi David,
It is good to see you bringing the focus on the use of virtualization in software testing.

You and your readers might find the following links as useful/related additional reading:

1. Getting by with desktop virtualization for your testing needs? Here is what you are missing
2. What Virtual Lab Automation offers over and above a Hypervisor

Thanks,

- Srihari Palangala
http://blog.vmlogix.com

Anonymous said...

Hi, All very good I'm sure, and virtualisation certainly has an increasing and very useful presence, but a low end server machine could most definitely not concurrently run the 10 virtual machines you mention initially. So while virtualisation has it's place, for testing I believe that rather than cost savings the primary advantages are:

1) Known environment. How many times have you found an issue which turns out to be because of a "dirty" machine that had a previous development build on it?

2) Ability to test on multiple different operating systems/installations/memory configurations etc.

Cost savings are all very good (and essential in todays financial climate), but probably not as great a saving as you (and VmWare who I'm sure have no vested interest at all :) ) suggest.

Test Information Space said...

David: Great series. Just subscribed from reference in post on LinkedIn. Thanks.