Twitter 背后的开源技术

还没有读者喜欢这个。
Twitter birds

Opensource.com

如果没有开源,Twitter 将不复存在。您发送和接收的每条推文都会在计算机和移动设备之间的传输过程中接触到开源软件。我们很好奇 Twitter 使用了多少开源技术。 除此之外,我们还想了解开源如何影响 Twitter, Inc. 的文化。

我们邀请了 Twitter 的开源经理 Chris Aniszczyk 分享公司的开源故事。Aniszczyk 将在本月 29 日至 31 日在加利福尼亚州圣地亚哥举行的 LinuxCon 大会上发表主题演讲。他的主题是:推文背后的开源技术。

了解 Aniszczyk(在 Twitter 上 @cra)对开源和 Twitter 的开放文化的看法。

请您先预览一下您即将到来的 LinuxCon 主题演讲“推文背后的开源技术”。

从表面上看,Twitter 是一项简单的实时服务,其单位货币是 140 个字符的消息,称为推文。仔细观察就会发现运行这项服务的复杂性:每天发送超过 4 亿条推文。在这个规模下,您必须处理一些有趣的实时工程问题。在主题演讲中,我将深入了解我们如何应对这些挑战,以及为什么我们倾向于使用开源软件来做到这一点。演讲的背景将围绕追踪推文从我们的后端到前端的生命周期。最后,我希望听众能够更好地了解开源技术,以及当一条不起眼的推文出现在他们的时间轴上时幕后发生的事情。

推文的幕后使用了多少开源软件?

我们使用了大量的开源软件。在我看来,这是不费吹灰之力的,因为开源软件使我们能够自定义和调整代码,以满足我们快速发展的工程需求,随着我们的服务和社区的增长。当我们在 Twitter 计划新的工程项目时,我们总是确保根据开源产品的能力来衡量我们的需求,并且在有意义的情况下更喜欢使用开源软件。通过这种方法,Twitter 的大部分现在都建立在开源软件之上,因此,开源之道现在已成为我们文化中普遍存在的一部分。最重要的是,开源社区内部存在一个积极的教学和学习循环,我们从中受益。我们也在 GitHub 上分享了我们的大部分代码。

以下是我们使用的一些开源软件的具体示例

  • MySQL 大量用于推文的主要存储;我们公开开发我们的 MySQL 分支,以便与上游社区协作。
  • CassandraHadoopLucenePig 和各种 Apache 项目在我们的基础设施中使用,为分析和搜索等服务提供支持。我们还为这些项目做出贡献,并赞助了 Apache 软件基金会。
  • Memcached 在我们的缓存基础设施中大量使用,以扩展我们不断增长的流量;我们最近开源了 Twemcache,它在很大程度上受到了 Memcached 代码库的启发。

最重要的是,我们也生产各种开源软件

  • Iago 是我们创建的负载生成器,旨在帮助我们在服务遇到生产流量之前对其进行测试。Iago 为我们提供了独特适用于 Twitter 环境的功能,以及我们需要测试服务的精确程度。
  • Zipkin 是我们创建的分布式跟踪系统,旨在帮助我们收集管理 Twitter API 请求所涉及的所有不同服务的计时数据。
  • Scalding 是一个 Scala 库,它利用与 Scala 和 JVM 的内置集成,使在 Hadoop 中编写 MapReduce 作业变得容易。

我还想指出 Apache Mesos,它使构建分布式应用程序和共享数据中心资源变得更加容易。我们在 Twitter 内部使用它来执行从 Hadoop 之上的分析作业到运行 Rails 应用程序的所有操作。它确实是 Twitter 的基石技术之一,支撑着一切。您应该查看此演示文稿以获取更多信息。

在 Twitter 工作是什么感觉?文化是否受到开源的影响?

如果您在开源社区中花费过任何时间,您就会意识到信息的公开交流会对世界产生积极影响。在 Twitter,我们每天都牢记这一原则;每位员工都有发言权和创新机会。我们每周都会举行喧闹的全员会议,在会上提出并回答难题,因为我们从内到外都保持着开放和信任的文化。此外,我们大约在一年前成立了一个开源办公室,以支持对我们重要的各种开源组织。我们感谢开源社区的贡献,并希望保持我们健康、互惠的关系。

在工程文化方面,Twitter 是一个实时和事件驱动的问题,我们塑造我们的工程文化以使其成为实时和事件驱动的。我们希望拥有一个敏捷、反应迅速且快节奏的工程文化,可以随着我们公司的发展而扩展。每天发送超过 4 亿条推文,这需要传递大量的推文。我们还会举办季度黑客周,员工可以在一周内从事他们真正热衷的各种项目,但这些项目不一定与他们的日常职责相关。有时,黑客周会产生疯狂的视频

您见过的最有趣的 Twitter 用例是什么?

太多了,我们有一个专门的网站来展示一些最有趣的用例,称为 Twitter Stories。我最喜欢的故事之一是关于 Chris Strouth 的,他发推文说“该死,我需要一个肾脏”,然后就得到了一个。就更及时的事情而言,马尼拉发生了一些严重的洪水,菲律宾人将 Twitter 用作生命线。我很荣幸在一家提供对世界产生如此积极影响的服务的公司工作

您如何在日常生活中使用开源之道?

如果您不知道,我去年帮助创建了 Twitter 的开源办公室 (@TwitterOSS),我的日常工作包括运营它。这有很多工作,但我认为自己很幸运,因为我可以帮助通过向他们传授开源之道来塑造 Twitter 的工程文化。在我的业余时间,我喜欢在 GitHub 上分享我所做的任何黑客行为,在我看来,GitHub 只是一个了不起的地方,并且为开源社区做了很多事情。

在之前的生活中,我深入参与了 Eclipse 基金会,并领导了一个插件开发项目。我仍然是 Eclipse 董事会的董事,代表着 1000 多名提交者,并且偶尔会向为 Eclipse 社区提供 Git 支持的 EGit 和 JGit 项目提交代码。

最后,很高兴看到开源在过去十年中取得了多大的进步,我很高兴成为其中的一员。仍然有很多工作要做,如果您有兴趣帮助 Twitter 的开源使命,我们一直在招聘

Avatar
Jason Hibbets 是 Red Hat 数字社区团队的社区主管。他与 Enable Architect、Enable Sysadmin、Enterprisers Project 和 Opensource.com 社区出版物合作。

6 条评论

以下是一些以其他语言继续对话的帖子
<ul>
<li>在 www.golem.de 上 - <a href="http://www.golem.de/news/social-media-soviel-open-source-software-setzt-twitter-ein-1208-93834.html" target="blank">So viel Open-Source-Software setzt Twitter ein</a></li>
<li>在 www.pro-linux.de 上 - <a href="http://www.pro-linux.de/news/1/18739/die-open-source-technik-hinter-twitter.html" target="blank">Die Open-Source-Technik hinter Twitter</a></li>
</ul>

很棒的文章!值得注意的是,Twitter 的开发者平台 Dev.twitter.com 是用 Drupal 构建的。

是的!我想我曾在哪里听到过。这可能是未来帖子的潜力。Drupal 为 Twitter 开发网站提供支持!
Jason

的确,我们为 dev.twitter.com 和一些内部工具使用了 Drupal。我们实际上正在寻求扩展我们对 Drupal 的使用,并且正在招聘。因此,如果您喜欢 hack Drupal、开源并且热爱 Twitter,请考虑<a href="https://twitter.com/jobs/positions?jvi=oB9pWfwP,Job">加入我们</a>!

精彩的见解。发人深省。任何平台如何利用从那些在全球生产规模上实施开源解决方案的人那里学到的经验。

<a href="http://brian.willinghams.net" target="_new" rel="nofollow">Brian Willingham</a>

Twitter 使用什么 Linux(Redhat 或其他)?有什么想法吗?

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 3.0 Unported License 获得许可。
© . All rights reserved.