How Virtualization Improves Software Development
- — 12 February, 2009 11:06
Mike Brescia, who works for a company making real-time environmental data recording, and retrieval, says, "In addition to offering its system as a virtual appliance, our company's developers use virtualization to put up different test environments, e.g. Windows and Linux, on fewer hardware boxes." Cloning a clean computer system for testing purposes is much easier than copying a disk image and using Clonezilla, Brescia says. "Running VM does not require tearing down and wiping a complete system; we only need to be careful not to overload resources on the host machine," adds Brescia.
The fifteen Web developers at design and marketing firm Eli Kirk, have to cater to a number of Web browsers and operating systems, says Connor Boyack, Eli Kirk's senior web developer, who uses Parallels version 4 on Mac OS X Leopard, and runs VMs of Windows XP, OpenSUSE 11 and Windows 7 Beta. "Creating functional and aesthetically identical sites requires a great deal of browser testing, which makes virtualization a must," says Boyack. "Virtualization allows me to use multiple operating systems and multiple browsers all collaboratively and seamlessly (well, when Windows XP is playing nice)."
There's a huge advantage in the ability to test a dozen different scenarios simultaneously to ensure a consistent user experience, agrees Nick Gauthier, a developer at SmartLogic Solutions. "Another advantage is being able to boot up a specific version and browser when a client has a complaint. We no longer have to say 'Well, I don't run that browser, I'm on Linux;' now we can say, 'One moment please; ah, I see the problem and I'm fixing it now.'"
"We use virtualization to test our software on the platforms and applications we support (for QA), and to replicate customer environments when there are customer issues for support," says Eric Floehr, CTO at 3X Systems, a startup that developed and sells a remote backup appliance. "Virtualization allows us to quickly bring up and tear down environments, and allows us to do so with a minimum amount of physical hardware." The ability to test against a large number of platforms and environments with a minimum of capital outlay is especially important in a small startup company. Plus, "It greatly improves the quality and reliability of our product," adds Floehr.
Tamoggemon Software focuses on programs for handheld computers, originally for Palm OS and now also Symbian OS Series 60 and PocketPC. "I am using virtualization a lot for various reasons," says developer Tam Hanna. "My main reason is the prevalence of Cygwin/Eclipse based development systems (Eclipse for J2ME, PODS from Palm and Carbide from Nokia). Installing them all onto one machine, well, causes all of them to break. So I need to use virtualization in order to be able to do my job. Furthermore, I like to use VMs to keep my configuration settings the same across all my machines."
At MarkMail, a free service for searching public mailing list archives, "Our team is using virtualization in a number of ways," reports John D. Mitchell, developer (his official title is "Mad Scientist") at MarkMail. "The key is that virtualizing each and every service in the system gives us a lot of flexibility. In development, we aren't stressing the physical resources much so we have lots of virtual instances running on just a few hardware nodes, including the database."
MarkMail is using OpenVz (http://wiki.openvz.org) so the images in the developer sandboxes are identical to the deployment environment. "Virtualization makes it very to test different setups, versions, etc.-we can always just blow away an instance and reinstantiate it from a clean checkpoint," Mitchell says. Using virtualization reduces the amount of hardware they need to buy/lease and manage, according to Mitchell. "In total, we're running about a 3 to 1 ratio of virtual instances to hardware nodes."