2013 年 —— Facebook 在开源方面的工做介绍

自从 Facebook 的第一行PHP代码,第一句 MySQL 的 INSERT 语句,开源就已是咱们工程哲学中的一个重要的部分。php

如今,咱们使用、维护并为大量的主要项目作出了贡献——涉及多种领域如手机工具、大数据系统、客户端的web库、后端的运行库和基础架构,也涉及到开放计算项目,服务器和存储硬件。node

2013 是咱们开源项目具备重要意义的一年,咱们拥有大量使人自豪的新项目,为正常运行和维护它们的更新承诺,和使用它们的充满活力的社区一块儿工做的愿望。仅在咱们的Github帐户上,咱们如今已经有超过90个仓库,有超过40,000次的提交,一共被复制了15,000次。python

年底是一个很好的机会来回顾咱们投入精力的一些主要的领域,简要重述(不是详细的!)下咱们工做的一些项目列表。react

手机

咱们最自豪的开源贡献经常是咱们为了解决在 Facebook 遇到的规模和性能的挑战而开发的一些技术。android

手机也不例外:Facebook 的手机应用已是咱们产品团队今年的一个重点,咱们如今也还须要开发新的兼容性——在这种状况下,那些要迅速开发、编译、测试并发布咱们手机应用的需求变得更加的高效。开源咱们的工做,正如咱们已经作的那样,是很天然的事情,这些工具已经成为咱们手机开源做品集的核心。git

好比,在四月份,咱们发布了Buck,咱们的Android编译工具。开发者的效率对咱们来讲很重要,天然速度是Buck的首要工做:在Facebook,咱们发现它在编译咱们的应用时,比 Ant 快了超过两倍。从一开始,这个项目就愈来愈强大,并被Android社区也包括一些有名的Java项目普遍应用。github

对于iOS,咱们也有相似的瓶颈,发现咱们须要加速和自动化Xcode的手动编译过程。结果就是很是流行的 xctool ——也在四月份发布——可使工程师(更不说那些持续集成的机器)更加简单的编译和测试iOS和Mac项目。web

咱们在十月份举行的Mobile @ Scale上推出了Rebound,一个Android的物理和动画库。Will Bailey在这篇最近的博文中详细介绍了这个项目,咱们相信对真实世界的物理建模是一个有力的方式,方便在应用中建立天然、可触的动画和交互效果。apache

最后,经过发布另外一个手机工具来结束这一年,还有比这更好的方式吗?今天咱们很激动的发布Origami,一个Quartz Composer的工具集,容许设计者更快的编译和构建手机交互的原型。后端

Web

Web技术也和Facebook相关,包括手机和桌面的客户端。在前段,咱们开源的重点更多的在于支持在五月份的JSConf上发布的快速灵活的JavaScript库React

从那之后,React库——和社区的热心者——有了必定的发展。如今在编译工具上有了大量的集成,服务器端的环境(像nodeRails,和Python)和其余客户端的库——也包括一些备受瞩目的外部的部署工具如Khan Academy。团队维护了一个出色的社区概要博客,包括大量其余React项目的例子、演示和教程。

总之,咱们也想帮助提升JavaScript语言和web应用的质量。例如,Regenerator,是用来转换ECMAScript 6的yield语法到现今的浏览器的一个转换器,Huxley,在夏天由Instagram团队构建的,已经快速成为web应用中一个很是流行的可视化正则测试工具。

数据

Facebook与开源数据基础设施(open source data infrastructure)很有渊源,回顾咱们对MySQL, Cassandra,Hadoop,Hive和Hbase所作的贡献能够看出这一点。2013年也不例外,仅仅在过去的几个月里,咱们就上线了两个新的旗舰级数据项目。

首先是Presto,一个新的分布式SQL查询引擎,被设计用于高性能分析咱们用于运行交互式查询的300PB数据仓库。

咱们在夏天的Analytics @ Scale event上公布了Presto而且在上个月于咱们的blog上对它作了更多介绍。从那之后,咱们激动的看到它被许多像Airbnb和Dropbox这样的公司采用,而且从许多热情的社区获得了贡献,包括new clientsAnsible playbookdebian packaging

第二个项目是RocksDB,一个很是不同凡响的数据基础设施(data infrastructure):一个基于LevelDB的嵌入式key-value存储类库,而且为拥有多核CPU和快速闪存的环境作了优化。此外,在它上线的之后几个月里,它引发了普遍的兴趣,一些伟大的社区已经把它绑定到其余的语言上。

咱们对数据基础设施(data infrastructure)的贡献和支持拓展得很好也已经超过了咱们自己。咱们对Giraph提供了强大的支持,好比,它已经被提升到能够支持1万亿边缘的图形结构。

基础设施项目

最后,但绝对不是最不重要的,基础设施项目在咱们对开源项目的贡献中仍然是最为重要的一部分。

HHVMthe HipHop Virtual Machine,是目前为止咱们的项目资产中最为显著而且是追随人数最多的项目,而且获得了大量的来自PHP生态系统的支持。2013年有近4000次提交,而且在性能和第三方php框架的兼容性上有了长足进步,这对于社区的普遍采用来讲是很是重要的。

这个团队刚刚从封闭中走出来而且在昨天分享了他们最新进度的消息。而且咱们很激动的看到在持续不断的集成测试以后,VM被集成到Travis CI,而且为集成到其余流行的web server加入了FastCGI支持

咱们今年也为许多其余的显著的基础设施项目工做过。对于咱们本身的项目,包括pfff,咱们的代码分析工具箱,libPhenom,一个高性能的事件框架,和folly,咱们流行的C++类库。而且咱们今年为 MercurialLLVMGNU grep提供了许多显著的贡献。

Open Compute项目在2013年继续壮大,使用new work on networking hardware,新的社区和基础管理,以及整年众多的hackathons和讨论会。Facebook致力于支持项目建设而且它的目标是开发设计用于全部数据中心技术的开源服务器和数据中心 - 而且让咱们期待下个月的Open Compute Summit

2013年咱们的开源项目...

当你在使用或者为一个开源项目作出贡献时,咱们知道没有比看到它停滞不前更糟糕的了:bug 没有被修复,问题没有解决,pull requests 被忽略。关于 Facebook,咱们的目标是,经过咱们的投资组合,保持强有力的社区参与责任感。

咱们已经采起了具体的措施来达到这个目标。例如:咱们如今鼓励咱们的工程师团队在使用或者开发一个开源项目的时候,首选 Github,Bitbucket 或者 Apache 软件基金会的项目做为源码的来源。

咱们有一个新的工具链,使 repos 和咱们内部系统同步,同步代码评审过程,任务跟踪等等。同时把咱们最近检测的全部 repos 仪表化,保证他们保持健康的发展:咱们有内部的仪表盘来显示commits 的数量,pull requests 的数量和每一个团队 issues 的数量。这给咱们提供了一个早期预警系统,提醒社区中有哪些被咱们无心中忽略了。

同时咱们很自豪的宣布,咱们正在作的 Bountysource 项目帮咱们社区解决了不少问题,其中包括鼓励你们参与各类开源项目,奖励那些参与开源项目的开发者。咱们已经有了一系列的奖励计划,包括 HHVM 和 D

就在上个月,咱们宣布 Facebook Open Academy 已经把开源带到世界各地大学的计算机科学课程中。

在 2013 年,咱们也同步开始了 "@ Scale" 工程活动的项目,这个项目旨在聚集开发人员讨论和分析各类技术大规模实施面临的挑战,分享他们的解决方案和相关的开源项目。今年的活动包括 Analytics @Mobile @ 和 Data @ Scale,相关的视频已经放在了咱们的 Facebook Developers channel。 敬请期待明年更多的 @ Scale 活动。

最后,欢迎访问咱们新工程的网站 code.facebook.com!咱们尽量让您更方便的关注咱们全部的活动详细信息,在blog postseventsvideosacademic publications 和 open source projects 上均可以找到咱们全部的工程项目和活动。订阅咱们的 Facebook Page 和 open source news 能够得到更多的更新新闻。

相关文章
相关标签/搜索