Deplyoing a Large Website Painlessly on Debian

Posted: October 22nd, 2009 | Author: | Tags: , | Comments Off on Deplyoing a Large Website Painlessly on Debian

We run a large scale and highly visible website. This site is updated frequently, and is very complex. So far the way the site is updated is using subversion where the latest code is checked out into the public servers – after much testing, of course.

A typical release goes something like this:

  • checkout code from subversion
  • run a few scripts to modify database and generate intermediate files
  • generate various connections between site and underlying software
  • update underlying software

One problem with this approach is inevitably developers tend to push last minute fixes while in testing mode. It’s easy to update the code with a svn co but the code always tends to diverge and one fix usually leads to other bugs! Another issue is that each time a release is made a long list of complicated – and different each time – steps have to be followed. There are many other issues as well that I won’t go into right now, but suffice to say each release is as easy as pulling your own tooth!

So, one idea to cut down on all this trouble is to build a deb package for each release. This essentially locks down development, since each code change involves building a new package. I’m also fairly certain it will make life in the software lifecycle much easier.

And the debianized release would go like this:

  • apt-get install website package
  • apt-get install underlying software

Or even simpler if I made the website package depend on the underlying stuff:

  • apt-get install website package

Now only if I could get the decision makers to agree.