推特背后的开源技术

【51CTO快译】要是没有开源技术,推特(Twitter)也就不会存在。大家发送和收到的每一条推特消息在计算机和移动设备之间传输过程中都会涉及开源软件。我们很好奇,想知道推特在多大程度上使用开源技术。除此之外,我们想发现开源技术对推特公司的文化带来了怎样的影响。

为此,我们请推特的开源技术经理Chris Aniszczyk讲述这家公司的开源故事。Aniszczyk将于本月8月29日至31日在加利福尼亚州圣迭戈召开的LinuxCon大会上发表主题演讲。他探讨的主题就是:推特背后的开源技术。

瞧一瞧Aniszczyk对于开源以及推特的开源文化有什么要说的。

为大家预先介绍一下你将在LinuxCon上发表的主题演讲《推特背后的开源技术》。

乍一看,推特是一项简单的实时服务,每次可发送的信息量是140个字符,名为推特消息(Tweet)。但更仔细地分析一下,就会发现运行这项服务面临的复杂性:每天发送出去的推特消息超过4亿条。鉴于量这么大,你得处理好一些值得关注的实时技术问题。在主题演讲中,我将深入介绍我们是如何应对这些挑战的,我们为什么偏爱开源软件来应对挑战。演讲主题将围绕跟踪分析一条推特消息从我们后端到前端的整个过程。最后,我预计听众最后会比较清楚地认识开源技术,以及当一条平常的推特消息出现在时间表时,幕后到底发生了什么。

推特后台到底在多大程度上使用开源软件?

我们使用大量的开源软件。在我看来,这是不二的选择,因为开源软件让我们得以定制和改动代码,以满足我们迅速变化的技术需要,因为我们的服务和社区在不断发展。推特规划新的技术项目时,我们总是确保对照开源解决方案的功能来衡量我们的需求,只要开源软件合适,我们就偏爱使用开源软件。正是由于这种方法,推特现在大部分建立在开源软件上;因而,开源之道如今已广泛融入到我们的文化中。除此之外,在开源社区里面有一种积极的教与学周期,我们受益匪浅。我们还把自己的大部分代码拿到GitHub(http://twitter.github.com/)上共享。

下面这几个具体的例子表明了我们所使用的开源软件

  • MySQL大量地用于推特消息的主存储;我们利用开源技术开发了自己的MySQL分支版,与上游社区进行了合作。
  • 我们的基础设施里面使用了Cassandra、Hadoop、Lucene、Pig及众多Apache项目,以驱动分析和搜索等服务。我们回过头来也为这些项目作贡献,是Apache软件基金会的支持者之一。
  • Memcached大量地用于我们的缓存基础设施,以便扩展我们越来越庞大的流量;我们最近开放了Twemcache的源代码,它的设计灵感主要来自Memcached代码库。

  除此之外,我们还开发了多种多样的开源软件

  • Iago是一款负载生成器,我们开发它的目的是,在服务遇到生产流量之前,帮助自己先测试一下服务。Iago为我们提供了专门适合推特环境的功能,还提供了测试服务所需要的那种精准程度。
  • Zipkin是一款分布式跟踪分析系统,我们开发它的目的是,帮助自己为参与管理推特API请求的所有不同服务收集时间数据。
  • Scalding是一个Scala库;有了它,只要充分利用与Scala和Java虚拟机(JVM)集成的内置功能,就很容易用Hadoop来编写MapReduce作业。

我还想着重指出Apache Mesos,它让我们更容易构建分布式应用程序以及共享数据中心的资源。我们在推特内部将它用于处理各项任务:从执行Hadoop端的分析作业,到运行Rails应用程序,不一而足。它其实是推特内部起到重要支撑作用的基础技术之一。你可以参阅这份演示文稿(https://speakerdeck.com/u/benh/p/apache-mesos-twitter-open-source-open-house),了解更多信息。

开源软件在推特怎样运行的?推特的企业文化是不是受到了开源的影响?

你只要在开源社区待过一阵子,就清楚地认识到:开放的信息交互可以给世界带来积极的影响。在推特,我们每天都谨记这条原则;每个员工都有发言权,都有创新的机会。我们每周都会召开全体人员出席的会议,讨论很热烈;大家积极提出和回答棘手的问题,因为我们从里到外都恪守一种倡导开放、彼此信任的文化。此外,我们还在大概一年前设立了开源办公室,旨在支持对我们来说很重要的众多开源组织。我们感激开源社区作出的贡献,希望与对方保持一种健康的、互利的关系。

就技术文化而言,推特是一家实时、事件驱动的服务公司;我们在改变自己的技术文化,希望变得实时、事件驱动型。我们想要一种灵活的、积极反应的、快节奏的技术文化,能够在我们整个公司发展壮大的同时,一并发展。现在每天发送的推特消息超过4亿条,可以说有好多推特消息要送达。我们还每个季度召开一次攻关周活动(hackweek):员工们花一周的时间来从事他们真正满怀热情,但是又未必与日常职责有关的各个项目。有时候,攻关周还会有疯狂的视频(http://www.youtube.com/watch?v=vccZkELgEsU)。

你见过有人使用推特的最有意思的方式是啥?

这样的方式实在太多了,于是我们为此设立了一个网站,专门罗列一些最有意思的应用,名为推特故事(http://stories.twitter.com/)。我个人最喜欢的一则故事其主人公是Chris Strouth,他发了一条推特消息"天啊,我要一只肾",后来他真收到了一只肾。说到更及时地向外发布消息,马尼拉前不久遭到了严重水灾,菲律宾人把推特当作了救生工具。能够供职于一家所提供的服务给全世界带来积极影响的公司,我深感荣幸。

你在日常生活中如何运用开源之道?

你可能不知道,我在去年帮助设立了推特的开源办公室(@TwitterOSS),我的日常工作就是打理这家办公室。工作量很大,但我觉得自己很幸运,有机会通过向大家传授开源之道,帮助打造推特的技术文化。闲暇之余,我喜欢把自己捣鼓的软件拿到GitHub上分享,这个网站实在太棒了;我觉得,它为开源社区做了杰出贡献。

之前,我主要供职于Eclipse基金会,负责一个插件开发项目。现在我仍是Eclipse这家代表1000多个成员的开源组织的董事会成员,偶尔会从事EGit和JGit项目,它们为Eclipse社区提供了对Git的支持。

最后,开源技术在过去的十年取得的成就令人吃惊;我很高兴自己是开源社区的一员。仍有许多的工作要做;如果你有兴趣帮助实现推特的开源使命,记得我们一直在招人哦。

原文链接:http://opensource.com/business/12/8/open-source-technology-behind-twitter

【编辑推荐】

【责任编辑: 黄丹 TEL:(010)68476606】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值