Google 的程式碼控管系統

之前聽說 Google 把所有 Source code 都放在同一個 Git 管理,就覺得怪怪的,每個人或第一次 git pull 的時候應該都會炸掉才是。

註:此篇文章會說明,Google 確實把 Source code 放在同一個 Repository,不過是自己做的版本控制系統,不是 Git。

這篇文章把 Google 的程式碼版本控管都做詳細說明:Why Google Stores Billions of Lines of Code in a Single Repository

Google 的程式碼控管系統

以下內容整理自此篇:谷歌的代碼管理

  1. Google 最早使用 CVS
  2. 1999年 使用 Perforce + 各種 Cache 機器
  3. 再來當 Perforce 無法滿足需求時,就自行開發 Piper
  4. 內部使用 Piper (90% 以上)
  5. Open Source / 需要外部協作的使用 Git,ex: Android / Chrome

Piper

  • Piper 使用分散式的資料庫系統 (以前叫 Bigtable,現在改名叫 Spanner)
  • 使用數據
    • 10億個文件
    • 3500萬次 Commit
    • 容量 86TB
    • 使用者幾萬人
    • 上班日每秒 50萬次 request,高峰 80萬次
    • 大部分來自 Google distributed build-and-test systems(自動 Build + 測試系統)

Google 將所有程式碼放在同一個 Repository 的簡化相依性管理

  • 程式碼、API 等 code 都在同一個 Repository 裡面,所以在每次 code 有修改,程式會自動 rebuild 相依的 code,如果有大量的失敗,系統會自動撤銷這次 commit。
  • API 的作者也可以查看別人怎麼使用他的 API

更多詳細的請回原文觀看囉~

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料