Ich empfehle Git nicht für die Waage, mit der Sie sprechen. Es kann funktionieren, aber ich persönlich sehe einige Defizite bei der Verwendung dieses Modells zum Abrufen.
Es gibt einige Dinge, die bestimmen, wie dies am besten funktioniert:
- Wie groß ein Repo sein muss, muss geteilt werden.
- Wie schnell es konvergieren muss.
Für eine perfekte Konvergenz und maximale Geschwindigkeit müssen Sie ein Netzwerkdateisystem wie NFSv4 verwenden. Die mir bekannten Cluster-Dateisysteme lassen sich nicht auf mehrere Hundert Knoten skalieren, daher muss es sich um ein Netzwerk-Dateisystem handeln. Dies stellt seine eigenen Herausforderungen dar, bedeutet jedoch, dass Sie die Konvergenz erreichen, sobald die Dateien auf dem NFS-Kopf aktualisiert werden.
Für eine schnelle Konvergenz können Sie einige rsync-Tricks verwenden. Wenn der rsync-Daemon CPU-gebunden ist, können Sie sicher ein paar drei rsync-Server hinter einen Loadbalancer wie haproxy stellen. Wenn Sie dies mit Cron-Jobs kombinieren, um Daten abzurufen (oder eine andere Methode zum Auslösen von Code-Updates), können Sie die Konvergenz ziemlich schnell erreichen.
In beiden Fällen ist es wahrscheinlich eine gute Idee, das zentrale Repository für einen maximalen Durchsatz auf 10-GbE-Links zu setzen.
Eine Alternative ist ein Push-Rsync, bei dem er vom zentralen Repo ausgeführt wird, um Updates auf Ihre Server zu übertragen. Es konvergiert nicht so schnell wie die oben genannten, ist jedoch für Ihre interne Bandbreite freundlicher. Verwenden Sie mehrere Hosts, die für eine bessere Geschwindigkeit in geteilte Bereiche drücken.