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 --