Search code examples
development-environmentvirtualization

In which practical ways can virtualization enhance your development environment?


Practical uses of virtualization in software development are about as diverse as the techniques to achieve it.

Whether running your favorite editor in a virtual machine, or using a system of containers to host various services, which use cases have proven worth the effort and boosted your productivity, and which ones were a waste of time ?

I'll edit my question to provide a summary of the answers given here. Also it'd be interesting to read about about the virtualization paradigms employed too, as they have gotten quite numerous over the years.

Edit : I'd be particularly interested in hearing about how people virtualize "services" required during development, over the more obvious system virtualization scenarios mentioned so far, hence the title edit.


Summary of answers :

  • Development Environment

    • Allows encapsulation of a particular technology stack, particularly useful for build systems
  • Testing

    • Easy switching of OS-specific contexts
    • Easy mocking of networked workstations in a n-tier application context

Solution

  • Virtualization is used mainly for various server uses where I work:

    1. Web servers - If we create a new non-production environment, the servers for it tend to be virtual ones so there is a virtual dev server, virtual test server, etc.

    2. Version control and QA applications - Quality Center and SVN are run on virtual servers. The SVN box also runs CC.Net for our CI here.

    There may be other uses but those seem to be the big ones at the moment.