每個人都知道Google是一個無比巨大的公司,它包含了搜索、郵件、地圖、文檔處理等等一大堆東西。然而讓這么多東西運行起來需要多少行代碼卻一直是個迷,不過,最近Google工程部經(jīng)理 Rachel Potvin透露出這個數(shù)字會是20億行。
對比一下,Windows作為全世界最復雜的運行在單個電腦中的軟件,從上個世紀80年代開發(fā)至今,也不過只有5000萬行代碼。Google是它的40倍。
盡管你可能會說拿Google那么多軟件的代碼和Windows單個軟件比是不公平的。但事實上,Google這20億行代碼其實存儲在一個代碼庫中,25000位Google工程師可以隨時調(diào)用它,它就像統(tǒng)一的單個軟件。
這有點像工程師們經(jīng)常使用的網(wǎng)站GitHub,他們可以在這里分享代碼,合作編程。但不同的是,GitHub是由一個個獨立的軟件項目組成,而Google的代碼庫把所有20億行代碼融合成了一個項目。
“這一定是個巨大的技術難題,”GitHub系統(tǒng)部總裁Sam Lambert說,“這個數(shù)字實在令人震驚。”
為了管理這么多代碼,Google專門建立了名叫Piper的“可視化管理系統(tǒng)”,這就是Google龐大軟件群的地基。據(jù)Potvin透露,這個系統(tǒng)存在于10個不同的數(shù)據(jù)中心。
當Google工程師決定發(fā)起一個新項目時,他就有一個巨大的工具庫可以使用。并且當工程師對其中某個代碼工具進行優(yōu)化,這個優(yōu)化立刻就會幫助到所有項目。
當然,這個工具庫并不包括Google的核心,搜索引擎部分的代碼只有少部分高權(quán)限工程師才能接觸到。除此以外,Android與Chrome兩大操作系統(tǒng)也分別有自己的“可視化管理系統(tǒng)”。
Piper作為Google 20億行代碼的管理器,它可不只單純地存儲著85TB數(shù)據(jù)。由于Google 25000名工程師每天都會作出45000次的代碼更新,這需要有人來幫助他們進行問題的排查與處理,Piper就是這個“人”。
Piper并不會寫代碼,但是它會生成許多數(shù)據(jù)及配置文件來幫助這個Google軟件的運行。“你需要共同努力來保持代碼健康,”Potvin說道,“這不只是人類的活,機器人也在幫忙。”