Microsoft พัฒนา GVFS ย้ายโค้ด Windows ขนาด 300GB ไปไว้ใน Git

Git นั้นเป็น version control system ที่ได้รับความนิยมอย่างมากในหลายๆองค์กร แต่ยังไม่สามารถทำงานได้ดีนักในองค์กรที่มีซอฟต์แวร์ขนาดใหญ่มากอย่างระบบปฏิบัติการ Windows ทีมนักพัฒนาจากไมโครซอฟต์จึงสร้าง Git Virtual File System (GVFS) ระบบ Git ที่สามารถทำงานกับ repository ขนาดใหญ่ได้อย่างมีประสิทธิภาพ ซึ่งได้มีการใช้งานจริงกับโค้ดของระบบปฏิบัติการ Windows แล้ว

เดิมนั้นโค้ดของ Windows ถูกเก็บอยู่ในระบบ source control ภายในของไมโครซอฟต์ที่เรียกว่า Source Depot แม้จะมีความต้องการในการย้ายไปเป็นระบบ Git แต่การลงมือทำจริงนั้นก็เป็นไปได้ยากเนื่องจากมีค่าใช้จ่ายที่สูงและ Git นั้นไม่สามารถสเกลขึ้นเพื่อรองรับซอฟต์แวร์ขนาดที่ใหญ่มากได้

เมื่อ check in ลงไปใน Git ระบบปฏิบัติการ windows จะมีโค้ดรวมที่ประมาณ 3.5 ล้านไฟล์ คิดรวมเป็นกว่า 300GB ซึ่ง repository นี้มีวิศวกรใช้งานอยู่ราว 3000 คน และมีการ build วันละ 1760 ครั้ง ใน 440 branch ทีมงานไมโครซอฟต์จึงต้องเผชิญหน้ากับความท้าทายใน 3 แง่มุม ทั้งจำนวนไฟล์ ขนาดของโค้ด และกิจกรรมที่เกิดขึ้นใน repository ในแต่ละวัน

GVFS ถูกพัฒนาขึ้นมาแก้ไขปัญหาตรงนี้ด้วยการทำคำสั่งกับไฟล์เฉพาะที่จำเป็นเท่านั้นโดยดูจากไฟล์ที่นักพัฒนาแต่ละคนได้ทำการแก้ไข และมีระบบสำหรับจัดการการ checkout เพียงบางไฟล์ (sparse checkout) ทำให้การ เรียก status หรือการ checkout เองทำงานได้อย่างรวดเร็ว

ในระยะเวลา 3 เดือนที่ผ่านมา ทางทีมงานก็ได้ค่อยๆปล่อย GVFS นี้ให้วิศวกรใช้งานกันในโค้ดของระบบปฏิบัติการ Windows แล้ว โดยมีการ commit เกิดขึ้นใน repository นี้มากกว่า 250,000 ครั้งใน 3 เดือน push เฉลี่ยวันละ 8421 ครั้ง ซึ่งตัวระบบก็สามารถทำงานได้อย่างมีประสิทธิภาพ และเมื่อเทียบกับการใช้ Git ธรรมดาที่อาจใช้เวลาในการทำคำสั่งตามตารางด้านล่างมากกว่า 30 นาทีใน repository ขนาดใหญ่แล้ว ถือว่าทำงานได้รวดเร็วมาก

Credit: Microsoft

สำหรับปัญหาที่ประสบในการนำ GVFS เข้ามาใช้ในครั้งนี้ ก็มีตั้งแต่ระบบการจัดการการ merge และ resolve conflict ดั้งเดิมที่ไม่เหมาะสมกับการใช้กับ conflict หลายพันรายการ ปัญหาหน้าการแสดงผลรายชื่อไฟล์จำนวนมากค้าง ซึ่งทีมงานก็ได้เร่งแก้ไขไปแล้ว

นอกจากนี้แล้ว ทีมนักพัฒนายังได้พัฒนา Git proxy สำหรับ GVFS เพื่อการส่งผ่านข้อมูลที่ดียิ่งขึ้นไปยังนักพัฒนาของไมโครซอฟต์ทั่วทุกมุมโลก proxy นี้จะคอยเก็บ cache ของไฟล์ไว้ที่ edge ต่างๆและคอยจัดการขนาดของ traffic ในบริการหลักของ Visual Studio Team Service เพื่อให้ผู้ใช้มีประสบการณ์ในการใช้งานที่ดี การใช้ proxy นี้ลดเวลาในการทำงานของระบบ Git ลงเป็นอย่างมาก เช่นการ clone จาก North Carolina นั้นอาจใช้เวลาถึง 25 นาที แต่เมื่อติดตั้ง proxy ก็ใช้เวลาเพียง 70 วินาทีเท่านั้น

GVFS เป็นโปรเจคโอเพ่นซอร์สที่องค์กรสามารถดาวน์โหลดไปทดลองใช้สำหรับ codebase ขนาดใหญ่กันได้ที่ https://github.com/Microsoft/GVFS

 

ที่มา: https://blogs.msdn.microsoft.com/bharry/2017/05/24/the-largest-git-repo-on-the-planet/

Check Also

ClickHouse จับมือ INOX ในฐานะพันธมิตร HouseMates ในประเทศไทย เดินหน้าขยายการใช้งาน Real-Time Analytics ทั่วภูมิภาคเอเชียตะวันออกเฉียงใต้

ความร่วมมือครั้งนี้จะช่วยให้องค์กรไทยเข้าถึงเทคโนโลยีฐานข้อมูลสำหรับการวิเคราะห์ข้อมูลแบบเรียลไทม์ของ ClickHouse ซึ่งโดดเด่นทั้งด้านความเร็วและความคุ้มค่า ผ่านความเชี่ยวชาญด้านโครงสร้างพื้นฐานไอทีของ INOX ที่สั่งสมประสบการณ์ในประเทศไทยมายาวนาน

แคสเปอร์สกี้และสกมช. จับมือต่ออายุ MoU เสริมแกร่งความมั่นคงทางไซเบอร์ของไทย [PR]

แคสเปอร์สกี้ (Kaspersky) และสำนักงานคณะกรรมการการรักษาความมั่นคงปลอดภัยไซเบอร์แห่งชาติ (สกมช.) ได้ต่ออายุและขยายบันทึกความเข้าใจ (Memorandum of Understanding) เพื่อกระชับความร่วมมือเชิงกลยุทธ์ในการเสริมสร้างความเข้มแข็งด้านความมั่นคงทางไซเบอร์ของประเทศไทย ข้อตกลงนี้สร้างขึ้นบนพื้นฐานของภัยคุกคามที่ซับซ้อนและมีเป้าหมายการโจมตีมากขึ้นในประเทศไทย และมุ่งสร้างกรอบการทำงานที่ครอบคลุมสำหรับการแบ่งปันข้อมูลภัยคุกคาม การสร้างขีดความสามารถด้านเทคโนโลยีในประเทศ และการสนับสนุนการฝึกอบรมด้านความมั่นคงทางไซเบอร์ภายใต้แนวคิด Kaspersky Global …