Automating, Building, Testing and Deploying to Production Server

Benji York benji at benjiyork.com
Mon Oct 3 08:21:42 EDT 2005


yoda wrote:
> I realize I'm losing so much time I could spend more productively. I'd
> therefore like to know the different approaches you guys employ to
> deploy builds from your staging servers (or laptops:) to the production
> server in an automated repeatable safe manner.

> How do you automate the process?

We have a system called "the buildout" that checks out a project's code, 
downloads and builds any dependencies, and configures a working system.
(http://svn.zope.org/Sandbox/zc/buildout/trunk/)

We use that for setting up new development environments (each developer 
generally has several builds of any project at one time).

> What tools do you use and how?

We also have a BuildBot setup that runs a buildout and then runs the 
tests and emails a list if the tests fail (http://buildbot.sf.net).  You 
can see an example of our "public" buildbot here: http://buildbot.zope.org.

> What documentation is available for the various tools?

We just publicly released the buildout code a couple of weeks ago, and 
it seriously needs docs and tests.

BuildBot doesn't have great docs, but it's configured via Python, so 
it's not too bad.

> What is the best, easiest, most automated, method that provides robust
> versioning and easy rollback?

When we deploy via buildout (as opposed to by using an installer or a 
simple archive) we generally either just tell the buildout to update 
itself, or if we want the ability to "roll back" make a new buildout and 
switch to it (therefore we can switch back to the previous build).

We don't do it this way, but because the buildout for a particular 
project is itself versioned, you could just "svn up" to the previous 
version and rebuild it and you'd be back to where you started.
--
Benji York





More information about the Python-list mailing list