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:
  • by Fallen Kell ( 165468 ) on Friday November 21, 2008 @04:35PM (#25850301)
    You can setup multiple boot or VM environments for Windows, Linux, and of course Mac OS X. You can easily use that to learn just about anything you want to learn (aside from SPARC or Power assembly language)...
    • Re: (Score:3, Interesting)

      by jfinke ( 68409 )
      I agree.

      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: (Score:2, Insightful)

      by MechaBlue ( 1068636 )
      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

    • Not what I've done (Score:4, Interesting)

      by vux984 ( 928602 ) on Friday November 21, 2008 @05:36PM (#25851375)

      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: (Score:2, Interesting)

        You forgot the OS x86 project, so you CAN run Mac OS X Leopard in a virtual machine. I personally triple boot Ubuntu 8.10, Solaris 10, and Mac OS X (iAtkos hack) on my gateway, with every version of windows, solaris, and others in virtual machines (created with fusion, played with player), and it is a really nice setup if you keep the virtual machines on a spare partition so they're writable by all hardware-bootable operating systems.

        This is mostly for device driver and web development, in addition to ge
        • by vux984 ( 928602 )

          You forgot the OS x86 project, so you CAN run Mac OS X Leopard in a virtual machine.

          I didn't forget it. I ignored it. Its too much hassle. Tricks and pitfalls abound, patching is a gamble, and things like sound and wifi and bluetooth may or may not work... its a neat hobbiest's toy... but I'd hardly call it a 'professional solution'.

          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

      • Comment removed based on user account deletion
        • by vux984 ( 928602 )

          Why not just do your development on Mac and be done with it?

          General principle for starters, I refuse to make OSX my primary OS simply because its the one with, by far, the the most restrictive license.

          A more pragmatic reason is that I prefer other development environments more.

          For a web developer, choice of platform is definitely less of an issue than it might be for many other developers, but even there, given the importance of it working with IE on Windows, a solid case can made for developing on windows.

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

    by AltGrendel ( 175092 ) <(su.0tixe) (ta) (todhsals-ga)> 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.
    • Re: (Score:2, Informative)

      by L0stm4n ( 322418 )

      Vmware server is a free download as well. Or you could purchase workstation for a reasonable cost. Stock up on RAM though!

      I'm testing ESX by installing it inside workstation then putting virtual machines inside ESX.

      • Re: (Score:3, Interesting)

        by lgarner ( 694957 )

        ESXi is also free. That's what I'm using for Linux, FreeBSD and OpenSolaris VM's at the moment.

    • Another thought. (Score:3, Informative)

      by AltGrendel ( 175092 )
      Since it's a dev environment, check out Virtual box [virtualbox.org].
      • Re: (Score:3, Interesting)

        by juiceboxfan ( 990017 )
        I second that! Been using it on my Linux laptop for over a year to have an XP machine available for the few Windows only apps that I can't avoid.

        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;-)

      • The simple truth is that interstellar distances will not fit into the human imagination

        - Douglas Adams

        I once read something that I though did a pretty neat job of allowing me to wrap my head around interstellar distances:

        Image that the sun is the size of a baseball sitting on top of home plate at Skydome (a baseball stadium in Toronto, Canada ... I leave it to the reader to make the mental leap to their own hometown example). The Earth would then be the ball from a ballpoint pen, sitting on the pitcher's mound. And Neptune and Pluto would be orbiting somewhere out in the vicinity of the circular rails out

    • Re: (Score:1, Interesting)

      by Anonymous Coward

      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

  • Virtual Machines (Score:4, Interesting)

    by morgan_greywolf ( 835522 ) on Friday November 21, 2008 @04:35PM (#25850317) Homepage Journal

    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.

    • Re:Virtual Machines (Score:4, Interesting)

      by Bill, Shooter of Bul ( 629286 ) on Friday November 21, 2008 @05:17PM (#25851055) Journal
      They will probably work for what he's trying to do. I always worry about running virtual machines in tests when the timing of the action is critical. If you have more virtual machines than cores, there are a lot of scenarios that I don't feel comfortable simulating in that environment. But maybe the graveyard pc's would help alleviate the situation for those scenarios as long as they can boot Linux and live on the network.
    • Re: (Score:3, Interesting)

      Noob question: can you simulate high network latency and other network performance problems between VMs?

      • Re: (Score:2, Insightful)

        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.

    • Re: (Score:3, Informative)

      by Gazzonyx ( 982402 )
      I completely agree. The only thing I would (should?) add is that trying many configurations will tear through storage like you wouldn't believe. Sure, you could expand the disks as needed, but that kills performance. I ended up putting together a SAN (single box, but with an actual backend network tier) for something like a grand a year and a half ago.

      You just need a box with at least 5 bays, an external 5 drive hot-swap canister, a 'gaming' motherboard with a decent south bridge and a bunch of SATA p
      • Well, the OP said he'd buy a massive box to do virtual machines, so yeah. And you need lots of RAM, too.

        You can also get off-the-shelf iSCSI appliances.

  • Solution (Score:5, Funny)

    by ep32g79 ( 538056 ) on Friday November 21, 2008 @04:35PM (#25850319)
    How about a beowulf cluster?
  • Use two different virtual machines. One for dev, one for test. Which VM to use, is an exercise for the reader. /thread

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

    • Re: (Score:3, Insightful)

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

        Whoa, tiger! Remember this guy is a n00b program manager, you think he'll be able to configure and maintain all that?

        Personally, I think he should make sure he gets a mauve-colored database, because it has the most RAM...

      • Re: (Score:1, Insightful)

        by Anonymous Coward

        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?

    • >>For example, database servers virtualize poorly

      This may or may not be true. However, for home development purposes, one isn't necessarily concerned about performance. You just want to build a DB and schema and just connect to it.

      I've got the developer version of Oracle 9i (yes I know, EOL) running in VMware and I've no trouble with moderate development sized result sets.

    • Databases (Say Oracle, or Exchange) may not virtualize well, but hardware today overcomes that. VMware has some studies on Exchange that say: Expect a 40% hit. Similar documentation exists for Oracle, and other SQL systems.

      I used to run a 6 year old Oracle system for a company that used it as a back-end for accounting. (Deltek Costpoint, 1500 employees) This system is a prime target for virtualization, if you give it fast enough disk IO.

      As a practical matter, not only could it run in virtualization (and b

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

    • I agree, I don't think the hardware is as important as configuration, if you can configure the dev/test environment to match your production environment then you should be able to do development and testing without any surprises when you move your work into your production environment. The exception would be with load testing your older machines may not handle the same load as your production environment.
    • Re: (Score:1, Insightful)

      by Anonymous Coward

      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.

    • I have a $20 Dell Optiplex I got from Pacific Geek. It's old, and has a P3 and 256M of RAM. It's a LAMP box, running on Xubuntu. Works just great!

      You don't need something beefy for a dev server. A LAMP box on a well chosen Linux distro doesn't need much.

      The nice thing about an old box for a dev server is that you work hard to make sure the application runs fast. You don't have resources to make a crappy app. When it gets to prod, that's a great thing.

  • Language? (Score:2, Insightful)

    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 serve
  • by jawtheshark ( 198669 ) * <slashdot@nosPAm.jawtheshark.com> 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 bjb ( 3050 ) *
      Feh. I'm still using the heck out of an old Pentium Pro 200MHz running Linux. Yeah, it isn't doing HEAVY LIFTING, but as a file server, low utilization mysql and basic service runner, it works fine.
      • Oh, my first server was a P120.... It's just that I got better hardware over time (from the dumpster, decommissioned desktops) and I replaced the older hardware with it. That said, the P120, couldn't do IMAP.... The P-III 800MHz can do that without a problem.
      • by muridae ( 966931 )

        I used an older Pentium Pro, that I picked up from a yard sale, as a local html and sql server for quite a while. I put up with the lack of speed since it was passively cooled and very quiet. Power supply and the spinning drives were the only noises I had to put up with

        Recently, I got rid of it and upgraded. A nice Pentium 2-333. Only real reason for the upgrade was the smaller case (sony viao) and quieter power block. The fact that the newer one has an AGP video card meant X.org installed rather easily, an

        • by Nursie ( 632944 )

          I recommend the linksys NSLU2 and debian. No noise at all when you use a USB flash drive as your main disk.

          Runs web, email, ssh tunnel, the occasional programming exercise. I have another that has a big hard drive and runs torentflux-b4rt. Given that that is AJAX, MySQL and Lighttpd, with a torrent client too, that sort of low powered box should be fine for a dev environment.

          Or a ten year old pc works too.

        • Re: (Score:1, Funny)

          by Anonymous Coward

          Jeez, you must not do much of anything at all. I have a 2 GHz Celeron at work. The latency on that thing is sometimes horrible. Especially when Firefox forces X.org to eat up CPU time when viewing complex pages. Especially when the product you sell is a web site with complex custom reports.

          Vim and XMonad make a very nice pair. Still, I hate having to wait for Vim to exit Insert mode on Escs. Worse yet, the lag is intermittent. Very frustrating.

    • Re: (Score:1, Insightful)

      by Anonymous Coward

      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 SirLurksAlot ( 1169039 ) on Friday November 21, 2008 @04:43PM (#25850467)

    that if you're a PM (and not something closer to a team lead) who is being asked to "get more hands-on" with the development you have bigger problems to worry about than setting up a proper dev environment. Your situation sounds very similar to the company I just got laid off from who let more than 60% of their IS consultants go (in an environment where 90% of the devs are consultants). They're now so top-heavy that it will be a wonder if there is any kind of release in the next 6 months.

    Also you didn't exactly provide a lot of detail regarding what kind of development you need to do. Personally I have a single LAMP server set up for my own projects with Subversion for version control and a couple of Bash scripts for nightly backups to an offsite location.

  • by tcopeland ( 32225 ) <tom AT thomasleecopeland DOT com> on Friday November 21, 2008 @04:43PM (#25850471) Homepage

    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.

  • 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 :).
  • Depends largely on what kind of project you're looking at to use as a refresher.

    If it's some small project, then probably one of the computers you have laying around is sufficient (as long as it can run whichever dev toolset you're planning on using.

    As far as testing environments - if you're just practicing, you probably only need a simple environment - like the same desktop used for dev. Or another machine with a clean environment (whatever your primary testing environment) All the way up to a beefy virt

  • 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.
  • This is very much an engineering problem. What's better for you depends very much on what kind of development you're doing and what your "measures of goodness" are.

    Multiple machines generally work well when you're doing large builds that take tons of CPU for a long time (say, repeated builds of a Linux kernel or similar). The big reason for this is that the machine you're on isn't being eaten up by the background build.

    VMs are better when you just need to test in multiple environments (and thing

  • 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.
  • I would advocate getting a VPS (i like slicehost) for $20 a month, where you can actually host a site, and play a bunch. Then just build and tune your apps on your laptop and deploy to the VPS. The downside is that the vps won't have much ram to kick around, but i am skeptical of server apps that need more than 256mb per instance to run as a dev env.
  • I built a 16 GB RAM + quad core Yorkfield box about two months ago. From Newegg, parts came to about $1,800. This gets me a 4 guest VM host reasonably cheap - AND - I'm not burning a lot of power (heat) doing it. (I did not load up on hard drives - one 750 GB SATA is going to have to be enough).
  • Don't use your old PCs because they are worthless. Just donate, recycle, or sell them because it will be a major headache to install the OS, software, and keep them updated. Use VMWare player or Virtual PC (I use both of them) and you can download pre-built images. And one more benefit... using virtual machines will keep your electric bill lower than a bunch of old PCs.
  • 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.
  • If you are planning this for your house, consider the environmental impact as well.

    I used to do the multiple machine thing. Between the noise, the heat (haven't turned my heater on in 3 years) and the electrical bill I decided I didn't like that approach anymore; and switched to a large machine with xVM.

    Personally though, I agree with eison. Changing your hardware isn't going to make you a better programmer. I'd start with whichever machine you currently have that will be quickest for you to get started on

  • Comment removed (Score:3, Informative)

    by account_deleted ( 4530225 ) on Friday November 21, 2008 @05:15PM (#25851027)
    Comment removed based on user account deletion
  • Use Amazon's EC2 (Score:3, Informative)

    by Karna ( 80187 ) on Friday November 21, 2008 @05:22PM (#25851153)

    Since you don't need boxes all the time and running using Amazon's EC2 seems to be the way to go:

    http://aws.amazon.com/ec2/ [amazon.com]

    Also gives you the ability to experiment at scale, while paying $0.10 / hour.

    • Definitely use EC2. There is no point in owning hardware anymore unless you have a poor Internet connection or you're running a local application like a media server. Of course, this is above and beyond a reasonable desktop/laptop which you'll need for local development, management etc... I personally use and love Macs (switched about a year ago). I wouldn't go back to Windows for $1k (and I used to be a Windows Server Admin - actually, their server stuff is good). When you're on Mac, you'll need a good
  • Perhaps it's my lack of experience specifically in the web services arena, but you didn't really give much information about the details of the sorts of things you'll be developing and testing. Are you developing proprietary server software or something like that with a lower level language? Are you using off the shelf components in a PHP/MySQL environment or something like that? Are you developing on Windows? Linux? Unix of some sort?

    Honestly, I don't think the question can be answered usefully withou

  • Don't spend money until you figure out that you can't achieve your goals without spending. You don't give many details about what sort of environment or development you want to do, but but as long as you can get the OS installed, it is probably good enough for home development.

    However, don't leave those PCs on all the time. It will kick your electric bill up . . . unless you heat your house with electricity, then it will make no difference in the winter but hurt you twice as bad in the summer. Set up you

  • I use virtualization for tons of stuff, but it really pays to have at least two machines handy in case something goes sour. Get a desktop and a laptop. Call it a day.

    I have buckets of current computers around, but I mainly stick to a desktop, a laptop, and a server for all of my development. I could live with only two if I weren't doing pro audio/video.

  • I'll take you at your word that nothing you have would help you. Depending on what you're trying to accomplish, you may never even need to have multiple machines (physical or virtual) to give yourself the refresher you want. Even if you do, there's probably no good reason to invest in a "monster" machine, unless you have special needs you didn't mention. Absent those special needs, you can probably do just fine with a mid-level dual core machine and a close eye on your RAM needs. Also absent special nee

  • besides setting up a development evironment - commandline, GUI, or otherwise - i would also include some plan for a separate code repository so that if you change your mind on the dev env. you won't have to move code all over the place. I would look into svnrepository.com which is about $5-10 a month. Or if you are looking to use your PC graveyard, maybe use them as a repository farm. This way you won't have to overthink your environment and can build up a trial dev env. and tear it down if it doesn't suit
  • Doesn't matter whether you use Xen, Vmware ESXi, VMware Server, or whatever. Virtualization is how your customers will deploy your product, a way you can reduce costs, speed product cycles, and as a PM you should learn as much about it as you can.

    So buy a well-specced out box, with 2-4 CPU cores, 4G - 16G of memory, several sata drives, and install a 64-bit linux with the virtualization solution of your choice.

    From that point, create VMs as you need. You can even turn your existing machines into VMs with

  • by Omega996 ( 106762 ) on Friday November 21, 2008 @06:13PM (#25851925)
    I'd suggest picking up a decent (it doesn't have to be a monster, unless you're trying to replicate a powerful production server at your home) machine, and run some sort of virtual hosting on it.
    I have a pretty weak machine that I use for development hosting - a crappy Intel Xeon 3050 (2MB l2 cache, 1.86GHz)and 8GB of DDR2-667 RAM. I put in 4 250GB drives, and run Xen Express 5 on top of it. I have two gigabit ethernet ports on it at the moment. I have 7 virtual machines running on it right now - 5 debian etch servers and 2 windows 2008 x86 servers. One of the 2008 servers is running Sharepoint Services, and the other is a domain controller. I messed around with Xen 4, but really decided to stick with Citrix' product with the 5.0 upgrade. I tried running VMWare Server 2.0 on the same computer (Ubuntu 8.04.1 LTS), and I have much better performance with Xen 5. Additionally, the XenCenter management tool is a lot nicer to work with - it makes connecting to iSCSI storage arrays (put a couple of large-capacity PATA drives in those old computers of yours, a $20 D-Link GigE card, and throw OpenFiler on them for a really easy, cheap SAN) stupidly easy. As I mentioned, the performance is nice - the SharePoint VM and DC both respond a lot better under Xen than it did under VMWare.
    Regardless of what platform you choose, I'd suggest just get one decent computer (it doesn't even have to be particularly fancy - any dual- or quad-core around 2GHz with 8GB of RAM will do great) and put your VMs on there. Building and tearing down machines and networks is so much easier under a virtualized environment.
  • I set something up for myself for purposes similar to yours (although I'm not a PM). I've been doing a lot of Java and C/C++ development over the last year or so.

    I use XenServer on a quad-core (2 dual-core) Xeon box with 4GB RAM and 1.5TB of disk space. I use a 3ware RAID card for the 5 disks (2 mirrored, 3 RAID 5). I run 2 Windows 2003 Servers, 2 Debian instances and a Windows XP Client (not always at the same time) on this one machine. My IDE runs on a Mac and the CLI.

    I also rent a VM from linode.com.

  • I'm a Project Manager 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.

    Is this actually true? Maybe it's because I tend to know about larger shops, but this doesn't seem to be the case as far as I can see. Having been both a development manager and a project manager, I'd say that having the PM also responsible for development tasks is a quick way to not have a very good outcome for either. However,

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

    • More memory is better, and with 4GB kits running less than $50 get as much as you can.

      I've been pricing this recently, and systems that take the $50-per-4G type (only DDR2 non-ECC unregistered) will take a maximum of 8Gb. Are there any motherboards that will take more than that of the cheap RAM?

  • Highly recommend you try out VMware 3.5i and build a proper virtualisation server. The hardware compatability list is a bit of a challenge, but I found out (purely by accident) that the Intel ICH6 SATA controller in my server was visible and worked.

    My server has 8GB of RAM (AU$250), an Intel QX6600 quad core cpu (AU$250), and an Intel Etherexpress 100 NIC (pull from old box). I can't seem to stress it out - it just runs great.

    The reason I did this was:

    I had a 42RU 19" rack full of desktop PC's I

  • Pimped-out Mac Pro
  • The problem is a bit generic, as we do not know what "development" is. For most Linux based development (Web-display, or Database, or coding), as well as most Windows based development (Same set) - with a few exceptions, you don't need a very powerful machine, and can virutalize.

    I will state, that you can purchase a DEV box to emulate Five "Serviceable servers" for less than $1,000.00:

    For this purpose, "A Servicable Server" is: 2x 2GHZ Xeon processor, 75GB of storage space, and 2GB of memory.

    CPU: $120+ (AM2

  • I would start catching up on how to do your job as a PM, you are now being asked to do the job you actually should be managing.

  • Buy yourself a decent workstation. No need to go overboard, anything relatively recent will work.

    No need for any fancy VMs, just pick an OS you're comfortable with -- preferably something Unix-y (OS X or Ubuntu) -- Windows will work, too, but it'll be more frustrating unless you're developing .NET.

    In my case, I develop mostly with Ruby -- not all Rails, but pretty much all frameworks follow the same pattern of embedding a webserver in the app. So there's no need for a separate server -- just fire up the app

  • When you say 'old' it depends what you want to run on them.
    As a developer I use a whole range of systems, and I don't throw old machines away, I use them for testing.

    • My main desktop is a Quad core AMD Phenom with 8G of memory
    • Sitting next to that are two AMD Athlon machines, each with 4G of memory

    I also have

    • Four Pentium III machines with 512M of memory
    • Two AMD K6 machines with 256M of memory
    • Four Pentium I (yes one) machines with 64M of memory

    A Pentium III machi

  • Get a large desk. Spend your money on one decent machine, like a MacBook Pro with 4GB, and one good 24" monitor. (By the way, we do "cutting edge" web development in our office, and that is our standard developer's setup: a MacBook Pro with an additional external monitor.)

    Then you can use those other machines too. Take the best two or three of them, install Ubuntu or your favorite flavor of Linux on them, get one good network hub, and network them all together.

    Then, install Synergy on all of them. Syn
    • ... for ergonomic reasons, if you use the developer's setup I recommended (MacBook Pro + another monitor), you will want to use an additional keyboard and mouse. Some of our people use the Apple USB keyboard + mouse, some use the Bluetooth. All work well. But that way you can hook up your laptop on a stand so its display is in line with the other monitors, and still have flexibility as to your keyboard and mouse positions.
  • Virtualization is the way to go for dev/test. You can build out machines quickly, tear them down, revert to a previous configuration, etc.. Though you can do the same with physical hardware, it's not as resource efficient.

    My test/dev environment consists of two AMD 64-bit machines with 6G-8G apiece and about 500G of hard drive space. The base OS is CentOS 5.2 running Xen machines. It allows me to build separate web/app/db systems to mirror what a production setup would look like. Also, for Oracle developme

  • 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 mcrbids ( 148650 )

      Your question is sorta like: "I hear a noise coming from my engine - what should I do to fix it?". There are many variables to consider. If you are unsure, start with the cheapest option and expand from there as needed!

      I use VMs AND hardware, as the need dictates. And actually, I think parent poster has a point.

      Virtualization has its benefits, but when the chips are down, performance tanks. Badly. Virtualization is awesome for testing installers, for testing functionality on multiple operating systems and/o

    • Was it 20+ years ago that you tried virtualization? If you can get VMWare ESXi going (have the hardware, that is) it is *just* like local, especially if you setup virtual networks. I guarantee you'll see faster speeds between two vnics than you could ever get out of a gb switch. And having to wait 5 seconds? Maybe if you've got 32 vista vms running on a single core p4... But personally I run 2 vms and the host just fine on my less-than-epic core2duo 4600 w/ 4gb of ram. And by 'just fine' i dont mean crysi
      • Actually, yes I tried it 30 years ago. Wrote some of the virtual memory paging code in IBM VM/370 - one of the original virtualizing products for multi million dollar mainframes. I also tried it earlier this month, both Microsoft's and VM Ware's. And while I don't have the same intimate knowledge of the code I used to have, I probably have a better understanding of what goes on in virtualization than most people.

        But anyhow, your arguments are weak. You say it runs fine. I say it does not run as good as it
  • Get 1 machine: 4 core or more, 8GB of ram or more, Terrabytes of drive storage.
    Add your favorite 64 bit host OS.
    Get VMWare. Create Virtual machines.
    I went virtual about 1-1/2 years ago. I will never go back. I run multple multiple vm's each with their own VPN into 1) work, 2) client sites, 3) Hosting sites. I have a Visual Studio vm, a Linux server hosting subversion repository, Debian dev enironment, Linux server with Apache for testing web based apps. All on 1 machine.

    One caveat... You can not do h
  • Don't give this another thought. Spend the money and get an SFF ( like a Shuttle ) with 8GB of RAM. Install the FREE VMWare server and load VMs that you need. No need to try Apple, Linux or Windows. Use VMWare to host these VMs. Works great!
  • 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.

    • Comment removed based on user account deletion
      • Well, you're right in that even a separate test user isn't really necessary. However there are some wins:
        - upgraded but not checked-in libraries become visible
        - configuration files which were edited and then forgotten reveal themselves
        - other stuff

        And on any Unixy system it's not necessary to log off, just open a shell and do a "su testuser" (su = switch user).

  • I would probably get two large-ish, but cheap, machines. Throw Xen on both and let them share a volume. This has the advantage that:

    a) You don't spend much money
    b) You have a backup machine if one burns down
    c) You can play with moving domUs while they are running
    d) You can install and play with a bazillion VMs
    e) You can easily back up a whole system, do stuff and revert

    Of course, you don't want to do this if your hardware needs are specific in any way.

  • "I'm a Project Manager who recently decided that I want/need to get my dev skills more up-to-date... Should I buy a number of cheaper PC's, or should I buy one monster machine and leverage virtual machine technology?"

    You'll end up splitting your time between PM and development tasks, so you'll be coming up to speed for at least a year, and you simply won't need as much hardware as your developers. You won't be stressing your system as much as they stress theirs. With that in mind, consider spending the m

  • A project manager trying to be a developer usually leads to the project manager trying to use their clout as a manager to make architectural decisions, often neglecting their project management duties at the same time. If you want to be a developer, you should stop working as a project manager and more into a junior development role on a different project. Working as a junior developer, you'll be able to get mentoring from the senior developers on the team and likely end up with a better perspective on th
  • You can do what I have done: rent a powerful dedicated server and ssh or vpn via a netbook on 3G. Do all compiling etc on the server, it's much easier.
  • As a PM I wouldn't think you would need a robust dev/test infrastructure at home. If you simply want to sharpen your skills in order to be a more valuable member of your development team (a worthy goal), I recommend getting a commodity desktop box (Intel proc, min 2GB RAM) and some free dev tools such as Eclipse, MySQL, .Net, etc. You can simply partition the disk to accommodate different platform requirements that your dev team might encounter. This is a much simpler, cheaper, and less house-of-cards-y

I tell them to turn to the study of mathematics, for it is only there that they might escape the lusts of the flesh. -- Thomas Mann, "The Magic Mountain"

Working...