Twitter 开源内幕

还没有读者喜欢这篇文章。
Twitter birds

Opensource.com

在对 Chris Aniszczyk(Twitter 开源主管)的独家采访中,他解释了公司工程师如何在内部使用开源技术,并为各种社区项目做出贡献。在 Chris 的演讲All Things Open 大会)中了解更多关于 Twitter 开源的信息。

作为 Twitter 的开源主管,您的具体工作是什么?

本质上,我的工作是让 Twitter 工程师在开源软件、与开源社区合作或在标准组织等机构中工作时更轻松。四年前,我有一个绝佳的机会加入 Twitter,从零开始创建一个开源项目(@TwitterOSS)。我们的主要目标之一是确保作为一家公司,我们是优秀的开源公民——从尊重开源许可证的基础知识,到让工程师更容易开源代码,并确保我们回馈我们依赖的开源项目。此外,我们也希望认真投入工程时间到开源项目和社区。(您可以查看这篇博客文章了解更多信息。)

在我看来,像 Twitter、Google、Facebook、SamsungWalmart 甚至像 Box 这样的初创公司都在创建开源办公室,以最大限度地发挥他们参与开源的价值,这是一种日益增长的趋势。 甚至微软现在也有一个开源办公室。

Twitter 的开源开发人员目前在做什么?

Twitter 大约有数千名工程师在公司内部从事各种技术工作,从 Linux 内核到前端 Javascript 库。很难特别指出什么,但最近我们已经将 Apache Parquet 从 Apache 孵化器中毕业,并且正在努力为 Apache Mesos 项目添加 有状态服务原语,以便我们可以在 Mesos 集群中运行 MySQL。

我可以永远谈论这个话题,但我强烈建议您访问我们的 开源网站 并查看我们的 GitHub 组织,了解我们正在做的事情。

开源如何在 Twitter 文化中扮演角色?

自 Twitter 早期以来,开源一直是 工程文化 中普遍存在的一部分。您发送和接收的每条推文都触及了大量的 开源 软件,从我们基于 Linux 的基础设施到您的网络浏览器或移动设备。 此外,我们还为工程师提供开源培训,当他们开始工作时,以确保他们了解我们在与开源社区互动时的流程和文化。

Twitter 是建立在开源软件之上的,但是 Twitter 回馈社区的开源解决方案有哪些例子?

哦,天哪,我为之骄傲的项目太多了。首先,我真的为我们通过 开源技术(如 Apache Mesos 和 Aurora)分享我们在扩展基础设施方面的专业知识而感到自豪。在过去的几年里,Mesos 已经成长为 Apache 基金会的一个完全独立的开源项目,现在为 Twitter、Netflix、Airbnb、Cisco、Paypal、Uber 甚至 Apple 等一些最大规模的公司运行基础设施。 例如,每次您与 iPhone 上的 Siri 交谈时,您都在与由 Mesos 支持的基础设施对话。

其次,Finagle 是我们用来编写高度并发的分布式服务的 JVM 库,这些服务为 Twitter 时间线、私信等提供支持。 通过分享我们通过 Finagle 构建和运行服务的方式,我们很高兴看到像 Foursquare、Nest、NYTimes、Pinterest、SoundCloud 等公司采用我们多年来学到的经验教训。

我引以为傲的另一个项目是 twemproxy,我认为它通常被低估了。 本质上,twemproxy 是 memcached 和 redis 集群的快速、轻量级代理。 它有助于扩展和支持世界上一些最大的缓存集群,从 Twitter 到 Wikimedia、Pinterest、Yahoo 和 更多

最后,我真的为流行的 Bootstrap 前端工具包感到自豪,它起源于 Twitter。 Bootstrap 项目发展壮大,以至于我们最终将其释放,并在 v3 版本中使其成为社区运行的 GitHub 组织项目。

在您的演讲中,您将讨论从创建 Twitter 开源办公室中吸取的教训。 在不透露您全部演讲内容的情况下,您学到了哪些教训?

  1. 社区不是免费的: 有一种普遍的看法,即如果您开源了一些东西,人们就会出现并为您的开源项目贡献神奇的补丁。 虽然我希望这是真的,但“如果你建造它,他们就会来”的座右铭并不真正适用于大多数开源项目。 您必须投入社区建设的艰苦工作,才能看到长期的增长。

    在 Twitter,我们的开源项目办公室有一个由开发者倡导者组成的团队,专注于发展开源生态系统,这对我们确保它们蓬勃发展并朝着对我们有利的方向发展非常重要。 这包括使贡献更容易,并确保贡献者感到受欢迎。 最终,更快乐的贡献者会贡献更多。

  2. 多样性是生活的调味品;从一开始就合作: 一般来说,在提交者方面更加多样化的项目,从一开始就更有可能获得长期成功。 在 Twitter,除非项目已经在生产环境中运行并且从一开始就签署了合作者,否则我们不倾向于开源项目。 我们所说的从一开始就签署合作者是指我们在开源任何重大项目之前与行业内的同行交谈,并尽最大努力在开始时让多个参与方加入。

    例如,我们启动了 Parquet 项目,并在完全开源该项目之前与 Cloudera 合作。 从一开始就与合作者一起启动可以帮助建立势头。 在几年内,Parquet 拥有来自 10 多个组织的 60 多名贡献者,并已成功从 Apache 孵化器毕业成为一个成熟的项目。

假设您正在组织一个“Twitter 开源”知识竞赛。 您会包含哪三个 Twitter 知识问答题和答案?

问: 哪个 Twitter 开源项目帮助维基百科的缓存层提供支持?

答: Twemproxy

问: 当您在 iPhone 上与 Apple 的 Siri 对话时,哪个起源于 Twitter 的开源项目帮助为其基础设施提供支持?

答: Mesos

问: 在 GitHub 上,哪个开源项目在综合星标和 fork 方面最受欢迎? (提示:这是一个起源于 Twitter 的前端项目。)

答: Bootstrap

如果您阅读了我的采访,您应该能够回答所有三个问题。

All Things Open 大会
演讲者访谈

本文是 All Things Open 大会演讲者访谈 系列的一部分。 All Things Open 是一项探索企业中的开源、开放技术和开放网络的会议.

User profile image.
Rikki Endsley 是 Red Hat 的开发者项目管理编辑,也是 Opensource.com 的前社区架构师和编辑。

贡献者

1 条评论

一篇很棒的文章,也是在学校推广开源采用和编码机会的另一个理由。 我在 Twitter 上与我的一些教育科技朋友分享了这篇文章。

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.