Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I need to set up a development environment for a small distributed team of under 5 programmers to build a site using Drupal. Development is done by each programmer on his/her own machine. Ideally, we would have all servers in the same farm as the production server, but we wanted to limit our costs. The proposed set-up is listed below. I'm a newbie trying to figure this out so any clarifications/comments would be appreciated.

Answers Wanted

Can you comment on: (1) alternatives to each step; (2) additions for things we missed; (3) ways to set up the various servers to minimize hosting costs especially at the pre-revenue stage; (4) additional tools to help automate as many of the processes as possible; and (5) security issues we should consider in providing access to the distributed team?

Proposed Setup

  1. Source Code Repository -- Use sourcerepo.com or repositoryhosting.com (either Trac/Git or Redmine/Git). This will house the source code, wiki, bug tracking and project management. Prices are about $6/month for unlimited users.

  2. Testing Servers -- We are thinking of using a cheap VPS for this (about $10/month). We are also considering Amazon EC2 to allow developers to test against the most current version simultaneously.

  3. Staging Server -- We will either use a cheap VPS or go with two nodes on Linode.com (one for staging and one for production).

  4. Production Server -- We are looking at Linode.com for this.

  5. Backup/Media Files Storage -- We want to set up backup to an Amazon S3 account, as well as configure S3 to hold images that users will upload onto the site. This will help reduce bandwidth and storage costs on the production server. We may also use the automated backup services by Linode.com on the production site.

The testing, staging and production servers will have the same software installed, including Drupal Mercury (with drush, code and simpletest modules), Hudson for CI, Selenium for functional testing and jMeter to benchmark performance.

Thanks.

share|improve this question

1 Answer 1

Having multiple testing and staging servers is overkill unless you expect the application to destroy the system in the process of running. Just have a single server for both testing and staging, with multiple virtual hosts with separate document roots.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.