科技: 人物 企业 技术 IT业 TMT
科普: 自然 科学 科幻 宇宙 科学家
通信: 历史 技术 手机 词典 3G馆
索引: 分类 推荐 专题 热点 排行榜
互联网: 广告 营销 政务 游戏 google
新媒体: 社交 博客 学者 人物 传播学
新思想: 网站 新书 新知 新词 思想家
图书馆: 文化 商业 管理 经济 期刊
网络文化: 社会 红人 黑客 治理 亚文化
创业百科: VC 词典 指南 案例 创业史
前沿科技: 清洁 绿色 纳米 生物 环保
知识产权: 盗版 共享 学人 法规 著作
用户名: 密码: 注册 忘记密码?
    创建新词条
科技百科
  • 人气指数: 5193 次
  • 编辑次数: 1 次 历史版本
  • 更新时间: 2013-06-15
高兴
高兴
发短消息
相关词条
Facebook微信化
Facebook微信化
扎克伯格入华公关
扎克伯格入华公关
Facebook市值超通用
Facebook市值超通用
Facebook市值突破3000亿美元
Facebook市值突破3000亿美元
Facebook新闻快读
Facebook新闻快读
Facebook无人机计划
Facebook无人机计划
Facebook社交集团平台
Facebook社交集团平台
扎克伯格30岁
扎克伯格30岁
扎克伯格30项成就
扎克伯格30项成就
Facebook完善生态圈
Facebook完善生态圈
推荐词条
希拉里二度竞选
希拉里二度竞选
《互联网百科系列》
《互联网百科系列》
《黑客百科》
《黑客百科》
《网络舆情百科》
《网络舆情百科》
《网络治理百科》
《网络治理百科》
《硅谷百科》
《硅谷百科》
2017年特斯拉
2017年特斯拉
MIT黑客全纪录
MIT黑客全纪录
桑达尔·皮查伊
桑达尔·皮查伊
阿里双十一成交额
阿里双十一成交额
最新词条

热门标签

微博侠 数字营销2011年度总结 政务微博元年 2011微博十大事件 美国十大创业孵化器 盘点美国导师型创业孵化器 盘点导师型创业孵化器 TechStars 智能电视大战前夜 竞争型国企 公益型国企 2011央视经济年度人物 Rhianna Pratchett 莱恩娜·普莱契 Zynga与Facebook关系 Zynga盈利危机 2010年手机社交游戏行业分析报告 游戏奖励 主流手机游戏公司运营表现 主流手机游戏公司运营对比数据 创建游戏原型 正反馈现象 易用性设计增强游戏体验 易用性设计 《The Sims Social》社交亮 心理生理学与游戏 Kixeye Storm8 Storm8公司 女性玩家营销策略 休闲游戏的创新性 游戏运营的数据分析 社交游戏分析学常见术语 游戏运营数据解析 iPad风行美国校园 iPad终结传统教科书 游戏平衡性 成长类型及情感元素 鸿蒙国际 云骗钱 2011年政务微博报告 《2011年政务微博报告》 方正产业图谱 方正改制考 通信企业属公益型国企 善用玩家作弊行为 手机游戏传播 每用户平均收入 ARPU值 ARPU 游戏授权三面观 游戏设计所运用的化学原理 iOS应用人性化界面设计原则 硬核游戏 硬核社交游戏 生物测量法研究玩家 全球移动用户 用户研究三部曲 Tagged转型故事 Tagged Instagram火爆的3大原因 全球第四大社交网络Badoo Badoo 2011年最迅猛的20大创业公司 病毒式传播功能支持的游戏设计 病毒式传播功能 美国社交游戏虚拟商品收益 Flipboard改变阅读 盘点10大最难iPhone游戏 移动应用设计7大主流趋势 成功的设计文件十个要点 游戏设计文件 应用内置付费功能 内置付费功能 IAP功能 IAP IAP模式 游戏易用性测试 生理心理游戏评估 游戏化游戏 全美社交游戏规模 美国社交游戏市场 全球平板电脑出货量 Facebook虚拟商品收益 Facebook全球广告营收 Facebook广告营收 失败游戏设计的数宗罪名 休闲游戏设计要点 玩游戏可提高认知能力 玩游戏与认知能力 全球游戏广告 独立开发者提高工作效率的100个要点 Facebook亚洲用户 免费游戏的10种创收模式 人类大脑可下载 2012年最值得期待的20位硅谷企业家 做空中概股的幕后黑手 做空中概股幕后黑手 苹果2013营收 Playfish社交游戏架构

Facebook黑客三人行 发表评论(0) 编辑词条

目录

Facebook黑客三人行编辑本段回目录

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

  导语:美国《连线》杂志网络版周一撰文称,为了沿用最初的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

  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)说,“他绝对是我认识的最聪明的人之一。”

Facebook工程师德鲁·帕罗斯基Facebook工程师德鲁·帕罗斯基

  与此同时,帕罗斯基也从微软跳槽到Facebook。微软也是一家系统软件开发巨头,帕罗斯基在那里从事.NET runtime的开发,相当于微软C#和VB.NET编程语言的虚拟机。对于亚当斯、埃文斯和帕罗斯基来说,梦想着开发一个能够促进Facebook PHP代码执行效率的虚拟机的确合乎情理。不过,说起来容易,做起来难。

  据珀巴和另外两名参与过该项目的人透露,正是亚当斯的据理力争,才说服Facebook高层接受了虚拟机的想法,相信这是最佳的方案。他不仅固执己见,而且理据充分。“他的态度很坚决。”科林斯说,“他加盟Facebook后立刻成为最有影响力的工程师,这完全在我的意料之中。”

  最终,Facebook向该项目投入了大量资源,为亚当斯、埃文斯和帕罗斯基指派了更多帮手,包括马克·威廉姆斯(Mark Williams)、欧文·山内(Owen Yamauch)、亚拉文·梅农(Aravind Menon)、布莱特·西莫斯(Brett Simmers)、吉列尔梅·奥托尼(Guilherme Ottoni)和乔丹·德隆(Jordan DeLong),并且组建了以珀巴为首的团队。珀巴本人也是一名经验丰富的工程经理,他同样是从微软跳槽到Facebook的。

  但实际耗费的时间远超预期。亚当斯表示,之所以出现这种情况,部分源于他们低估了任务的复杂性,但HipHop的持续改进同样产生了影响。数月以来,他们始终在追求一个飘忽不定的目标。经过两年的发展,他们终于可以用虚拟机来支撑整个Facebook网站的运营,但速度仍比最初的HipHop系统慢三倍。

  当亚当斯回忆到这里时,你可以听出他的声音中所蕴含的情感。“至少对我来说,那是一段令人惊慌的日子。”他回忆说,“令我们困惑不已的是,我们无法用任何理论来解释那些额外的时间都花到哪里去了。”埃文斯和帕罗斯基也有相同的感受。“你能够看到他们所承受的压力。”他们的主管珀巴回忆说,“Facebook给他们充分的自由来发展这个项目,但前景却十分渺茫。”

  他们继续缩小速度差距,但到2012年夏天,虚拟机的速度仍然只能达到HipHop的65%。“我们就像孕妇,一心等着孩子赶快降生。”珀巴说,“但究竟会发生什么却很难预料。”

  于是,他们开始“闭关”。

  工程师“闭关”

  在高科技行业中,“闭关”可谓家常便饭。整个过程中,某个项目的开发团队都会呆在自己的房间里,直到项目开发完成。“这很常见,我们现在就在进行几次‘闭关’开发。”山姆·施莱斯(Sam Schillace)说,他曾经参与过Google Docs办公应用的开发,目前担任硅谷创业公司Box.com工程副总裁。

  珀巴把Facebook的虚拟机团队转移到18号楼一层的一个房间内,那里的工程师相对较少。据帕罗斯基回忆,他们甚至没告诉任何人他们在那里办公。“感觉就像是在沙漠里等着别人用直升机营救我们。”亚当斯回忆说,“但随后,我们决定步行走出沙漠。我们并不知道要去向何方,但必须要靠自己的力量走出去。”

  数月间,该团队一直在代码中寻找能够立刻解决速度问题的方法,亚当斯尤其焦急。但当他们搬进了“作战窑洞”时,理念却发生了变化。他们不再期待着一劳永逸的方法,而是认真开始逐一排查。

  “我们的想法是找到一些小问题,然后迅速展开实验,以确定调整代码能否起到帮助。”帕罗斯基说,“如果实验失败,可以立刻排除,然后迅速选择其他方案。”

“作战窑洞”“作战窑洞”

  在房间的一面墙上,他们将各种方案都列在了一个巨大的白板上,上面贴满了各种便笺,每个便笺都列出了一种有可能改善系统的方法,并按照所要花费的时间进行排序。如果某个便笺上的方法失败,便会被挪到一边。

  然后,他们还在白板上安装了两个显示器,实时追踪新系统与HipHop的相对速度。起初,新系统的曲线几乎没有变化。但随着组员们夜以继日的工作,五个星期后,这种细微的调整终于开始发挥作用。

  曾经参与该项目的人透露,亚当斯主要负责提出想法,埃文斯则负责编写大量代码,将这些想法付诸实践。而作为PHP专家,帕罗斯基则负责确保这些想法不会偏离轨道,超出这种编程语言的能力范围。

  逐渐地,速度曲线开始攀升,在2012年11月6日美国总统大选日当天终于超过了HipHop。那个周末,亚当斯与他当年在VMware的同事科林斯一起骑自行车出去兜风。“我至今对那天的情景记忆犹新。”科林斯说。

  为了表达对最初的PHP转换器的敬意,他们将该系统命名为“HipHop虚拟机”,简称HHVM。这套系统很快被安装到Facebook网站的底层架构中,并一直沿用至今。

  HHVM使用了所谓的“just-in-time”编辑模式,使得Facebook的PHP代码可以在服务器上执行时转换成机器语言。这与Java编程语言的运行方式一样,但Java虚拟机已经诞生多年,而且服务于整个行业的程序员。HipHop虚拟机则是专门针对Facebook开发的。不过,与Facebook基础架构中的很多元素一样,Facebook已经开放了该系统的源代码,方便所有人使用。

  “花园州”

  借助HipHop虚拟机,Facebook能够以多数程序员从未想过的速度运行PHP代码。但仍有人质疑该公司为何要如此走极端。编程专家大卫·珀雷克(David Pollack)并不认为PHP有助于Facebook提升改版速度。

  “PHP语言是针对粗制滥造的网站进行优化的。能用这样一种语言支撑像Facebook这么强大而灵活的网站,的确很了不起。”他说,“但我不认为PHP是建设网站的最佳方式,这就好比新泽西州的居民非要把自己的州称作‘花园州’。”

  就连亚当斯也承认,虽然他曾经声称动态编程语言更有效率,但在某些情况下却值得商榷。而埃文斯也承认,尽管PHP这样的语言可以在短期内提升效率,但从长期来看,却会加大开发难度。

  “静态语言有利于文件编制。”他说,“如果你用PHP这样的动态语言编写代码,等到两年后,你就会失去文件编制。”

  当然,Facebook之所以坚持使用PHP,很大程度上是因为,如果用另外一种语言重写整个网站代码,将会面临更加艰巨的任务。这就造成了所谓的“历史遗留问题”。“最终,你的规模导致你不可能彻底重写网站代码。”帕罗斯基说。

  但通过与亚当斯等人的对话,不难看出Facebook仍然偏爱PHP。尽管针对这种语言开发新的虚拟机要冒很大的风险,但Facebook不仅愿意冒风险,而且愿意冒他人不敢冒的风险。

  “苹果公司重视优雅,谷歌重视规模,微软已经老态龙钟。”施莱斯说,“但Facebook看重创新。他们未必很优雅,但却很有创造力。他们的理念是凭借纯粹的实验和速度击败所有对手。”

  很多人或许不理解这种做法,那是因为他们不理解“黑客之道”。(思远)

  更多硅谷资讯,尽在《硅谷新视野》


→如果您认为本词条还有待完善,请 编辑词条

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。
0

标签: Facebook黑客三人行

收藏到: Favorites  

同义词: 暂无同义词

关于本词条的评论 (共0条)发表评论>>

对词条发表评论

评论长度最大为200个字符。