Menu
Menu
How Virtualization Improves Software Development

How Virtualization Improves Software Development

Virtualization technologies aren't just for server consolidation. They've long been valuable tools to anyone writing or testing software. We show how these tools are being used for software development and quality assurance now and identify a few places where developers still want more from virtualization.

The Limits of Virtualization

There are, developers acknowledge, part of the process where virtualization can't help.

"One area where virtualization doesn't help is in stress testing our product, which is a network-based backup appliance," notes 3X's Floehr. "While we could test 10 simultaneous clients virtually, it isn't a true stress test because the 10 clients are only going through, say, four physical CPUs and two NICs, which are constraints that would not exist if they were 10 physical clients in the real world."

"Virtualization does add some complexity," adds MarkMail's Mitchell. "It always adds some latency. But, even worse, you can't rely on VMs to give a clear view of the performance characteristics as you change the underlying execution environment, such as going from development and testing into production."

Finally, Mitchell notes that "The current generation of desktop virtualizers still have too many annoying quirks, bugs and missing features," at least with regard to their use by developers for software development.

"For load testing or scaling, you have to run on the raw hardware, the physical machine," says Microsoft's Mark Friedman. "Performance characteristics, unless you expect to deploy on a VM, are very different. And the same applies to the state of the art for performance measurements; you can't trust the [Physical Machines] you get on a VM currently." Although, Friedman notes, over time he expects this to be fixed.

Also, says Friedman, the para-virtualization approach used by the virtualization industry can change some does change some underlying aspects of the OS, notably the OS drivers. "So if you have a dependency on specific drivers or hardware environment, that will be impacted. For example, there's a virtual NIC, and there's a specific driver. The driver is 'virtualization-aware.' You have to understand that if you need testing against a native set of drivers, you won't see that within a VM. So this impacts people doing driver development, but not web developers, etc."

And, Friedman points out, "if you have a multi-tiered application, which requires several machines, consolidating these to shared hardware means "you get a functional but not a performance test."

Despite those quibbles, virtualization already gives developers real benefits. "Virtualization makes our developers more productive once they learn to work with the technology," says Microsoft's Friedman. "It allows them to spend more of their time in coding, testing and debugging. It eliminates a lot of time and delay spent in set-up and preparation, which isn't where we want them to be spending the bulk of their time."

Daniel P. Dern is a freelance technology writer based in Newton Center, MA. His web site is www.dern.com and his technology blog is TryingTechnology.com.

Join the CIO Australia group on LinkedIn. The group is open to CIOs, IT Directors, COOs, CTOs and senior IT managers.

Join the newsletter!

Or

Sign up to gain exclusive access to email subscriptions, event invitations, competitions, giveaways, and much more.

Membership is free, and your security and privacy remain protected. View our privacy policy before signing up.

Error: Please check your email address.

Tags virtualisation

More about CMGCortexEclipseetworkFriedman'sLinuxMicrosoftNokiaPalmParallelsSymbianVMware Australia

Show Comments
Computerworld
ARN
Techworld
CMO