面对20亿行代码,Google如何管理?

澳门新葡亰游戏网址 1

她表示,运行所有 Google 互联网服务的软件,包括了 Google
搜索、Gmail、Google地图等,大约有20亿行代码。相比之下,从20世纪80年代就开始开发的
Windows
操作系统——有史以来为单一计算机所开发的最复杂的软件工具之一,只有5000万行代码。

面对“Google
这家公司有多大?”这种问题,你可能会用收入、股票价格、客户数量或者是形而上学的影响力来回答这个问题。但是,这还不是全部。Google
作为全球最大的互联网公司,我们当然可以用“互联网思维”来思考这个问题,比如用代码数量来衡量它。来自于
Google 的 Rachel
Potvin,在周一举办的硅谷工程会议上给了我们一个可以参考的答案。

所以简单一刀切的话,建立 Google 相当于建40个 Windows 系统。

澳门新葡亰游戏网址 2

当然,5000万行代码驱动的仅仅是 Windows 系统本身,而20亿行代码则是 Google
的全部。Google
的业务覆盖范围及其广,包含了搜索、地图、文档、社交、日历、邮件、视频,以及其他互联网服务,所有20亿行代码都存放在代码资源库中,提供给全部2.5万名
Google 工程师调用。在公司内部,Google
对待它的代码就像对待一个巨大的操作系统。Potvin
表示:“虽然不能证明这一点,但我认为这是全球最大的单一信息库。”

她表示,运行所有 Google 互联网服务的软件,包括了 Google
搜索、Gmail、Google
地图等,大约有20亿行代码。相比之下,从20世纪80年代就开始开发的 Windows
操作系统——有史以来为单一计算机所开发的最复杂的软件工具之一,只有5000万行代码。

Google
是一个极端例子,但它展示了如今的软件在互联网时代有多复杂,以及我们如何改变使用的编码工具和理念,以适应这种复杂性。Google
的巨大资源库仅适用于内部程序员,但在某种程度上,它已经类似于Github——一个向所有公众开放的源代码库,工程师可以通过互联网共享代码。我们正在走向一个需要经常大规模合作代码的世界,也只有这样才能跟上现代互联网服务的发展。

所以简单一刀切的话,建立 Google 相当于建40个 Windows 系统。

GitHub 就表示:“Google
拥有2.5万名工程师,他们可以与内部拥有各种不同技能的人分享代码。但是小公司可以使用
GitHub 和开源,得到同样的优势。”

当然,5000万行代码驱动的仅仅是 Windows 系统本身,而20亿行代码则是 Google
的全部。Google
的业务覆盖范围及其广,包含了搜索、地图、文档、社交、日历、邮件、视频,以及其他互联网服务,所有20亿行代码都存放在代码资源库中,提供给全部2.5
万名 Google 工程师调用。在公司内部,Google
对待它的代码就像对待一个巨大的操作系统。Potvin
表示:“虽然不能证明这一点,但我认为这是全球最大的单一信息库。”

澳门新葡亰游戏网址,另一方面,建立并运行一个20亿行代码的庞大系统,并不简单。Lambert
表示:“这是一项技术挑战,也是一个巨大壮举,数字相当惊人。”

Google
是一个极端例子,但它展示了如今的软件在互联网时代有多复杂,以及我们如何改变使用的编码工具和理念,以适应这种复杂性。Google
的巨大资源库仅适用于内部程序员,但在某种程度上,它已经类似于Github——一个向所有公众开放的源代码库,工程师可以通过互联网共享代码。我们正在
走向一个需要经常大规模合作代码的世界,也只有这样才能跟上现代互联网服务的发展。

GitHub
可以让程序员轻松共享代码和协作,它涵盖了数以百万计的项目,但没有直接容纳软件项目。Google
则更进了一步,将很多项目合并成一个。鉴于涉及许多工程师以及同时应付如此多代码的难度,能做到这一点十分地疯狂。

GitHub 就表示:“Google
拥有2.5万名工程师,他们可以与内部拥有各种不同技能的人分享代码。但是小公司可以使用
GitHub 和开源,得到同样的优势。”

Piper

另一方面,建立并运行一个20亿行代码的庞大系统,并不简单。Lambert
表示:“这是一项技术挑战,也是一个巨大壮举,数字相当惊人。”

Google
为了同时应付所有代码,已经建立了自己的“版本控制系统”:Piper。它在整个庞大的网络基础设施上运行,系统覆盖了10个不同的
Google 数据中心。

GitHub
可以让程序员轻松共享代码和协作,它涵盖了数以百万计的项目,但没有直接容纳软件项目。Google
则更进了一步,将很多项目合并成一个。鉴于涉及许多工程师以及同时应付如此多代码的难度,能做到这一点十分地疯狂。

这一系统不仅将所有20亿行代码都存放在单一的系统内,并提供给公司内部工程师调用,更给工程师提供了更多自由,可以使用及合并横跨无数项目的代码。Potvin
表示:“当你开始一个新项目,Google
已经提供了有丰富资源的图书馆,几乎一切事情都已经帮你完成。更重要的是,工程师可以在所有
Google 服务中进行代码变更和立即部署。更新一件事,就能够更新一切。”

Piper

网站地图xml地图