🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Facebook 的网络秘密 > 原文: [http://highscalability.com/blog/2013/4/23/facebook-secrets-of-web-performance.html](http://highscalability.com/blog/2013/4/23/facebook-secrets-of-web-performance.html) ![](https://img.kancloud.cn/41/a3/41a3a2985b435ff0d43beb5876caf1a3_239x79.png) *这是我为[边界博客](http://boundary.com/blog/)所做的采访[的第 1 部分的转贴。](http://boundary.com/blog/2013/04/22/todd-hoff-on-facebook-secrets-of-web-performance/)* **边界:** **如果要在网络上管理最大的大数据项目,Facebook 的秘诀是什么?** **Hoff:**我们从前几位工程总监的 Facebook 内幕人物 [Aditya Agarwal](http://highscalability.com/blog/2010/6/10/the-four-meta-secrets-of-scaling-at-facebook.html) 和 [Robert Johnson](http://highscalability.com/blog/2010/8/2/7-scaling-strategies-facebook-used-to-grow-to-500-million-us.html) 了解到了他们的秘密: * **缩放需要迭代**。 解决方案通常从一开始就起作用,但是您必须随时进行修改。 例如,PHP 最初很容易使用,但是当您拥有成千上万的 Web 服务器时,不是一个好的选择。 * **缩放需要迭代**。 你可以再说一遍。 * **不要过度设计**。 在扩展系统时,只需使用所需的内容即可。 找出您需要在解决方案上进行迭代,优化的地方或自己完全构建堆栈的一部分的位置。 * **为作业**选择合适的工具。 意识到任何选择都会带来开销。 如果您确实需要使用 Python,请继续,我们将尽力帮助您成功。 但是,有了这种选择,通常会在部署,监视,操作等方面产生开销。 * **获得正确的文化。** 在内部建立环境,以促进首先构建正确的事物并根据需要进行修复。 不要担心创新,大事,大胆思考以及在建造第一件东西之后需要建造的下一件东西。 隔离您重视并希望保留的文化部分。 它不会自动发生。 * **快速移动**。 首先进入市场。 没事就可以了 例如,Facebook 在由三个人开发的 HipHop 上运行其整个 Web 层。 这是一个冒险的策略。 它会定期关闭网站(内存不足,无限循环),但他们发现如何使网站正常运作,因此有很大的潜在收益。 * **授权小型团队**。 小团队可以做伟大的事情。 Facebook 搜索,照片,聊天和 HipHop 都是小团队的结果。 找到合适的人,赋予他们权力,让他们工作。 * **人们最重要**。 是构建和运行系统的人。 最好的扩展工具是能够处理任何事情的工程和运营团队。 * **水平缩放**。 要处理指数级增长的流量,需要在许多计算机之间任意分配负载。 * **测量所有内容**。 生产是真正有用的数据的来源。 测量系统和应用程序级别的统计信息,以了解正在发生的事情。 * **赋予团队控制权和责任感**。 责任需要控制。 如果团队负责某件事,他们也必须控制它。 所有这些原则共同作用,形成一个自我强化的良性循环。 除非您有一支拥有控制和责任感的小型团队,否则您将无法快速前进。 除非您将这些更改投入生产并衡量结果,否则您将无法知道更改的工作方式。 除非人们对移出工作代码负责,否则您无法将代码移入生产环境。 除非您弄清楚如何水平缩放,快速移动并测量所有内容,否则您将无法处理磅秤,所有这些都取决于好人。 但是,以上并非全部。 机会的作用并不那么明显。 我们经常看到的一种模式是,处于领先地位的公司先于其他所有人看到问题,因此他们首先解决了所有其他问题。 我们看到来自 Google,Netflix,Twitter 和 Facebook 等技术热点的创新浪潮。 **边界:您认为其他哪些主要网站在按需扩展,保持用户满意和高响应时间方面做得很好?** **Hoff:**我们的行业很棒。 人们总是愿意分享他们的经验,分享他们的代码并谈论有效的方法。 我的妻子是一名税务会计师,他们肯定没有相同的氛围,这让人有点难过。 在这个领域有很多令人难以置信的聪明和热情的人,总的质量只会随着越来越多的人谈论如何制造好东西而提高。 对我来说,显而易见的是,拥有一个优质的网站和共享的意愿是相互联系的。 我可以列出许多公司属于此类,但这些公司比较突出:Twitter,Etsy,Facebook,Google,Netflix,Amazon 和 StackExchange。 其他一些重要的贡献者包括:Airbnb,Tumblr,Instagram,TripAdvisor,Heroku,Prismatic,37signals,Pinterest 和 Yahoo。 从字面上可以提到其他数百个,但是这些公司为推动 Web 性能的发展不断做出了积极的贡献。 不过,我已经很难过,因为我知道我想念一些。 我不得不说,这篇文章中的建议是完全没有价值的! 真是浪费时间! 是的-太棒了 完美主义是一个大问题,它使许多组织瘫痪。 而且我喜欢,如果他们对现有技术不满意,他们会无所畏惧地自行构建堆栈。 IT 界流传的最糟糕的城市神话之一是,如果存在与您所做的工作遥不可及的事情,那么您应该毫无疑问地使用它。 大人物没有遵循这个神话-这是他们是大人物的原因之一。 :) 谢谢你! 没错,凯尔(Kyle),最糟糕的神话是:“不要发明轮子”! 有时您不得不一次又一次地重新发明轮子:) Facebook 可以承受破坏-“没事就可以了”-因为它并不重要!