No recomiendo git para las escalas con las que estás hablando. Puede funcionar, pero personalmente veo algunos déficits con el uso de ese modelo para buscar.
Hay un par de cosas que determinan la mejor manera de hacer esto:
- Qué tan grande de un repositorio debe ser compartido.
- Qué tan rápido necesita converger.
Para una convergencia perfecta y la velocidad máxima, deberá utilizar un sistema de archivos de red, como NFSv4. Los sistemas de archivos agrupados que conozco no se escalan a 'cientos múltiples' de nodos, por lo que tiene que ser un sistema de archivos de red. Esto presenta sus propios desafíos, pero significa que alcanzará la convergencia en el momento en que los archivos se actualicen en el cabezal NFS.
Para una convergencia rápida, puede usar algunos trucos rsync. Si el demonio rsync termina vinculado a la CPU, ciertamente puede poner un par de tres servidores rsync detrás de un equilibrador de carga como haproxy. Combine eso con los trabajos cron para extraer datos (o algún otro método para activar actualizaciones de código) y puede alcanzar la convergencia bastante rápido.
Para los dos anteriores, probablemente sea una buena idea colocar el repositorio central en enlaces de 10 GbE para obtener el máximo rendimiento.
Una alternativa es un push-rsync, donde se ejecuta desde el repositorio central para enviar actualizaciones a sus servidores. No convergerá tan rápido como cualquiera de los anteriores, pero será más amigable con su ancho de banda interno. Use múltiples hosts presionando a rangos divididos para una mejor velocidad.