[Gllug] Practical release and deployment - how?

Richard Jones rich at annexia.org
Wed Nov 7 14:07:07 UTC 2007


On Wed, Nov 07, 2007 at 01:23:46PM +0000, Ziya Suzen wrote:
> What do you use (as tools or practices) for releasing and deploying
> your code (internal to the company)?
> 
> I am managing a bunch of RHEL 4 boxes (both production &
> test/development) and developing websites for several clients (order
> of ten). Using SVN for source control. Currently what I have is
> basically SVN HEAD is what should be deployed/installed (basically
> copied over) on all the test/staging, development and production
> servers. However this is proving to be a little burden since I can't
> really track my changes during development since I can't commit
> anything until it's ready to be deployed.

In other words you're not using SVN for anything other than to track
the history of your releases.

You really should start to take a look at branches as soon as
possible.

Decide on a version numbering scheme (it could be as simple as "next
version will 3.1").  Develop along the HEAD, checking in all changes
as you go along.  When you are happy with the result, create a 3.1
branch.  This branch is what you should check out and release.  Any
vital bugfixes can also be checked in or merged into the 3.1 branch
and released.  Normal development continues along HEAD.

There are other, more complicated schemes that people use in the real
world, but the above will get you started and is 100x better than what
you are doing at the moment.

> I should probably use
> svn/branches and so on to achieve this and possibly use RPM to deploy
> code. But it sounds like too much of an overhead sometimes, I can't
> convince myself doing that. What is your experience?

Using RPM to deploy code can be a good idea, in that your web servers
are always in a predictable state.  Creating RPMs need not be very
hard either.

At one job I had, RPM was the standard "unit" of release.  It was the
binary RPM which was vetted and tested by the QA department, and (if
it passed QA) the identical RPM which was installed on the live
servers by the system administration team.  That was a company with a
number of people in each team, so it made sense.  For one or two
person shops it's overkill.

> Another thing is the HTML files (or HTML templates. PHP files and
> such). We keep them in svn as well and deploying them as RPM or using
> svn/branches is almost impossible since designers will require
> click-the-button-tools to be able to work with such a system. What are
> your thoughts about managing these in web installations?

You need to educate your designers.  If you cannot do this for
whatever political reasons then you need to create a release manager
role, someone who stands between them and any kind of production
system and deals with checking in their changes to SVN, resolving
conflicts, and handling releases.

Rich.

-- 
Richard Jones
Red Hat
-- 
Gllug mailing list  -  Gllug at gllug.org.uk
http://lists.gllug.org.uk/mailman/listinfo/gllug




More information about the GLLUG mailing list