[Mongrel] Running two clusters side by side

Zed Shaw zedshaw at zedshaw.com
Thu Sep 7 03:19:10 EDT 2006

On Thu, 2006-09-07 at 02:38 -0400, Jared Brown wrote:
> I'm happy to announce that ChaCha.com a new search engine that debuted
> this week and it runs on a mongrel cluster.
> Warning, promo follows. :)
> ChaCha.com is unlike any other search engine since it allows you to
> connect to a "guide" with experience in the field(s) of knowledge you
> are searching in. (Based on your keywords) Check it out at
> http://www.chacha.com
Very cool.

> Now on to my question. How can I run two clusters side by side so that
> when the site needs to be updated the new code can be deployed, then
> first one cluster is restarted and then the other, thus preventing any
> downtime from occuring? BTW: We are using mod_proxy_balancer to load
> balance between the mongrel servers. I imagine I would have to disable
> the proxy pass through at the same time, which would mean restarting
> apache several times. What is the best way to do this on one server? 

I believe most people do this with DNS tricks.  Off the top of my head,
what you do is you put your proxy out on the internet at chacha.com, and
then point it at "prod1", "prod2", "prod3" on three other servers.
These names come from an internal DNS.

You then have three other servers named "staging1", "staging2",
"staging3".  You do your work against these three, and when the big day
comes, you simply flop the records in your internal DNS so that staging
becomes prod and v.v.  The proxy server, using the internal DNS starts
routing requests at the new IP addresses and old requests finish off as

There's also some fancy load balancers that can do the same thing from a
control panel.

Zed A. Shaw
http://www.lingr.com/room/3yXhqKbfPy8 -- Come get help.

More information about the Mongrel-users mailing list