Facebook 是如何发布代码的

  • Jean-Jacques Dubray
  • 丁雪丰

2011 年 1 月 27 日

话题:敏捷PHPC++架构FacebookDevOps语言 & 开发文化 & 方法

Yee Lee(Skype 的一位产品经理)整理了大量笔记,详细描述了 Facebook 是如何发布代码的。Facebook 采用的是开发者驱动的文化,它由两支大的团队组成:工程师与运维。Facebook 里经理与工程师的比率平均在 1-7 到 1-10 之间。所有工程师都要经历新人训练营,期间他们修复错误,参加高级工程师的讲座。

一位工程师说到“产品经理在这里其实没什么用。”工程师可以在中期修改需求说明、重新安排项目中的工作,任何时间都可以注入新特性 [...],很明显,Facebook 的文化很包容产品管理实践,因此产品管理的角色并没有被忽略或是省略掉。

就 Yee 看来,Facebook 公司的文化就是这样,每个人都感觉对产品负有责任。要有影响力的关键是和工程经理搞好关系。

工程师自己处理全部功能,从 JavaScript 到数据库代码。工程师还要负责测试、修正错误、对自己的工作进行上线后的维护。Facebook 也有 QA,但不是正式团队。实际上,所有的变更都强制要求做代码审查。一个 Facebook 的员工补充到:

大多数工程师都有能力写出没有错误的代码,只是在大多数公司里他们没有这个动力,当有 QA 部门时,只要把简单地代码扔给它们去找错误就好了。

Facebook 采用的是每周发布,代码最终要发布到 Facebook 的 60,000+ 台服务器上,发布分为 9 个阶段,从第一阶段 6 台服务器开始。

项目都是自愿参与的,有人说服大家来实现他的想法,工程师会决定是否参与。

运维对 Facebook 的成功是至关重要的。

运维团队训练有素、受人尊敬,而且很有商业意识。他们的服务器度量指标远不止常用错误日志、负载 & 内存利用状态,还包含了用户行为。

Facebook 是当今最具可扩展性的 Web 平台之一,访问量超过 400 亿页 / 天。如果没有好的机遇和那工程师驱动的文化,这一切都是不可能的。

查看英文原文:How Facebook Ships Code

敏捷PHPC++架构FacebookDevOps语言 & 开发文化 & 方法