您的位置:网站首页 > IT观察 > 正文

黑客三人行:技术豪赌重构Facebook基础

类别:IT观察 日期:2018-7-8 14:43:32 人气: 来源:

  Facebook工程师帕罗斯基、亚当斯和埃文斯是重构Facebook基础这项艰巨任务的核心人物

  18号楼位于Facebook门罗帕克新总部的边缘地带,绕到后面,就可以看到“作战窑洞”(The Battle Cave)的遗迹。

  今天,这里只是办公空间的一种延伸,成排的Facebook员工在这里工作。但如果你看看右边的墙上,就会发现有两个曾经放过平板显示器的金属支架。这就是乔尔珀巴(Joel Pobar)和他的同事们每天追踪进度的地方。

  珀巴领导了一支优秀的工程师团队,负责为这个全球最热门的社交网络重建基础。他们至今已经为该项目辛作了三年多,但去年秋天有几个星期,整个项目的进度停滞不前,甚至有可能永远不见天日。他们当时每天都在18号楼后面的这个房间里劳作,几乎每时每刻都在重写代码,希望自己的作品能使用在这个全球最大的网站上。

  “作战窑洞”的确名副其实。他们当时不止在努力编写代码,还在跟时间赛跑。与斯坦利库布里克(Stanley Kubrick)扮演的奇爱博士(Dr. Strangelove)的“作战室”(The War Room)一样,这里的墙上也挂着一对显示器,时时提醒他们注意工作进度,而最终的将在Facebook未来的发展中扮演至关重要的角色。

  他们后来搬出了“作战窑洞”,但那两个金属支架依然保留下来,算是一个小小的提醒,让人们不要忘却Facebook当年的那场豪赌这场技术豪赌佐证了这家成立9年的企业所秉承的独特态度,该公司创始人兼CEO马克扎克伯格(Mark Zuckerberg)将其称作“黑客之道”。

  “这是一场高风险、高回报的赌博。我们现在的规模巨大,所以要存活下去,必须要冒巨大的风险。”杰伊帕里克(Jay Parikh)说,他是负责Facebook底层硬件和软件设计及运营工作的工程副总裁。

  要理解这场豪赌,先要把时钟拨回到2003年末。如果你看过电影《社交网络》,肯定知道这样一幕:在那段寒冷的岁月里,扎克伯格在哈佛大学的寝室里开始着手开发他的社交网络。

  有关Facebook的创意源自何处,以及扎克伯格当时的目的是什么,至今仍然存在争议。但有一点是确定的:当他着手开发这个网站时,使用了一种名为PHP的编程语言。

  在扎克伯格这样的网络程序员中,PHP在2003年可谓风靡一时。这种语言使得他们能以极快的速度开发和网络软件,绕过C++和Java等更加复杂的语言。但随着时间的流逝,PHP这种快速开发的特点对Facebook和“黑客之道”的重要性也凸现出来。而正是“黑客之道”的不断激励扎克伯格和Facebook向前发展。Facebook的工程师乐于改变,而且乐于迅速改变。PHP为他们赋予了这种能力。

  这是一种所谓的“动态”编程语言,无需花时间去定义程序中使用的每个变量的特定参数。“如果你让满满一屋子的开发者编写一款应用,而且他们使用的是动态语言,他们就可以加快任务完成速度。”Facebook工程师基斯亚当斯(Keith Adams)说。

  如今,Facebook在全球拥有超过10亿的用户,专门负责该网站的开发和改版工作的工程师也超过1000人,他们仍在使用PHP。

  从某种意义上讲,这令人十分意外。尽管PHP是快速开发的理想工具,但却不太适合规模如此庞大的网站。当你用PHP,而不用C++等“静态”语言开发网站时,可以加快开发进度,但却需要使用更多的服务器来运行网站。所以,倘若用户达到10亿,光是服务器就是一笔不菲的开支。

  然而扎克伯格和他的公司却一直沿用了这种语言。他们没有像Twitter那样采用新的编程语言,而是发明了一种新的方式来大幅提升PHP的运行速度。从本质上讲,他们一直都在不断更换网站的基础,但却没有改变网站本身。这就是所谓的“黑客之道”。

  2010年,Facebook推出了一款名为HipHop的工具,可以在通过服务器执行代码前,将PHP代码转换成C++代码。与纯粹的PHP代码相比,这种模式处理的流量高出五六倍之多。

  “如果没有HipHop,我们可能已经陷入困境。我们所需要的服务器数量很可能超出了我们的能力。”Facebook工程师德鲁帕罗斯基(Drew Paroski)说,“背水一战最终起到了成效。”

  但就在那次涉险过关后不久,帕罗斯基、亚当斯和另外一名Facebook工程师詹森埃文斯(Jason Evans)决定更进一步,让Facebook永久摆脱这种困境。于是,他们三人达成了共识,决定将PHP的性能提升到更高的水平,把HipHop替换成虚拟机这种软件可以在该网站的PHP代码和服务器硬件之间产生更大的协同效应。

  他们决定放弃将PHP转换成C++的方式,转而将其直接转换成机器代码也就是服务器芯片所使用的语言而且会在代码执行过程中完成这一转换。通过实时追踪网站的运行方式,他们可以更好地了解如何将其转换成机器代码,从而最终提升速度。“HipHop似乎完全可以被击败。”亚当斯回忆说。

  这个想法很大胆,毕竟HipHop当时刚刚上线,况且开发这种虚拟机是一项规模庞大的任务,通常要由甲骨文、微软和VMware这样的公司来完成。这些公司的目标就是创造这种“系统软件”,也就是支撑我们的电脑系统运行的核心软件。

  本文由 790游戏(www.790.kim)整理发布

关键词:黑客入门教程
0
0
0
0
0
0
0
0
下一篇:没有资料

相关阅读

网友评论 ()条 查看

姓名: 验证码: 看不清楚,换一个

推荐文章更多

热门图文更多

最新文章更多

关于联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助

声明:网站数据来源于网络转载,不代表站长立场,如果侵犯了你的权益,请联系站长删除。

CopyRight 2010-2016 科技创新信息网- All Rights Reserved