【轉】Google如何管理20億行代碼

《Wired》今天一篇文章談到Google的代碼量已達到20億行,並簡單介紹了Google是如何管理這些代碼的。

這20億行代碼,涉及搜索、Gmail、文檔、地圖、YouTube、Google+等絕大多數Google提供的服務,存儲在“一個”代碼倉庫中,兩萬五千名Google工程師都可以訪問——這可能是世界上最大的單一代碼庫。只有幾個例外:涉及機要信息的代碼,如PageRank算法,或者相對獨立的項目,如Android和Chrome系統儲存在其他單獨代碼庫中。工程師之間可以方便的共享代碼——這意味着所有新項目和功能都能利用之前已經寫好的代碼——20億行已經幾乎無所不包了,而且一處改進,所有相關項目都能受益。

20億行是什麼概念?14年前,Windows XP發佈時,包含4500萬行代碼——Google的代碼數量,約爲40多個XP。

Google使用一個稱爲Piper的系統管理這個巨大的代碼倉庫——這套系統運行在10個不同的數據中心之上,管理的數據量約爲85TB,Google工程師每天會進行45000次commit。這又是什麼概念?相當於Google工程師每週就重寫了一次Linux。

不僅如此,這套從前任Perforce演化而來的系統,還要幫助人類工程師打理各種瑣碎的代碼修改和提交工作,例如檢查Bug和清理用不到的代碼,生成必要的配置文件等等——維護代碼庫健康的工作不僅是工程師在做。

此外,Google正與Facebook合作,計劃將類似的強大代碼管理工具提供給外界,讓公司之外的所有工程師都能受益。不過這套系統並非基於Git,而是Mercurial。當這套系統公之於衆時,GitHub會受什麼影響?

其實不僅Google的代碼龐大複雜至此,微軟也毫不遜色。Hacker News上就有微軟工程師講到了自己瞭解的數據:僅Windows build system每天在微軟內部網絡產生的交換數據量,就相當於Netflix所有電影總和的數倍!
原文地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章