Tôi không khuyên bạn nên git cho quy mô bạn đang nói chuyện. Nó có thể hoạt động, nhưng cá nhân tôi thấy một số thiếu sót khi sử dụng mô hình đó để tìm nạp.
Có một vài điều xác định cách tốt nhất để làm điều này:
- Làm thế nào lớn của một repo cần phải được chia sẻ.
- Làm thế nào nhanh chóng nó cần phải hội tụ.
Để hội tụ hoàn hảo và tốc độ tối đa, bạn sẽ phải sử dụng hệ thống tệp mạng, chẳng hạn như NFSv4. Các hệ thống tệp được phân cụm mà tôi biết về việc không mở rộng thành 'hàng trăm' nút, do đó, nó phải là một hệ thống tệp mạng. Điều này đưa ra những thách thức riêng của nó, nhưng điều đó có nghĩa là bạn sẽ đạt được sự hội tụ ngay khi các tệp được cập nhật trên đầu NFS.
Để hội tụ nhanh, bạn có thể sử dụng một số thủ thuật rsync. Nếu daemon rsync cuối cùng bị ràng buộc CPU, bạn chắc chắn có thể đặt một vài ba máy chủ rsync phía sau một bộ cân bằng tải như haproxy. Kết hợp với các công việc định kỳ để lấy dữ liệu (hoặc một số phương pháp kích hoạt cập nhật mã khác) và bạn có thể đạt được sự hội tụ khá nhanh.
Đối với cả hai điều trên, có lẽ nên đặt kho lưu trữ trung tâm trên các liên kết 10GbE để có thông lượng tối đa.
Một thay thế là một rsync, trong đó nó chạy từ repo trung tâm để đẩy các bản cập nhật đến máy chủ của bạn. Nó sẽ không hội tụ nhanh như một trong những điều trên, nhưng sẽ thân thiện hơn với băng thông nội bộ của bạn. Sử dụng nhiều máy chủ đẩy để chia phạm vi cho tốc độ tốt hơn.