views:

120

answers:

4

Where can virtualization techniques be applied by an application developer? How can virtualization be applied on a day-to-day basis?

I would like to understand from veteran developers making use of it. I am interested in the following things:

  • How it helps in development.
  • How it could be used for testing purposes.
  • What are the recommended practices.
+4  A: 

The main benefit, in my view, is that in a single machine, you can test an application in:

  • Different OSs, in case your app is multiplatform
  • Different configurations, like testing a client in one machine and a server in the other, or trying different parameters
  • Diffferent performance characteristics, like with minimal CPU and RAM, and with multicore and high amounts of RAM

Additionally, you can provide VM images to distribute applications preconfigured, be it for testing or for running applications in virtualized environments, where it makes sense (for apps which do not demand much power)

Vinko Vrsalovic
+4  A: 

Can't say I'm a veteran developer, but I've used virtualization extensively when environments need to be controlled. That goes for:

  • Development: not only is it really useful to have VMs about for different deployment environments (e.g. browser versions, Windows XP / Vista / 7) but especially for maintenance it's handy to have a VM with the right development tools configured for a particular job.

  • Testing: this is where VMs really shine: it's great to have different deployment environments that can be set back to a known good configuration and multiple server instances running in parallel to test load balancing.

I've also found it useful to have a standard test image available that I can run locally to verify that a fix works. If it doesn't then I can roll back to the previous snapshot with no problems.

Jeremy McGee
+1  A: 

I've been using Virtual PC running Windows XP to test products I'm developing. I have clients who still need XP support while my primary dev environment is Vista (haven't had time to jump to Win7 yet), so having a virtual setup for XP is a big time saver.

Before each client drop, I build and test on my Vista dev machine then fire up VPC with XP, drag the binaries to the XP guest OS (enabled by installing Virtual PC additions on the guest OS) and run my tests there. I use the Undo disk feature of Virtual PC so I can always start with a clean XP image. This process would have been really cumbersome without virtualization.

I can now dump my old PCs at the local PC Recycle with no regrets :)

DSO
A: 

Some sort of test environment: if you are debugging malware (either writing it or developing a pill against it) it is not clever to use the real OS. The only possible disadvantage is that the viruses can detect that they are being run in the virtualization. :( One of the possibilities to do it is because the VM engines can emulate a finite set of hardware.

StarWind Software