พื้นที่เก็บข้อมูลของ Google เป็นอย่างไร


62

ฉันได้ยินมาว่า Google มีที่เก็บข้อมูลส่วนตัวขนาดใหญ่ (ภายใน) ของรหัสทั้งหมดและพนักงานของพวกเขาสามารถเข้าถึงได้เพื่อที่ว่าเมื่อพวกเขากำลังพัฒนาสิ่งที่พวกเขาไม่จำเป็นต้องบูรณาการล้อ ฉันต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับมัน!

มีใครที่นี่จาก Google ที่สามารถอธิบายได้ในรายละเอียดเพิ่มเติมอีกเล็กน้อยหรือคุณรู้เพิ่มเติมเกี่ยวกับมันบ้างไหม? ฉันสนใจที่จะรู้ว่าส่วนใหญ่เกี่ยวกับวิธีการจัดระเบียบและวิธีที่ทำให้พนักงานสามารถค้นหาบางสิ่งบางอย่างในฐานข้อมูลขนาดยักษ์ได้อย่างง่ายดาย


2
บริษัท อื่น ๆ ที่รายงานว่าใช้ "monorepo" คือ Facebook และ Twitter ชอบที่จะได้ยินโดยตรงจากผู้ที่มีประสบการณ์
Dennis

คำตอบ:


37

นี่คือวิดีโออธิบายวิธีการจัดระเบียบ: การพัฒนาด้วยความเร็วและขนาดของ Google

Ashish Kumar นำเสนอวิธีที่ Google จัดการเพื่อรักษาซอร์สโค้ดของทุกโครงการในปี 2000 ใน trunk code เดี่ยวที่ประกอบด้วยบรรทัดโค้ดหลายร้อยล้านบรรทัดโดยมีนักพัฒนาซอฟต์แวร์กว่า 5,000 คนเข้าถึงที่เก็บเดียวกัน


8
ฉันรู้ว่าคำตอบอื่นมี upvotes มากกว่า แต่วิดีโอนี้มีข้อมูลทั้งหมดจากคำตอบอื่นแล้วบางส่วน หากคุณ (ผู้อ่าน) ต้องการสรุปให้อ่านคำตอบของ Chris ไม่เช่นนั้นถ้าคุณมีเวลาหนึ่งชั่วโมงในการรับชมวิดีโอนี้!
Ricket

63

ให้มากที่สุด Google ใช้อย่างเลี่ยงไม่พ้นการติดตั้ง อย่างไรก็ตามมีเครื่องมือภายในสำหรับรับเครื่องมืออื่น ๆ เช่น git เพื่อทำงานด้านบนของมัน (วิธีที่พวกเขาทำสิ่งนี้โดยไม่รู้ตัว) โครงการโอเพ่นซอร์สขนาดใหญ่เช่นAndroidและChromiumมีที่เก็บแยกต่างหาก

สร้างขึ้นที่ด้านบนของ Perforce เป็นแอพภายในตัวเอกมากมาย ตัวอย่างเช่นมีเครื่องมือในการสร้างการทดสอบและการตรวจสอบโค้ดโดยไม่ต้องใช้เวทมนต์

ส่วนหนึ่งเป็นเพราะ 'ความมหัศจรรย์' และวัฒนธรรมการทดสอบ Google ไม่ได้ใช้การแยกสาขาจริงๆ ทุกคนเช็คอินที่ 'main' สำหรับโครงการใด ๆ ที่คุณสามารถเห็นแหล่งที่มาสร้างและเรียกใช้การทดสอบหน่วยโดยไม่ต้องมีความรู้เฉพาะ นี่มันใหญ่มาก เมื่อฉันอยู่ที่ Microsoft แต่ละผลิตภัณฑ์ต้องการการเสียสละของสัตว์ที่แตกต่างกันเพื่อสร้างและใช้การทดสอบของพวกเขาจะหมดคำถาม

นอกจากนี้ Google ยังมีคู่มือสไตล์ทั่วทั้ง บริษัทสำหรับภาษาหลักที่เราใช้ ถ้าคุณสามารถเข้าถึงซอร์สโค้ดของทีมอื่นได้จะเป็นอย่างไรหากการฟอร์แมตนั้นไม่มีความหมายทั้งหมด!

ในฐานะที่เป็นเพื่อการค้นหาที่คุณอาจจะคุ้นเคยกับการค้นหาของ Google รหัส มีรุ่นพิเศษพร้อมด้วยเครื่องมือค้นหารหัสลับสุดยอดอื่น ๆที่ทำให้การนำทางรหัสง่ายขึ้นมาก

กล่าวโดยสรุป Google มีวัฒนธรรมเป็นศูนย์กลางทางวิศวกรรมซึ่งเข้าใจถึงคุณค่าของเครื่องมือและผลิตภาพของนักพัฒนา


1
ฉันใช้คู่มือสไตล์ที่คุณอ้างอิงมานานหลายปีแล้วมันยอดเยี่ยมมาก! แต่นั่นไม่ใช่สำหรับโครงการโอเพนซอร์สที่มาจาก Google หรือ มีแนวทางแตกต่างกันสำหรับโครงการภายในหรือไม่
Dennis

1
เครื่องมือการค้นหารหัส "ลับสุดยอด" กำลังทำโอเพนซอร์สมากกว่าที่github.com/google/kythe - เป็นชุดย่อยและไม่มี UI (อีกต่อไปตัวอย่างหนึ่งไม่มีการบำรุงรักษาอีกต่อไป) แต่ฉันคิดว่า เป้าหมายคือทำให้ Kythe สมบูรณ์เหมือนเครื่องมือภายในของพวกเขา
mmlac

3

มันใหญ่มาก:

(ณ วันที่มกราคม 2015)

  • จำนวนไฟล์ทั้งหมด: 1 พันล้าน
  • จำนวนไฟล์ต้นฉบับ: 9 ล้าน
  • สายของรหัส: 2 พันล้าน
  • ประวัติความลึก: 35 ล้านสัญญา
  • ขนาดของเนื้อหา: 86 เทราไบต์
  • ความมุ่งมั่นต่อวันทำงาน: 45,000

พวกเขาใช้เครื่องมือภายในที่เรียกว่า Piper ซึ่งพึ่งพาโครงสร้างพื้นฐานของ google

แหล่งที่มา: ทำไม Google จึงเก็บรหัสพันล้านรายการไว้ในที่เก็บเดียว


@CodesInChaos ข้อมูลนี้จะนำมาจากวิดีโอในสไลด์ที่ 03:22 สไลด์ประกอบด้วยคำอธิบายเพิ่มเติมเกี่ยวกับวิธีคำนวณตัวเลขเหล่านั้น
Benjamin Crouzier

รอนั่นจะไม่ได้หมายความว่าเฉลี่ย 2 บรรทัดต่อไฟล์หรือไม่
Hashim
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.