InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

Facebook是如何发布代码的

作者 Jean-Jacques Dubray 译者 丁雪丰 发布于 2011年1月27日

领域
运维 & 基础架构,
过程 & 实践,
语言 & 开发
主题
团队协作 ,
质量交付 ,
DevOps ,
分布式团队 ,
协作 ,
质量 ,
运维 ,
团队工作 ,
软件工匠 ,
云计算 ,
架构 ,
敏捷 ,
进程 ,
C++ ,
PHP ,
Facebook

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

译者 丁雪丰 是InfoQ中文站编辑,满江红翻译组核心成员,出版过《Spring攻略》、《JRuby实战》等多部译著。主要关注领域:企业级应用、海量数据计算、动态语言应用等。

同Google一样,不可避免的,最终还是会走到官僚化的地步 发表人 冯 希顺 发表于
Re: 同Google一样,不可避免的,最终还是会走到官僚化的地步 发表人 darks john 发表于
“开发者驱动的文化” 发表人 周 超 发表于
Re: “开发者驱动的文化” 发表人 Rong Pan 发表于
Re: “开发者驱动的文化” 发表人 Guo Eidson 发表于
  1. 返回顶部

    同Google一样,不可避免的,最终还是会走到官僚化的地步

    发表人 冯 希顺

    同Google一样,不可避免的,最终还是会走到官僚化的地步。
    有人分析其中的原因了吗?

  2. 返回顶部

    Re: 同Google一样,不可避免的,最终还是会走到官僚化的地步

    发表人 darks john

    资本决定一切

  3. 返回顶部

    “开发者驱动的文化”

    发表人 周 超

    一直认为,“工程师自己处理全部功能,从JavaScript到数据库代码。工程师还要负责测试、修正错误、对自己的工作进行上线后的维护”是一种混乱的开发模式,原来这是一种“开发者驱动的文化”,长见识了。

  4. 返回顶部

    Re: “开发者驱动的文化”

    发表人 Rong Pan

    这是由开发者的素质决定的 Opensource也是是一种混乱的开发模式

    不是所有的开发人员都有勇气和能力驱动产品开发 同时还需要其他的机制来保证不合格的产品及其开发者能够被发现

  5. 返回顶部

    Re: “开发者驱动的文化”

    发表人 Guo Eidson

    主要是缺乏能力以及获取能力的途径