あなたが話しているスケールにはgitはお勧めしません。それは機能しますが、個人的にそのモデルをフェッチに使用することにはいくつかの欠点があります。
これについて最善の方法を決定するものがいくつかあります。
- どのくらいのレポを共有する必要があるか。
- 収束に必要な速度。
完全な収束と最高速度を実現するには、NFSv4などのネットワークファイルシステムを使用する必要があります。私が知っているクラスター化されたファイルシステムは、「数百」のノードに拡張できないため、ネットワークファイルシステムでなければなりません。これには独自の課題がありますが、NFSヘッドでファイルが更新された瞬間に収束することを意味します。
迅速な収束のために、rsyncトリックを使用できます。rsyncデーモンがCPUバウンドになった場合、haproxyのようなロードバランサーの背後に数個のrsyncサーバーを確実に配置できます。それをcronジョブと組み合わせてデータをプルする(またはコード更新をトリガーする他の方法)と、すぐに収束することができます。
上記の両方について、最大のスループットを得るために中央リポジトリを10GbEリンクに配置することをお勧めします。
別の方法はpush-rsyncで、中央リポジトリから実行してサーバーに更新をプッシュします。上記のいずれかの速度で収束することはありませんが、内部帯域幅により適しています。速度を上げるには、複数のホストを使用して、分割された範囲にプッシュします。