Setting Up a Home Dev/Testing Environment?
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?"
...I would go with the one system with Virtualization. You can download a copy of Xen as an installable OS or install RH 5.x with Virtualization. You can then backup the instances and if you blow something up restore quickly. It's also easier on the pocketbook.
The simple truth is that interstellar distances will not fit into the human imagination
- Douglas Adams
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.
My blog
How about a beowulf cluster?
Depends what you're doing. For example, database servers virtualize poorly, but most other applications will run just fine that way. Everything besides your database machine could probably run as Xen paravirtualized servers on one or two machines.
That has the advantage of not producing as much heat and draws less power, which is an advantage unless you own some sort of stock in your local power utility.
"He may look like an idiot, and talk like an idiot, but don't let that fool you. He really is an idiot." - Duck Soup
Get started with what you have now. Buying a new tool won't make you a better programmer, you already have a computer of some sort so you have all that you need to get started. Just get started. After a while, if you like it, and do well, and think a better computer would help you be more productive, then consider maybe buying hardware. But don't look at it as a prerequisite, you don't need to start off that way. If you want to buy something now, it should be a book.
is competition good, or is duplication of effort bad?
No, really? What is old? If you've got a couple of P-III in de 600MHz++ range, or even a couple P-IVs, you're golden. This is not going to be a heavy load system. It can't be, it's for you alone. I've got a couple of servers, an AMD64 3000+/2Gig which I got from a dumpster (originally 256Meg, but I had some RAM lying around), my old desktop, a P-III 800MHz/768Meg RAM serves as my parents server and I built a Duron 800Mhz/512Meg RAM for my sisters business running Debian/postgresql/SQLLedger.
Depending on what you call old, you have tons of options. However, if you want to talk power efficiency. In that case, buy a good (but not monster, those eat power) machine and virtualize. You'll realise soon enough how much power your virtualised "server" requires. It might be as little as 256Meg RAM running Debian-stable for your "test" servers.
Of course, I don't know what you want to do...
Ahhh...the great dumpster continuum. Many a free computer will be found there. -- sowth (748135)
One machine, at least 2 monitors, and as much ram as you can afford.
With quad and octo core machines readily available, it's a no brainer. But go for the 64 bit version of your favorite OS and gobs of ram. A few hard drives in raid 5 or 10 always help. A great keyboard, mouse, and 3 monitors will complete the developers god box.
Really, CPUs are ridiculously fast, and it's all about the IO devices and memory today.
Blessed are the pessimists, for they have made backups.
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;
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;-)
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.