面对 20 亿行代码 Google 如何管理 GitHub 可以让程序员轻松共享代码和协作,它涵盖了数以百万计的项目,但没有直接容纳软件项目
Google 则更进了一步,将许多项目合并成一个
鉴于涉及很多工程师以及同时应付如此多代码的难度,能做到这一点十分地疯狂,下面就跟我一起来看看吧
Piper Google 为了同时应付全部代码,已经建立了自己的“版本掌握系统”:Piper
它在整个浩大的网络基础设施上运行,系统覆盖了 10 个不同的 Google 数据中心
这一系统不仅将全部 20 亿行代码都存放在单一的系统内,并提供给公司内部工程师调用,更给工程师提供了更多自由,可以使用及合并横跨很多项目的代码
Potvin 表示:“当你开始一个新项目,Google 已经提供了有丰富资源的图书馆,几乎一切事情都已经帮你完成
更重要的是,工程师可以在全部 Google 服务中进行代码变更和马上部署
更新一件事,就能够更新一切
” 当然使用这个系统也有限制
Potvin 表示,某些高度机密的代码,如PageRank 搜寻算法,被存储在一个单独的资源库中,只提供给特定员工
而且,由于 Android 和 Chrome 两个操作系统与那些在线服务有特别大的区分,Google 会将它们的代码存储在单独的版本掌握系统中
但在大多数状况下,Google 代码都是一个整体
机器程序员 Lambert 指出,构建和运行这样的一个系统,不仅需要知道如何做到这种事,还需要浩大的计算能力
Piper 每天需要处理大约 85TB 的数据(即85000GB),Google 的 2
5 万名工程师每天会对资源库做出 45000 次提交(修改)
与此同时,Piper 还必需能删去人类程序员所产生的大量冗余
它必需确保代码精确无误,程序员不会互相干预,要能从资源库中删除错误和未使用的代码
而正是存在这一切困