那麼多人在github上傳代碼,不會塞滿嗎?

如題


不會。

首先,系統帶寬、用戶增長速度、項目增加的速度都是可以估算的。用戶和項目數越多,這個趨勢在統計學上就越穩定。(架構師不僅要保證不撐爆,還要保證你用的爽,這些都可以提前估算好。)

其次,在雲計算時代,一個應用的開發者其實不用過多去考慮計算能力和存儲性能的問題。雲計算廠商會提供一個平台讓你可以近乎無限的向他索取資源。Github背後的雲計算廠商Amazom就是它的堅強後盾。所以其實上一條是部分成立的,架構師只要保證他設計的架構的可伸縮性足夠好就夠了,它所需的資源不夠的時候它會自動的向雲索取。雲甚至可以做到根據負載動態調節資源分配,完全不用開發者干預。

再次,從git的工作原理上來說,它實現了一個內容定址系統並且充分和靈活的利用了壓縮和差異化存儲技術,從而在空間和時間(versions)兩個維度上減少了空間的佔用(感謝 @dwangel 指出的問題)。所以從單個庫來說,不同版本和類似的文件會進行比較並且儘可能的只存儲差異,同時在適當的時候進行壓縮。而對於多個庫來說,有相同base的庫(比如fork)可以共享部分存儲內容(這裡涉及到像github/gitlab的具體實現過程)。所以,一個看似很大提交很多的庫,存儲的內容並沒有那麼多。舉個例子,GitHub - torvalds/linux: Linux kernel source tree,這個庫我估計大約有幾個G大小。很多無知群眾出於對linus的膜拜,註冊個用戶上去就去fork,目前已經有一萬多個fork。但他們基於此的提交卻相對很少,所以這一萬個fork里,我認為99.999%的內容都是重複的。

最新的進展是,Github支持了LFS,就是針對大文件存儲的優化。而大文件和原生Git庫的一個區別就是很難做diff,並且相同hash的文件可能很少,所以Github限制了每個免費用戶的LFS存儲空間不超過1GB。為什麼,因為如果不限制的話就虧本了啊。

話說開來,我相信這裡還有很多平衡點,比如架構師如何調節免費用戶爽的程度?我認為直接影響了它免費用戶到付費用戶的轉化率。一些理論認為免費用戶中只要有1%~10%左右的付費用戶,就可以支撐整個網站/應用的運維和研發費用,足夠創屎人迎娶白富美了。所以,和遊戲的BPM一樣,通過調節用戶的體驗等各方面因素,來做到盈利的最大化。

其實說到盈利,Github上彙集了世界上最好的程序員,所以它推出的招聘服務可以理直氣壯的做到巨貴無比,450刀一個月!

所以,所以,我是手機打的。


可以用錢解決的問題都不叫問題。


任憑你提交兩再大,代碼也才佔多大點空間,人家視頻網站和網盤都還沒說話呢


YOUTUBE默默的笑了。。。。。。。。。。。。


百度和優酷塞滿了嗎


可以加硬碟,加電腦啊


貌似現在有一個很火的雲,雖然一直沒弄懂具體是什麼 只知道虛擬的,不用擔心空間


推薦閱讀:

有哪些適合學生參與的 C++,網路編程方面的開源項目?
怎樣學習遊戲引擎開源代碼提升自己?
程序員如何加入到開源項目中去?
為什麼現在大部分開源庫都是外國人寫的?
Python 有哪些一千行左右的經典練手項目?

TAG:Git | 開源 | 開源項目 | 開源社區 | GitCafe |