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.

Virtualization's big push to fame was arguably kick-started by VMware's Workstation product, which allowed individual users to run a bunch of OSes, versions or instances (similar to multiple application windows) instead of having a one-at-a-time multi-boot environment. In many companies, virtualization arrived with developers first using the technology quietly to do testing and development, then introducing the virtualization tools to IT higher-ups.

While today, computer virtualization fuels many production environments, e.g., servers, desktop infrastructures, and as a provisioning tool, virtualization is also used by a still-growing number of software developers. For starters, they use virtualization tools to provide a range of target environments for development and testing (such as different operating systems, OS versions and browsers), and also to provision/re-provision configuration instances quickly and easily.

Here's a look at how and why some of today's developers are using virtualization and what their quibbles are with the technology as it stands.

Provisioning Multiple Test Environments

Mark Friedman, a senior software architect, works in Microsoft's Developer Division, where upwards of 3,000 people create Visual Studio and the .NET Framework. Friedman himself works mainly on the performance tools that ship with Microsoft's Visual Studio Team System. "About two-thirds of the people in my division are in development and testing -- and most of these developers and testers are using system virtualization (via Microsoft's Microsoft Hyper-V technology) as one of their key productivity tools," says Friedman, who is also a board director of The Computer Measurement Group.

One key advantage is virtualization's ability to set apart an unstable environment, which is something any developer expects in early phases of application design. As the Microsoft tools are developed, says Friedman, testing early versions may destabilize a developer's entire computing environment.

"That's the nature of the beast," he says. "Almost anything except the simplest desktop application can crash the system. I often tell my developers that if they aren't crashing the system regularly, they are not trying hard enough. We appreciate virtualization technologies, because they save time, and let our developers spend more of their time on the challenging stuff, not the mundane and extremely time-consuming aspects of prepping test environments."

Like other virtualization tools, Microsoft Hyper-V lets users 'snapshot' the system at a 'last known good version.' "We create a rollback that allows us to restore the system to that previous good state within minutes," Friedman says. "The alternative is having to re-image the computer or re-build the environment, which can take hours," says Friedman. "This is a tremendous timesaver."

Friedman's group also makes extensive use of virtualization and virtual machine images is in quality assurance (QA) testing. "Once you get past unit testing by the developers, we like to talk about the test matrix-what versions of the OS does it run on, for example," he says. "Then we need to test against both the 32-bit or 64-bit versions of each. Using Virtual Machine (VM) images is the fastest, cheapest, most flexible way to maintain a variety of testing environments. In our QA labs, we are doing this all the time; we do a lot of automated testing, so we stockpile these images as VMs, and point our test suite at them. It's invaluable. We save so much time you wouldn't believe it."

The ability to snapshot, and restore a working image within minutes, rather than wait hours for a rebuilt system, is particularly important. "You're often looking at bugs where you have to spend a day or two to set up the environment just to reproduce a bug, so the time you spend having to rebuild again and again-that's a time waster," says Friedman. "That is loss of productivity."

For example, when a bug causes a system crash, the developer has to work backward to identify the point where the system crashed. "People often initially set breakpoints too far into the process and the system crashes again. Since a developer can easily be crashing the system several times a day, being able to restore quickly and then re-run the debugging session while the problem is still fresh in their minds is a great benefit," Friedman says. "When you're troubleshooting a complicated bug, it's good to stay in that groove."

Virtualization is a great boon to iterative testing, developers say. "We have lots of test systems for use by our developers-each of which needs its own x86 control system. Rather than get a lot of PCs, even whatever's cheapest, we're using virtualization to create VMs which then 'attach' to the external cluster boards," says Adam Moskowitz, senior software engineer at SiCortex, which builds and sells a range of energy-efficient computers.

SiCortex's development department uses the free version of VMware Server on a somewhat-beefy rack-mounted server (equipped with 2- or 4 dual-core x86, 4 GB RAM, 300GB hard drive) which can run from four to eight control system VMs, says Moskowitz. "Because there's very little load on the control system, this works just fine, at lower capital expenditure. Over half of our roughly 25 engineers use these virtualized systems."

A primary benefit of virtualizing the control systems, says Moskowitz, is ease of testing. "Want an experimental system? Clone a standard VM and away you go," he says. The toolset is also valuable because of its ease of configuration; developers can build a VM with the latest software once, then clone it as many times as needed.

Join the newsletter!

Error: Please check your email address.
Rocket to Success - Your 10 Tips for Smarter ERP System Selection

Tags virtualisation

Keep up with the latest tech news, reviews and previews by subscribing to the Good Gear Guide newsletter.
Show Comments

Most Popular Reviews

Latest Articles

Resources

PCW Evaluation Team

Sarah Ieroianni

Brother QL-820NWB Professional Label Printer

The print quality also does not disappoint, it’s clear, bold, doesn’t smudge and the text is perfectly sized.

Ratchada Dunn

Sharp PN-40TC1 Huddle Board

The Huddle Board’s built in program; Sharp Touch Viewing software allows us to easily manipulate and edit our documents (jpegs and PDFs) all at the same time on the dashboard.

George Khoury

Sharp PN-40TC1 Huddle Board

The biggest perks for me would be that it comes with easy to use and comprehensive programs that make the collaboration process a whole lot more intuitive and organic

David Coyle

Brother PocketJet PJ-773 A4 Portable Thermal Printer

I rate the printer as a 5 out of 5 stars as it has been able to fit seamlessly into my busy and mobile lifestyle.

Kurt Hegetschweiler

Brother PocketJet PJ-773 A4 Portable Thermal Printer

It’s perfect for mobile workers. Just take it out — it’s small enough to sit anywhere — turn it on, load a sheet of paper, and start printing.

Matthew Stivala

HP OfficeJet 250 Mobile Printer

The HP OfficeJet 250 Mobile Printer is a great device that fits perfectly into my fast paced and mobile lifestyle. My first impression of the printer itself was how incredibly compact and sleek the device was.

Featured Content

Latest Jobs

Don’t have an account? Sign up here

Don't have an account? Sign up now

Forgot password?