• Welcome to Valhalla Legends Archive.
 

How are you using Virtual Machines for programming?

Started by Grok, April 06, 2009, 06:00 AM

Previous topic - Next topic

Grok

If there are any programmers left who are not using VMWare Server, or a competing virtual machine technology, this post is for you.

I started using VMWare Workstation some years ago, and then VMWare Server when it was offered for free.  Virtual Machines are among the greatest environment management tools around.

Currently I maintain several VMs, each dedicated to a development platform.
*  Visual Studio 2008 for .NET development
*  Eclipse for Java development
*  IBM DB2 Content Management

Additionally,
*  MS SQL Server
*  IIS for deployment and testing (isolated in own VM because of IIS security history)

In years past, when everything was installed on a single physical Windows install, any major problem quickly risked becoming catastrophic.  I would often have to reinstall Windows and dozens of applications to reproduce my previous programming environment.

With VMs, my host (Windows Server 2003) is barebones, containing just VMWare Server 2.0, and only a few necessities outside of VMs, like World of Warcraft, and Ventrilo.  To do any actual work, I open a Remote Desktop Connection to a VM.  If I'm going to do something risky, I take a snapshot first, which can be reverted to if the risky action proves harmful.  Snapshots are global UNDO operations for the VM.

If I have to physically reinstall the host OS, the VMs are not affected and can be very simply added to VMWare Server after it gets installed into the new host.  (There is a slight bit of network configuring to do, takes minutes though).

MyndFyre

I don't typically use VMs for my development environments; my PCs are development machines first and toys second.   :)

That said, I maintain a few VMs for a couple reasons:
* IE6 testing (I run IE7 on my desktop and IE8 on my notebook).
* When presenting at a user group I find it useful to have a clean VM so people don't need to see what all I have installed, or my documents or whatever.
* At the office we've been using a VM to run a snapshot of a client site lately, inside of a Hyper-V VM.
* Beta testing software (like Visual Studio).

If I was doing driver development I would definitely put it into a VM.

I'm considering setting up SVN on a virtualized Linux machine, but I'm going to try VisualSVN server on my VPS first.  Arguably my VPS is a virtual machine but I use it as if it were a real server.

Other than that I really don't virtualize much.  I don't run Eclipse or DB2 (if I need to do Java development I typically use VStudio 2005 and compile using the command-line tools), and I have a development edition of SQL Server installed on both my notebook and desktop.  As for IIS, my computers are always behind firewalls, so I don't see much point to virtualizing it for security, but your mileage may vary.
QuoteEvery generation of humans believed it had all the answers it needed, except for a few mysteries they assumed would be solved at any moment. And they all believed their ancestors were simplistic and deluded. What are the odds that you are the first generation of humans who will understand reality?

After 3 years, it's on the horizon.  The new JinxBot, and BN#, the managed Battle.net Client library.

Quote from: chyea on January 16, 2009, 05:05 PM
You've just located global warming.

Yegg

My primary system is Mac OS X Leopard. Whenever I need to do something specific to Windows, feel like brushing up on my C# skills, or whatever the case, I load up Vista in VMWare Fusion.

RiffRiot

At my work we use VMWare for our Dev and QA environments and often we need to clone one to reproduce an issue or for expansion.

At home I don't virtualize much other than testing new OS's (Windows 7 Beta) and occasionally I will need to have one for setting up simulated network environments that I use for testing.  However, I plan to use it much more often at home and hope to separate my development system from entertainment activities (PS3 BluRays FTW).

I haven't tried Hyper-V yet but we are going to be piloting it at work so, I won't bother getting it at home for now.

bulletproof tiger

I don't use virtual machines, really. I thought about it, but I really only use Photoshop, Flash and various Visual Studio components. I don't see much reason to install any of those on a virtual machine.

Zakath

VMs for me are for product/OS version combinations. If I need version 5 on Windows XP for something, there's a VM for that.
Quote from: iago on February 02, 2005, 03:07 PM
Yes, you can't have everybody...contributing to the main source repository.  That would be stupid and create chaos.

Opensource projects...would be dumb.

Yegg

Quote from: Zakath on April 09, 2009, 11:14 PM
VMs for me are for product/OS version combinations. If I need version 5 on Windows XP for something, there's a VM for that.

When you said "there's a VM for that", it reminded me of the Apple iPhone commercials where they say "there's an app for that".

Grok

On a recent project I had to troubleshoot a high-end product that had particularly buggy installation issues.  Doing all the work in Hyper-V really cut short the amount of work I had to do.  I made copies of the VM when it was stable, then took snapshots before each risky troubleshooting step.  It was a simple matter to revert back a couple snapshots and try things a different way.  Or if I wanted to try a new approach without trashing my current work, I started up a copy of the stable version and worked in another window.

One of the coolest things is virtual drives.  I had a lot of installs to do, about 40gb of CDs that I had as .iso in a virtual hdd.  Attached this as D: on a VM, worked with it there, then detached it for later use.  Huge time saver.

bulletproof tiger

i'd probably work with a setup like that if i had a large external hard drive.