ฉันไม่แนะนำ git สำหรับตาชั่งที่คุณกำลังพูดถึง มันสามารถทำงานได้ แต่ฉันเห็นการขาดดุลโดยใช้โมเดลนั้นในการดึง
มีสองสิ่งที่กำหนดว่าจะทำอย่างไรดีที่สุด:
- มีการแบ่งปัน repo ขนาดใหญ่เท่าใด
- มันต้องมาบรรจบกันเร็วแค่ไหน
เพื่อการบรรจบที่สมบูรณ์แบบและความเร็วสูงสุดคุณจะต้องไปกับระบบไฟล์เครือข่ายเช่น NFSv4 ระบบไฟล์แบบคลัสเตอร์ที่ฉันรู้จักไม่ได้ปรับขนาดเป็น 'หลายร้อย' โหนดดังนั้นจึงต้องเป็นระบบไฟล์เครือข่าย สิ่งนี้นำเสนอความท้าทายของตัวเอง แต่ก็หมายความว่าคุณจะมาบรรจบกันในเวลาที่ไฟล์ถูกอัพเดตบนส่วนหัวของ NFS
สำหรับการบรรจบกันอย่างรวดเร็วคุณสามารถใช้เล่ห์เหลี่ยม rsync หาก rsync daemon จบลงด้วยการเชื่อมโยงกับ CPU คุณสามารถใส่เซิร์ฟเวอร์ rsync สองสามคู่ไว้ด้านหลังตัวโหลดบาลานซ์เช่น haproxy จับคู่กับงาน cron เพื่อดึงข้อมูล (หรือวิธีการอื่นในการเรียกรหัสอัพเดท) และคุณสามารถเข้าหากันได้อย่างรวดเร็ว
สำหรับทั้งสองข้อข้างต้นอาจเป็นความคิดที่ดีที่จะวางที่เก็บส่วนกลางในลิงค์ 10GbE สำหรับปริมาณงานสูงสุด
อีกทางเลือกหนึ่งคือ push-rsync ซึ่งจะเรียกใช้จาก repo ส่วนกลางเพื่อพุชอัปเดตไปยังเซิร์ฟเวอร์ของคุณ มันจะไม่มาบรรจบกันอย่างรวดเร็วเหมือนอย่างใดอย่างหนึ่งข้างต้น แต่จะเป็นมิตรกับแบนด์วิธภายในของคุณมากขึ้น ใช้โฮสต์หลายรายการที่ผลักไปสู่ช่วงที่แบ่งออกเพื่อความเร็วที่ดีกว่า