Saya tidak merekomendasikan git untuk skala yang Anda ajak bicara. Ini bisa berhasil, tetapi saya pribadi melihat beberapa defisit dengan menggunakan model itu untuk mengambil.
Ada beberapa hal yang menentukan cara terbaik untuk melakukannya:
- Seberapa besar repo perlu dibagikan.
- Seberapa cepat perlu konvergen.
Untuk konvergensi yang sempurna, dan kecepatan maksimum Anda harus menggunakan sistem file jaringan, seperti NFSv4. Filesystem cluster yang saya tahu tentang jangan skala ke 'ratusan' node, jadi itu harus sistem file jaringan. Ini menyajikan tantangannya sendiri, tetapi itu berarti bahwa Anda akan mencapai konvergensi saat file diperbarui pada kepala NFS.
Untuk konvergensi cepat, Anda dapat menggunakan beberapa tipu daya rsync. Jika daemon rsync pada akhirnya terikat dengan CPU, Anda tentu dapat menempatkan beberapa-tiga server rsync di belakang loadbalancer seperti haproxy. Pasangan itu dengan pekerjaan cron untuk menarik data (atau metode lain untuk memicu pembaruan kode) dan Anda dapat mencapai konvergensi dengan cukup cepat.
Untuk kedua hal di atas, mungkin ide yang baik untuk menempatkan repositori pusat pada tautan 10GbE untuk throughput maksimum.
Alternatif adalah push-rsync, di mana dijalankan dari repo pusat untuk mendorong pembaruan ke server Anda. Ini tidak akan menyatu secepat salah satu di atas, tetapi akan lebih bersahabat dengan bandwidth internal Anda. Gunakan beberapa host yang mendorong rentang yang dibagi untuk kecepatan yang lebih baik.