2
votes

we need to choose some server hardware for a small software development company (10-15 developers and 15-20 network users in total).

We have some common tasks like Internet access (firewall), e-mail (SPAM filter), local NNTP server, local FTP server. We also need a file server, SMB server. I guess these should live on a separate server (servers?).

Besides we have some development needs:

  • continuous integration (CruiseControl currently running 5-10 projects, each project build needs up to 10 minutes to compile, package Java code and run unit tests) - I believe the most CPU consuming task;
  • issue tracking, time tracking, wiki etc - several web applications (mostly Java running under Tomcat, each of them usually require some DB hosted by MySQL or PostgreSQL)
  • version control - few SVN repositories and one CVS for legacy projects.

What hardware should be enough for these purposes? Are there any approaches to determine (calculate required CPU/memory).

Thank you in advance.

P.S. We've asked this question one of our domestic server vendors, they offered two servers (2 x Xeon 5405 + 8GB RAM for all network stuff and 2 x Xeon 5430 + 32GB RAM + 12 x HDD SAS 146 GB for all development stuff running on VM). The total price is about $13K, which is quite expensive for us.

1
  • Thanks to everybody who answered here. Unfortunately I can accept only one answer, but every answer was useful for me. I see that the more answers I get the more new questions appear. So probably my question is not for serverfault, but for some forum/mailinglist, where I can discuss this issue. Could you please advise me some forum where I can discuss topic like this? Thank you in advance.
    – user23293
    Oct 21, 2009 at 20:23

6 Answers 6

1
vote

My recommendation would be to start with a single server running VMware ESX (or ESXi if your budget is tight). Throw in a quad NIC - this will give you more network interfaces to use for your network router/nat VM. There's really no need to start with two servers - just buy one and keep an eye on its utilization. If, at some point in the future, you hit the CPU/RAM/disk limits of the one server, purchase another one, install ESX, and migrate the VMs over to it.

As far as hardware specs, the "development server" outlined above looks good. If cost is an issue, start w/ 16G RAM - you can always upgrade later if need be.

2
votes

As you're a development company, for a lot of the firewall/filtering/etc functionality I would favour use of hardware appliance boxes. You may lose some of the flexibility that a full server might give you, but in terms of admin overhead (which I'd guess you're not geared up to take on) it's a small enough price to pay.

For a file server, my experience with developers is that you'll need lots of storage. Even for only 10-15 people, you'll be keeping multiple copies of apps, install files for multiple versions of development tools and suites, database suites, etc, so definitely don't skimp there. You may even want to backup or image your PCs nightly to the network, which is more space.

Exactly how much you need depends on what tools you use, so you'll need to get counting. My general rule of thumb is to take that figure and double it to give you some headroom for the future.

I don't see why a company like yours would need your own internally hosted email. Again, it's admin overhead that you don't need and are likely not geared up for, so find a good external provider - preferably one you can easily get on the phone to and yell at when things go wrong (this can be far more important than any amount of nice features).

Don't forget to budget for backups as well!

1
  • +1 for recommending against self-hosted email.
    – EEAA
    Oct 19, 2009 at 18:11
0
votes

The first question I would ask after seeing these specs is how much have you budgeted for these servers? What about power/cooling costs? To make an educated decision on purchasing hardware, you need to consider more than just the apps you want to run on them.

3
  • OK, sorry, I don't have system administration background, only software development, so I'm not sure I understand questions properly. At the moment we have air conditioned (18C) server room where old servers live, we have some UPS (5 x APC SmartUPS 1000), so I believe we can live with this staff for the first time. The budget is more complex question. I thought that we can build our server environment step-by-step, replacing old servers one-by-one and spending about $2K each quarter.
    – user23293
    Oct 19, 2009 at 18:24
  • Sorry, I didn't know you had an existing data closet or older server assets.
    – Mojeska
    Oct 19, 2009 at 18:38
  • Assuming that you aren't going to host your own email, I would recommend Google Apps, or a hosted Exchange solution for your email/spam filtering. That would probably set you back $1800 per year (with Google Apps), but save you the cost of hardware, maintenance, and support. The FTP/NNTP/Firewall could probably be handled by a low cost pizza box running Linux. I could see you doing this for less than $2k. As far as your development/file services, you probably don't want to skimp. Again I would recommend a Linux based solution (especially for development).
    – Mojeska
    Oct 19, 2009 at 18:49
0
votes

Don't buy Xeon 5400's for a VM box. Xeon 5500's will provide better VM support at the same price point.

Disk IO will be a bottleneck for VM's running on just the internal drives of the server. You should be looking at a DAS or ISCSI SAN to add more IO. It sounds like external storage is out of your budget though.

0
votes

Sounds a lot like my own dept. We have about 30 developers doing a mix of PHP/Java on Linux/Apache/Tomcat/MySQL + Samba + SVN, and our pair of HP DL360's are overkill. I'd build a barebones kit for your router/firewall/email for around $500, and keep an old PC around as a backup, then spend maybe a nicer box like an HP DL380 for the dev environment.

1
  • I'd advise against the "repurposed workstation" approach - while it's passable for a router or a mail server, when it comes to a development machine, that way madness lies. Sep 9, 2010 at 12:21
0
votes

With no dedicated IT people and limited budget, you're the right kind of customer for cloud services like Amazon EC2 for dev and Google Apps for the business side. You will have less to worry about, and your expenses will scale with your needs, so you can avoid large upfront investment. Of course, this is assuming you're on fixed cost line (I remember a few years ago the usual thing in your neck of the woods was to pay for MB, don't know how it is now).

If that doesn't work for you for whatever reason (connectivity, security, the boss being too old-fashioned), you'll just need to do the same thing in your back room. Get a pair of high-powered servers (btw, get rid of those people who're quoting you the 5400 series, Nehalems are so much better it's not funny, and the memory, which you'll need lots of, is way cheaper, $20/GB or so), drop a bunch of VMs on them (use whatever virtualization technology is closest to your heart), and have fun. Best thing to do is have one VM per app - easier to manage. To save time, use Jumpbox for your internal apps. For firewall and router needs, there's Vyatta. But you should still expect the price tag in the neighborhood of $10K - there's no way to do it cheaper unless you're willing to build stuff from scrap.