当我环顾 2014 年格蕾丝·霍珀女性计算机大会 招聘会 (PDF) 现场时,我在 Pinterest 的展位前停了下来,了解到开源软件在该公司中扮演着重要的角色。更棒的是,Pinterest 现在也在开源软件世界中扮演着重要的角色。
招聘会结束后,我采访了 Pinterest Growth 工程团队的技术主管 Ludo Antonov。Ludo 说,Growth 团队构建的功能、核心产品和系统直接帮助 Pinterest 可持续地增长到全球数十亿用户。在这次采访中,他解释了开源软件在该公司中扮演的角色。
Pinterest 依赖哪些开源技术?这些技术是如何用于驱动网站的?
开源技术是驱动 Pinterest 的许多关键系统的核心。仅举几例,我们的数据报告管道由 Hadoop/Hive 提供支持,我们大量依赖 MySql 和 HBase 进行数据存储,我们的缓存依赖于 Memcache 和 Redis,我们的日志收集是通过 Kafka 完成的。此外,我们的 Web 平台构建系统运行在 Node 上,我们正在使用 Twitter 的 Finagle。这只是我们使用的开源软件完整列表的一部分。
我听说 Pinterest 正在发布一些开源软件。你们开源的代码具体是什么?
我们的开源计划相对较新。我们很幸运能够向在开源软件方面拥有丰富历史的公司学习。我们成立了一个开源委员会,并在四五个月前建立了在 Pinterest 开源项目的框架,尽管我们的贡献可以追溯到几年前。从那时起,我们已经能够发布两个非常有趣的项目,Secor 和 Bender,这两个项目都位于我们的公共 GitHub 仓库 GitHub.com/Pinterest 中。
我们开源的项目是我们自己在内部大量采用并在生产中使用的项目。这有助于我们保证我们用工程品牌支持的项目具有高质量,并且在首次发布后将继续得到支持。Secor (GitHub.com/Pinterest/Secor) 为 Kafka 用户解决了一个非常重要的问题,允许将日志持久化到 S3。它驱动着我们的货币化管道,这是 Pinterest 技术栈中最关键的部分之一。Bender (GitHub.com/Pinterest/Bender) 是一个负载测试库,可以轻松编写灵活的负载测试工具。搜索团队大量使用它来发现严重的性能问题,这种类型的错误很难在生产环境之外隔离。Bender 的独特之处在于它是用 Go 编写的。
是什么启发 Pinterest 以开源许可证发布代码?
为社区做出贡献对于创新至关重要。如果没有开源软件,Pinterest 可能不会达到今天的成就。我们认为,在开源软件的帮助下诞生的成功公司对于推动社区前进至关重要。帮助其他伟大的公司崛起,利用和构建在我们构建的工具和服务之上的愿望是我们进行的每一项贡献和项目背后的动力。我们主要在 Apache 2.0 许可证 下发布新项目。我们认为,它为我们提供了衍生作品的最佳混合,兼顾了许可性和定义性。这对于公司尤其重要,这也是 Apache 2.0 从其他优秀的许可证选项中脱颖而出的原因。
是否有其他组织/开发人员与您合作开发代码?
我们最近开源的项目 Secor 已被 Airbnb 采用,他们做出了许多伟大的贡献,这些贡献已返回到我们的代码库并进入我们的生产环境。Uber 也正在为该项目做出非常重要的贡献。可以在以下网址找到完整的贡献者列表:https://github.com/pinterest/secor/graphs/contributors。我们正在开发的即将到来的项目中的一些项目是其他与我们保持联系的公司非常感兴趣采用的项目。我们还不断为我们在内部使用的项目做出贡献。
结论
代码并不是 Pinterest 为开源贡献的唯一东西。Tracy Chou 和其他 Pinterest 工程师 帮助领导了关于科技职场多元化的为期一年的讨论 (数字在哪里?),他们最近在 GitHub 上发布了他们的发现。你还以为 Pinterest 只是一个充满纸杯蛋糕食谱和手工创意网站。
在 开源社区博客 上查看 Rikki 在 Grace Hopper Celebration '14 上的更多报告:GHC '14 以开源方式开幕、GHC '14:OpenHatch 开源研讨会和 GitHub 入门 以及 GHC '14:推进居家办公选项。
评论已关闭。