[Web-SIG] Sarge - progress update
dholth at gmail.com
Wed Sep 12 15:08:32 CEST 2012
On Monday, September 10, 2012 12:33:31 PM UTC-4, Alex Morega wrote:
> Here's a progress update on "sarge", the deployment tool. Turns out I
> was trying to address too many concerns at once, so I focussed on the
> core problem: managing the lifecycle of a version of the application.
> Sarge acts as container for "instances". An instance can be *created*,
> then you install code and configure stuff; you can then *start* and
> *stop* it, and when a new version is ready, *destroy* the old one.
> There's also a *run* command to bring up a REPL or execute custom
> commands. Some documentation exists: http://mgax.github.com/sarge/
> Instances are independent, so you can run them simultaneously; this
> allows for different instances for different jobs (web, worker, cron
> script) and also things like rolling back a failed deployment or
> zero-downtime upgrade. I'm using this, for a couple of projects, in
> production, today.
I am using a system that installs each revision of a web application into a
new virtualenv in a directory hostname/random-number (uuid), echoes the
random number into a file hostname/active and creates a symlink
hostname/current -> random-number. A uwsgi config file hosname/config.ini
links to the currently active environment by loading its name from the file
virtualenv = %d/@(%d/active)
When you touch the .ini file, uwsgi reloads the application. Another file
'history' has all the old 'active' lines in order with timestamps so you
can revert. uwsgi's many features allow background workers and so on.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Web-SIG