Here at Delib, we use a little XenServer 6 cluster for continuous integration. We have programs that act like users of each of our online applications and put them through their paces, which we write using a framework called Selenium. We use these automated tests to demonstrate that the entire software stack under each of our applications all works together, before we roll out changes to any individual part of it. These are full end-to-end tests, demonstrating all of the layers from our application code through to the operating system that they are running on.
The XenServer cluster is a small group of physical computers that work together to host a larger group of virtual computers. This makes running our tests on different versions of operating systems much easier than if we had installed them directly onto physical computers, because we can do things like clone virtual machines or roll them back to a specific point in the past with just a few clicks (or commands).
Virtualisation is an enormous help for testing how our software interacts with its operating systems, but it has one very small downside: you end up needing a lot of RAM to run a large number of virtual machines. Each physical computer needs to have as much RAM in it as all of the virtual machines that it is hosting, added together. We’re not big fans of spending our lives manually shuffling things around to fit within limited resources when they’re cheap, so the first alteration that we are making to our QA cluster here is to double the amount of memory in it.
This was a stack of sticks of plastic and silicon to the immediate left of my desk, when it had just arrived this morning from Crucial. I’ve just installed them all into the physical computers, and we should be up and running and making use of this soon. This upgrade should, as soon as we’ve reconfigured everything to take advantage of the extra memory, make the time that it takes to complete one of our test runs at least a little shorter, which makes me happier.