在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1295|回复: 0

[转载] 黑客三人行:技术豪赌重构Facebook基础

[复制链接]
发表于 2013-6-14 20:39:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
导语:美国《连线》杂志网络版周一撰文称,为了沿用最初的PHP代码,并进一步提升网站速度,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这样的公司来完成。这些公司的目标就是创造这种“系统软件”,也就是支撑我们的电脑系统运行的核心软件。
几周内,他们便开始着手开发虚拟机。过了几个月,他们已经取得了足够的进展,获得了公司的支持。最终,Facebook又指派了7位工程师协助他们开发这个新平台,并终止了HipHop的开发。此举凸显出Facebook的黑客文化,同时也显示出该公司近年来所实现的成长。曾经在VMware从事过这类软件开发的艾利·科林斯(Eli Collnis)说:“Facebook通过解决一个极其困难的问题发展了他们的文化。但这同时也标志着该公司的转变,表明他们已经成熟起来。”
唯一的困难在于,当亚当斯、埃文斯和帕罗斯基花了两年时间开发虚拟机后,它的速度仍然落后于HipHop。


                               
登录/注册后可看大图

  Facebook工程师基斯·亚当斯


新Facebook
Facebook最近的发展在亚当斯的身上得到了集中的体现。他从布朗大学毕业后就加盟了VMware,与科林斯一起开发了最复杂的系统软件。VMware的软件可以让企业运行一种与众不同的虚拟机——将一台服务器当做多台服务器来对待——而亚当斯从事的正是这种Hypervisor的软件开发。
据科林斯透露,当英特尔第一次开发与VMware Hpervisor兼容的微处理器时,亚当斯是唯一被派往这家芯片巨头内部的VMware工程师,目的是确保两家公司的技术能够紧密配合。“由此可以看得出他对VMware的重要性。”科林斯说。
亚当斯从VMware跳槽到Facebook似乎令人不解,甚至连科林斯听到这个消息时都感到很意外。不过,这恰恰折射出Facebook的变化。与谷歌、亚马逊、雅虎甚至Twitter一样,Facebook的规模已经十分庞大,需要聘请专门的工程师来重新思考服务器的运作模式。谷歌就自己开发了全新的软硬件,从而大幅提升了全球各地的数据中心网络的速度和效率。现在,Facebook也希望采取同样的措施。
该公司聘请了阿米尔·迈克尔(Amir Michael)等人来开发服务器,还招募了拉格胡·穆尔赛(Raghu Murthy)等工程师开发软件,处理成千上万台服务器间的数据传输。当然还包括亚当斯这样的人才,他2009年正式加盟这家社交网络巨头。
亚当斯一开始为Facebook开发搜索引擎,但他后来遇到了埃文斯和帕罗斯基,他们二人都在从事最复杂的技术。埃文斯毕业于爱达荷大学生物信息学专业,他开发了一款新的电脑内存管理工具。这款名为jemalloc的工具很快被用在Mozilla火狐浏览器上。“他帮助我们将火狐的内存使用量降低了一半。”Mozilla前员工素图尔特·帕蒙特(Stuart Parmenter)说,“他绝对是我认识的最聪明的人之一。”
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-2-12 15:26 , Processed in 0.014040 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表