Search code examples
svndeploymentautomationtracenvironment

Improving our development environment at work


In the near future i will get some 2 weeks for moving and improving our development environment at work.

We mainly develop one large PHP/MySQL project with 2-10 developers.

At the moment we have one dev server, running apache with mod_userdir, each dev has a /public_html folder in his (samba-accessible) home. For VCS and Project Management/Issuetracking we use Subversion and Trac. Testing/Deployment takes some manual steps, not much automation there.

My plans for the new setup include the following changes to the existing stuff:

  • Continuous Integration
  • Integrate CI to Trac, create/find a plugin which offers to start actions after success or failure of the build progress (i.e. deploy to staging/live)
  • Create automated deployment-scripts (one-click)
  • Integrate (doxygen)-Documentation into the build-progress and somehow into Trac
  • Add automatic versioning
  • Add another layer of monitoring (local nagios monitoring our production-system-nagios)
  • Add a nightly running MySQL Replication Slave, which can then by the developers be used to test stuff on up2date data
  • Review the backup plans
  • Document how and why I set everything up in this way

Do you have any tips/hints what can be improved further? Anything we should do in a different way?


Solution

  • I would make sure that you write your automated deployment scripts in such a way that they can be used by your continuous integration tool. Hudson (and CruiseControl I suspect) basically wrap these scripts and provide a nifty front-end.

    Hundson is easy to install and comes with a Trac plugin, SVN, CVS, Git plugins and a Doxygen plugin and others for almost anything you can think of. Caveat: I haven't used all these plugins and they may not do exactly what you want...

    If you have a budget for CI software then TeamCity is well worth a look (or are you using Bitten?).

    You've a great opportunity, so good luck!