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 还必须能删去人类程序员所产生的大量冗余。它必须确保代码准确无误,程序员不会相互干涉,要能从资源库中删除错误和未使用的代码。而正是存在这一切困难,Piper不得不接手一些人类的工作。现在,Google 已经从之前的一个版本控制系统Perforce,切换到了 Piper,让机器来完成一部分工作。 这并不意味着 Google 要让机器人编写代码,但它们确实可以生成很多运行软件所需的数据和配置文件。程序员和机器人需要协调一致,维护代码健康。现在已经不只有人类在维护代码了。 让所有人受惠的 “Piper” 其他公司能否受益于同类系统呢?当然能,而且也确实有公司这样做了。Facebook 的主应用有2000万行以上代码,公司把整个事情作为一个单独的项目。还有一些公司以较小规模在做同样的事情,而当这些公司不断接近 Google 或 Facebook 的规模,也会做同样的事。但Google 和 Facebook 都在探索能够改变每个人的方法。 两家巨头正在开……
…… 剩余约 2678 字(70%)内容已隐藏 ……