Automating, Building, Testing and Deploying to Production Server
benji at benjiyork.com
Mon Oct 3 14:21:42 CEST 2005
> 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.
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.
More information about the Python-list