On Sun, 18 Nov 2012 21:33:40 -0800 (PST)
Thomas Koch <tho...@koch.ro> wrote:

> what would you call best practice for a highly available git hosting
> setup? We have servers in 3 datacenters. At best a git push should
> only complete if the data has been stored in at least two
> datacenters. The git "master" should automatically switch if one
> datacenter isn't available.

gitolite provides mirroring [1] but it's only concerned with
replication.  As others pointed out, switching the main server and
stuff like this is really about HA tools.

I should note that while I don't have direct experience with HA Git
setups, I don't think that going "fully automatic" about handling
failures is such a wonderful idea: DVCSes allow everyone to not be too
concerned with remote outages as communication with remotes could be
done when such an outage is fixed.
Hence it seems sensbile to go for "hot standby" solution, where
you have a blessed server everyone communicates with, and either that
server performs active replication (does pushes to slaves--for
instance, using gitolite mirroring or hooks or whatnot) or slaves
perform passive replication (say, fetching data from the server every
so often).  When the main server goes down for some reason, its admins
estimate the tentative outage--if it's deemed to be pretty long, one of
the slaves might be "blessed" as the new master, and everyone notified
about this (by e-mail, IM etc), otherwise everyone commits locally as
if nothing happened, exploiting the wonders of DVCS, and then when the
master server goes up, everyone is reconciling their work with it.


> P.s. I hope google does not send this message as HTML?
It has the type multipart/alternative with just the plain/text part
without any alternatives, which is okay ;-)

1. http://sitaramc.github.com/gitolite/mirroring.html


Reply via email to