Setting Up a Home Dev/Testing Environment? 136
An anonymous reader writes "I'm a Project Manager (hold the remarks) who recently decided that I want/need to get my dev skills more up-to-date, as more projects are looking for their PM's to be hands-on with the development. Looking around my house, I have quite the collection of older (read: real old — it's been a while) PCs — it's pretty much a PC graveyard. Nothing that would really help me set up a nice dev infrastructure for developing web/database apps. So, my question is as follows: Should I buy a number of cheaper PC's, or should I buy one monster machine and leverage (pick your favorite) virtual machine technology?"
Virtual Machines (Score:4, Interesting)
Virtual Machines are GREAT for Dev/Testing. You can setup machines with several different configurations, operating systems, etc., for testing and development. Plus, for N-tier web/database apps, you often want to be able to test a variety of different infrastructure choices for scalability and performance testing.
Nothing really beats the way you can change things around on-the-fly with virtual machines. It really gives you the ultimate in flexibility.
Use Puppet to provision the VMs (Score:3, Interesting)
If you do go the VM route, consider using puppet [reductivelabs.com] to define your machine configurations. That'll make it much easier to build out more than one of each machine.
Along the same lines, if you don't want to run a bunch of machines or VMs yourself you could spin up new EC2 instances as needed, point them to your Puppet server, and have them built out - consistently and correctly - in short order. Good times.
Re:Simple... Get an Intel based Apple... (Score:3, Interesting)
I have an Intel Mac with fusion. With 4 GB of ram, which is pretty cheap these days, I can run OSX, Vista, Linux, and Solaris at the same time. Put each box on a different Spaces window and you can flip around them easily.
Now fusion is not a power user friendly setup, but it is certainly usable.
Re:Personally... (Score:3, Interesting)
ESXi is also free. That's what I'm using for Linux, FreeBSD and OpenSolaris VM's at the moment.
Re:Another thought. (Score:3, Interesting)
Even the closed source version (added USB support?) is available for free to anyone who is willing to install it themselves. From the licensing FAQ [virtualbox.org];
Personal use is when you install the product on one or more PCs yourself and you make use of it (or even your friend, sister and grandmother). It doesn't matter whether you just use it for fun or run your multi-million euro business with it. Also, if you install it on your work PC at some large company, this is still personal use.
I like those terms;-)
Re:Virtual Machines (Score:4, Interesting)
Not what I've done (Score:4, Interesting)
Simple... Get an Intel based Apple...
Yeah, if you want OSX you'll need one.. but which one?
If OSX is going to be your primary OS, and you want to mostly work in OSX and virtualize everything else on top of it... by all means get a powerful mac, ideally a pricey tower so you can get some extra hard drives inside it etc, which makes multi-booting a lot less of a hassle for when you don't want to access linux/windows in VM.
You can setup multiple boot or VM environments for Windows, Linux, and of course Mac OS X.
Except you can't VM OSX desktop edition, and buying an ADDITIONAL copy of OSX Server for each VM is expensive, and doesn't really help you since, as an OSX developer you want to test your software on OSX client, and probably both 10.4, and 10.5, possibly even 10.3 -- DESKTOP editions, since that's what most users use.
So, my approach has been to buy a powerful PC, and do all the linux/solaris/bsd/windows stuff on that, and then to have an Apple laptop. You can get a very serviceable PC tower for the fraction of the price of a Mac tower, and if OSX isn't going to be your 'primary' OS its much more flexible way to go.
The money you save by buying a PC tower instead of a Mac one can then be thrown at at a Mac Mini and a cheap KVM... or in my case, I have an Apple laptop.
Re:Virtual Machines (Score:3, Interesting)
Noob question: can you simulate high network latency and other network performance problems between VMs?
Re:Not what I've done (Score:2, Interesting)
This is mostly for device driver and web development, in addition to general OS curiosity, and makes for a great development environment.
As far as IDEs go, XCode is (just) alright, Eclipse is excellent, DevC++ is a blessing, and when it comes down to it even good old vim is great (I've heard about Emacs, but it really needs a text editor
But thats just my humble setup.
Re:Personally... (Score:1, Interesting)
I use Xen but frankly to run Windows it's a major pain in the ar*e. My home SVN server is a Xen para-virtualized domU, running on an old P4. I also have Xen running on recent hardware, supporting hardware virtualization. Sadly the "free" Xen is wwaayy ssslllooowwweeerrr than, say, the free VMWare vmplayer to run Windows.
What do yo mean by "the one system with Virtualization" ? MacOS X running parallels blows VMWAre's vmplayer speedwise that itself blows Xen's Windows virtualization speed...
Regarding old hardware... I'd throw these old energy-inneficient and slow garbage and buy cheap Core 2 Duo's (say Mac Minis).