# 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)

![](img/9e91ed9216d56753c708d226148e5656.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 可以承受破坏-“没事就可以了”-因为它并不重要！