views:

235

answers:

7

I'm getting pretty tired of my development box dying and then I end up having to reinstall a laundry list of tools that I use in development.

This time I think I'm going to set the development environment up on a Virtual Box VM and save it to an external HDD so that way I can bring the development environment back up quickly after I fix the real computer.

It seems to be like a good way to make a "hardware agnostic backup" and be able to get back up to speed quickly after a disaster.

Has anybody tried this? How well did it work? Did it save you time?

+1  A: 

I've done this with good success, we had this in our QA environment even and we'd also make use of Undo disks, so that if we want to test for example Microsoft patches we could roll the box back to it's previous state.

The only case we had issues was on SQL Server's particullary if you do a lot of disk activity. We had two VM's replicating gigs of data btw each other hosted on the same physical box. The disks just couldn't keep up; however, for all the other tiers it worked like a breeze.

JoshBerke
+1  A: 

I used to virtualize all my development eviroments using VirtualBox.

Basically, i have a Debian vbox image file stamped in a DVD. When i have a new project i copy it to one of my external hdds and customize it to my project.

Once my project was delivery, then i copy the image from my external hdd to a blank DVD and file it.

Gravstar
Nice! That's a really good idea. It's almost like making a template for an entire computer.
leeand00
Wait, why did you stop?
leeand00
+1  A: 

One cool idea I just saw a presentation on is using VirtualBox, and have your host using OpenSolaris with ZFS. That makes it easy to take a snapshot of your image(s), and rollback to the snapshot when things go wrong, or when you want to restore to a known state for QA purposes.

Paul Tomblin
A: 

That's not the way to go. When you are developing you want to have many tools, some which require a lot of computing power.Keep in mind that (IIRC, I couldn't find it on VBox website ) only emulates a PIV. At the moment only one VM simulates a dual core CPU, and that's very new. This is important because there are race conditions that can only be seen on multiple CPU machines, so you want to test your code under multiple CPU/cores.

I think a simpler and better thing to do is make a disk image of your system and configuration partitions, restore it once a month to keep a clean system, and restore it when ever your system gets mussed.

Now a quick word about Windows, since the other systems where I have done this are no problem. The partitions that you image, should not be changed in between. Not a problem for other OS's, but some briliant person decided to put Profiles on Windows smack dab in the system files. I simply make it a point to not put anything in my Profile (or on my Desktop which is in my Profile ) that I'm not willing to lose.

BubbaT
A: 

I'm reading the question much differently than the rest of you guys. I read it as the OP asking about keeping an image of a fresh install as a VM, then, when a server needs to be redeployed, you can restore from a backup of the VM.

In this case, the VM is nothing more than a different way of maintaining an image of an OS install, and if it works, it's not a half bad idea, IMO.

Chris
+1  A: 

I keep all development on virtual machines. In a multi-developer shop this allows for rapid deployment of a new development environment if someone fries their VM (via service pack or whatever) and allows a new developer to join the project almost immediately.

K

defaulthtm
A: 

In the companies I work with, I encourage the use of network installable operating systems. With the right up-front work you can configure a boot server on your office network which will install your base operating system, all the drivers you need for your hardware, and all the software you'll use. Not only will this bail you out in a disaster scenario where you lose a machine, but it makes deploying hardware for new employees trivial.

This is easier with Linux than it is with Windows or Mac, but the latter two can work in this manner too.

I use the same network install methods for deploying servers in a live environment too.

The Virtualisation approach isn't a bad answer to the same problem, but to me it doesn't seem quite as clean.

Jon Topper
what doesn't feel "clean" to you about it?
warren