Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Databases Networking Programming Software Upgrades Hardware IT

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?"
This discussion has been archived. No new comments can be posted.

Setting Up a Home Dev/Testing Environment?

Comments Filter:
  • Personally... (Score:5, Insightful)

    by AltGrendel ( 175092 ) <ag-slashdot.exit0@us> on Friday November 21, 2008 @04:35PM (#25850303) Homepage
    ...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.
  • by rufus t firefly ( 35399 ) on Friday November 21, 2008 @04:37PM (#25850347) Homepage

    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.

  • by eison ( 56778 ) <pkteison&hotmail,com> on Friday November 21, 2008 @04:38PM (#25850377) Homepage

    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.

  • Language? (Score:2, Insightful)

    by Someone Awful ( 1109763 ) on Friday November 21, 2008 @04:39PM (#25850389)
    What exactly are you looking to do? If your doing develpment with Java, Xen would be a natural choice, and the hardware you need to run a xen Dom0 and some linux guests is trivial. You can go virtual with older hardware. I have a dual Intel 700 with 2 gigs of SD ram running in the office that I use as my own web server and that I experiment with. Currently there are 3 guests running and they all run smooth as silk. CentOS 5 machines. Some of our devs have the same setup and use a guest as a build server and another one for testing and QA. If you want to run Paravirtualized hosts that is. If you are looking for fully virtualized hosts, you might have to splurge for some newer hardware (processor specifically). I might also look into KVM and Fedora since Xen is getting boxed with the release of RHEL6 I believe.
  • by jawtheshark ( 198669 ) * <{moc.krahsehtwaj} {ta} {todhsals}> on Friday November 21, 2008 @04:40PM (#25850409) Homepage Journal

    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...

  • by TheLink ( 130905 ) on Friday November 21, 2008 @04:44PM (#25850487) Journal
    VM stuff is nice, but sometimes you need to have the "real thing" - sometimes stuff performs significantly differently when virtualized. Some VM stuff don't have good database performance.

    With two machines if you're doing web/database, one can be the client and the other can be the server.

    No point getting "monster" stuff if you mean "high end", since it's diminishing returns once you get above a certain point.

    Machines with 2GB or even 4GB of RAM aren't that expensive nowadays.

    What I suggest you get are extra drives, and preferably easily removable/swappable drives.

    Then you could have huge drives (good GB per $$$) with virtual machines in them, and you could swap them out for cheaper smaller drives with "real machines" in them and test different O/Ses and configurations without having to waste time reinstalling and updating.

    A 3rd machine would be nice - so you can do work or post on slashdot etc without affecting your "real machine" benchmark tests :).
  • One machine (Score:4, Insightful)

    by spinkham ( 56603 ) on Friday November 21, 2008 @04:55PM (#25850647)
    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.
  • by BearGrylls ( 1388063 ) on Friday November 21, 2008 @04:58PM (#25850719)
    If you are developing a desktop based application having multiple computers with a variety of different hardware and software configurations can be a huge help. You can virtualize servers on a beefy machine but mixing different hardware and software is critical for ensuring you're product works in the real world.
  • by camperdave ( 969942 ) on Friday November 21, 2008 @05:10PM (#25850937) Journal
    I say keep the legacy gear. If your websites work properly on machines with 800*600 displays and 56k modems, then they'll work fine for everybody.
  • by Bastardchyld ( 889185 ) on Friday November 21, 2008 @05:22PM (#25851159) Homepage Journal
    This is a fairly old argument, and in a dev/test environment it is not accurate. Databases and other disk intensive operations may experience performance issues when virtualized, however there are ways around this, pass-thru disks, iscsi storage (which can be done with software on the host box), etc. All of these would allow the VM direct access to the disk instead of writing everything through the VHD or VMDK file and taking the performance hit.

    Virtualization is not some magic fix that makes everything work great, however like any solution it you take your time and properly design it, you will end up with a system that meets or exceeds your needs.
  • by MechaBlue ( 1068636 ) on Friday November 21, 2008 @05:30PM (#25851287)
    VMs aren't really an option for me because I'm testing multi-media software and the audio skips with some applications. I'm using a Mac Mini that is multi-booted with

    Windows XP, Windows Vista, Mac OS X 10.4, and Mac OS X 10.5. Linux is a little harder to get on there (EFI and all) and I'm not sure about BSD, Solaris, etc. Overall, it works well enough for me.

    Triple booting a Mac isn't too bad; you can use Hybrid MBR/GUID. Quad booting and up is more difficult because you have to use MBR and get around the limitations of the Apple installer.

  • by Anonymous Coward on Friday November 21, 2008 @05:56PM (#25851675)

    This person is a PM - IE tools and hardware make the project go fast.

    Are you interested in doing development, if not please stay out.

    Most PMs should be FAR FAR away from the codebase.

  • by a9db0 ( 31053 ) on Friday November 21, 2008 @06:52PM (#25852469)

    As a guy who makes his living testing software, I can tell you that the biggest boon to testing has been virtualization. The ability to have multiple environments running is great. The ability to painlessly restore them to a known good configuration saves hours daily. Snapshots are your friend.

    Get a recent machine with plenty of disk. It doesn't need to be a monster - a mid range dual core or quad core is plenty. Several disks are better than a one, as it helps I/O bandwidth. Get enough space to hold your host os, and several VMs. More memory is better, and with 4GB kits running less than $50 get as much as you can. Use VMware/Xen/KVM to build the test environments you need, then snapshot/backup/copy them before installing any software you'll be testing.

    Alternatively, if you're testing Linux apps, it might make more sense to get a vps - Linode.com has good ones. Less horsepower, but easy enough to reinstall. And no capital investment.

  • by Anonymous Coward on Friday November 21, 2008 @11:23PM (#25854959)

    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...

    Totally agree with this post. I own my own business and part of my business is web/email/database hosting and I do it on nothing but used equipment. Our email servers are old Dell 1650s (PIII / 800MHz / 512MB) and they do just fine. My web servers are either Dell 1650s or 2600s running anything from a LAMP stack to Win2K3, MS-SQL, PostgreSQL... So you may be able to make use of your "old" gear. If not, check out stallard technologies. They specialize in refurb Dell servers.

  • by Spiked_Three ( 626260 ) on Friday November 21, 2008 @11:31PM (#25855017)
    I don't care what anyone else says, in my experience virtualization sucks for most of the development process.

    Years ago (20+?) IBM did studies that statistically proved that sub second response time was critical to productivity. As more and more stuff moves to the web we seem to have forgotten that fact, but it is in my experience very very true. Now I don't care how much money you spend, a virtualized development environment will never be as responsive as a native environment on the same hardware. Fast response time = productivity. You can keep a fast pace on your train of thought. Hit enter and wait 5 seconds for a response and your mind wanders. You lose your concentration.

    Virtualization makes sense for replacing legacy hardware servers and for a portion of the development process, Quality Assurance/Testing. But keep the design and code writing native. Take your fastest machine and put your DEV IDE on it. Take your next fastest machine and put your database/web server on it. Or for a better model put them on separate machines, but keep your fastest machine for the IDE. And true, some can do great dev work without an IDE (like with vi/emacs & command line) but that is something for the very experienced, you know the type that has every API call memorized. The rest of us need robustness and the fast context sensitive help of a modern IDE.
  • by morgan_greywolf ( 835522 ) on Friday November 21, 2008 @11:44PM (#25855103) Homepage Journal

    Yes! With VirtualBox on Linux (and probably others), since you can route all traffic in a VM through a standard Linux NIC on the host, you can use iptables to do just that.

  • by cerberusss ( 660701 ) on Saturday November 22, 2008 @02:45AM (#25855889) Journal

    If you're developing web/database apps, you don't need virtualization. Just work with different user accounts, "dev" and "test" for instance, then have virtual hosts and point these to directories owned by those accounts.

    Use SVN to check in code/database dump from the dev account, then log in as test and do a check-out and database-upload. Commence testing.

    As an aside, you're a project manager so you probably have some feeling for the commercial side as well. Why not up the stakes a bit and get a small paid project as a freelancer? Get some designer to get you a PSD, get it sliced/based by a HTML guy and then proceed to code in the dynamic parts. Don't overdo it, a project in the $1000 to $2000 range is excellent for exercise.

  • by Anonymous Coward on Saturday November 22, 2008 @08:14AM (#25856895)

    All of these would allow the VM direct access to the disk instead of writing everything through the VHD or VMDK file and taking the performance hit

    Er, or just use LVM Xen disks, and it goes through the same path as the dom0?

"I've seen it. It's rubbish." -- Marvin the Paranoid Android

Working...