Twitter背后的开源技术

标签: twitter 开源 技术 | 发表时间:2012-08-16 08:00 | 作者:[email protected] (秩名)
出处:http://www.kuqin.com/jingyan/

如果没有开源软件,Twitter将不会存在。你发送和接收的每一个Tweet在移动端和PC端发送的过程中,都会需要开源软件。我们非常 好奇Twitter使用了多少开源软件。除此之外,我们想要知道开源对Twitter公司的文化产生了什么影响。

我们采访了Twitter公司主管开源的ManagerChris Aniszczyk,来和我们大家分享Twitter的开源故事。Aniszczxk将会在本月的LinuxCon(8月29日至31日,在San Diego,CA)上做主题演讲: The open source technology behind a Tweet.

让我们看一下Aniszczy如何看待Open Source以及Twitter的开源文化。

请给我们简单介绍一下你即将在LinuxCon上做的报告“The Open Source Technology Behind a Tweet”?

表面上来看,Twitter提供一种简单的实时消息服务,其传播的是140个字节组成的被称为Tweets的消息单元。更进一步的看一下运行此服务的复杂性:每天超过4亿的Tweets被发送。在这样一个规模下,你必须处理一些有趣的实时工程性问题。在这个报告中,我将讲述我们如何应对这些挑战以及为什么我们选择开源软件来应对这个挑战。这个报告的内容将要讲述一个Tweet的整个生命周期,从我们的后端服务到前端显示。我期待听众在听完报告后,能够对开源技术有更好的了解和认识,同时知道一个简单的Tweet在出现在他们的timeline时,背后都发生了什么。

一个Tweet的传播场景背后,使用了多少开源软件?

我们使用了许多开源软件。依我来看,作出这个决定是很自然的事情。因为使用开源软件允许我们在公司和服务快速发展的过程中,可以定制代码用以满足我们快速迭代的工程需求。在Twitter,当我们计划开展一个新的项目时,我们总是会取衡量我们的需求以及开源能够提供给我们的能力,同时倾向于定制开源软件用以满足需求。通过这样的方法,Twitter大部分构建在开源软件基础之上,作为结果,open source的方式现在是我们文化中普遍存在的一部分。另外,从开源社区中获取并回馈给开源社区形成了一个正反馈,我们也 在Github上分享了我们很多代码。

下边是我们使用的一些开源软件的具体的例子:

  • MySQL被大量使用,是Tweet的主要存储工具;我们开发了 MySQL fork in the open用来和开源社区合作;
  • Cassandra, Hadoop, Lucence, Pig以及一些其他的Apache基金会的项目被我们的架构使用,用来增强分析数据和搜索的服务能力。我们也回馈这些项目并资助Apache软件基金会。
  • Memcached在我们的缓存架构中被大量使用,用来应对我们告诉增长的流量。我们最近开源了 Twemcache, 这个项目基于Memcached的代码进行开发。

另外,我们也提供了一些开源软件:

  • lago是我们开发的一个流量生成工具,用来帮助我们把服务在生产环境上线前进行测试。lago提供适合于Twitter环境所需的流量和精度用来测试我们的服务。
  • Zipkin是我们开发的一款分布式追踪(tracing)工具,帮助我们收集timing data,这些data是对Twitter API请求中的不相关联的服务产生的。
  • Scalding是以个Scala库,使用这个库可以容易的在Hadoop上开发MapReduce作业,利用内置集成的Scala和JVM。

我还想提一下 Apache Mesos,它使得开发分布式应用以及共享数据中心的资源非常容易。我们在Twitter内部很多地方使用它,从执行Hadoop上的作业分析,到运行Rails应用。它真的是Twitter的基础应用之一。你能查看这个 演讲用来获取更多的信息。

在Twitter工作是什么样子的?你们的文化受到Open Source影响吗?

如果你在开源社区花费一些精力,你将会意识到信息的开放沟通对整个世界将会带来积极的影响。在Twitter,我们谨记这个准则,每个员工有意愿和机会参与其中。我们每周都会开all-hands会议,在这个会上,尖锐的问题被提出和回答,因为我们从内到外都保有开放的心态和互相之间的信任。更进一步,我们大约在一年前成立了一个open source office用来支持对我们至关重要的开源组织。我们对开源社区所作出的伟大工作充满感恩,想要和开源社区保持健康的关系。

在工程文化方面,Twitter本身是一个实时的事件驱动的工程难题,我们也将我们的工程文化塑造成实时响应以及事件驱动。我们想要敏捷、小步迭代的工程文化,这些伴随着整个公司的成长而发展。每天有超过4亿Tweets被发出,同时有大量的Tweets被递送。我们每季度也举办hackweeks,员工可以拿出一周的时间从事各式各样他们真正富有激情的项目,这些项目不需要和他们每天负责的职责相关。

正在加载推荐文章
Nokia正式将Qt开源软件技术卖给了Digia
开源数据库 Sharding 技术
Twitter Storm:开源实时Hadoop
Twitter开源其MySQL优化成果
Google类Twitter平台Jaiku开源
  • 默认表情
  • 阿狸
发  布
  或游客留言 社会化登录:
  • 默认表情
  • 阿狸
回  复
  或游客留言 社会化登录:
www.kuqin.com
数据正在加载中...
无觅相关文章插件,快速提升流量

[ comments ]

相关 [twitter 开源 技术] 推荐:

Twitter背后的开源技术

- - 酷勤网-挖经验 [expanded by feedex.net]
如果没有开源软件,Twitter将不会存在. 你发送和接收的每一个Tweet在移动端和PC端发送的过程中,都会需要开源软件. 好奇Twitter使用了多少开源软件. 除此之外,我们想要知道开源对Twitter公司的文化产生了什么影响. 我们采访了Twitter公司主管开源的ManagerChris Aniszczyk,来和我们大家分享Twitter的开源故事.

Twemproxy – Twitter 开源的 Redis proxy

- - NoSQLFan
在去年的QCon London2012 大会上,Twitter 发表了题为 《 Timelines @ Twitter》的演讲,里面提到以 Redis作为其timeline的主要存储,目前目测全球范围内,Twitter可能是Redis的最大用户了(或者是新浪微博. 而今天我们要说的这个 Twemproxy,是 Twitter 开源出来的 Redis 和 Memcached 代理.

Twitter网站技术发展历程

- - 互联网旁观者
Twitter目前Alexa排名第8. 在2006年诞生之时是采用Ruby On Rails+ MySQL构建的,2007年增加了Memcached作为Cache层,以提升响应速度. 基于Ruby on Rails让Twitter享受到了快速的开发能力,但随着访问量的增长,其对CPU和内存的消耗也让Twitter痛苦不堪,于是Twitter做了不少改造和努力,例如编写了一个优化版的Ruby GC.

Twitter 开源其 MySQL 优化成果

- - 博客 - 伯乐在线
据  Twitter 工程博客透露, Twitter 决定开源其使用的、经过优化的 MySQL 版本. Twitter 工程师 Jeremy Cole 和 Davi Arnaut 在博客中称:. MySQL 是 Twitter 大部分数据(如兴趣图谱、时间轴、用户数据和推文等)的主要存储技术. 由于我们的规模,我们比其他公司更能推动 MySQL 的发展.

Twitter开源Whisper Systems所有软件

- - 雷锋网
据国外媒体报道, Twitter日前在其官方博客上宣布,将逐步开放 Whisper Systems所有软件源代码. 其中,TextSecure的源码现已可在 Github网站上看到. Whisper Systems是一家移动安全初创公司,主要为Android手机和平板用户提供企业级的安全和管理解决方案.

Twitter技术问题导致抓取和URL规范化问题

- iVane - SEO每天一贴
6月27号Google工具条PR更新了一次,然后很多人注意到Twitter首页PR降为零. (Google首页也降到9,不过这不是重点. )7月19号Google居然又更新一次工具条PR. Google更新工具条PR值从一个月一次变到3个月一次,甚至半年一次,所以这次不到一个月就再次更新有点蹊跷. 据目前透露的信息,这次更新PR貌似主要就是为了修正Twitter PR值的问题.

Twitter平台未来:Cards技术和视觉一致

- - 微博之博
腾讯科技讯(童云)北京时间8月2日消息,美国科技博客AllThingsD近日刊载署名为迈克·艾萨克(Mike Isaac)的文章称,在过去一个月时间里的混乱形势中,人们忽略了对 Twitter的未来而言至关重要的一个因素,那就是Twitter Cards. 文章指出,Cards和视觉一致性对Twitter来说是非常重要的,几乎到了能令这家公司甘冒在很大程度上疏离开发者社区的风险的地步.

Twitter即将开源即时数据处理工具Storm

- Andy - 36氪
开发者的好消息:Twitter刚刚在博客上宣布将在9月19日的Strange Loop大会上公布Storm的代码. 这个类似于Hadoop的即时数据处理工具是BackType开发的,后来被Twitter收购用于Twitter. Twitter列举了Storm的三大类应用:. 信息流处理{Stream processing}: Storm可用来实时处理新数据和更新数据库,兼具容错性和可扩展性.

[分享创造] 开源一个类微博 twitter 的网站

- - V2EX
网址: https://sserr.net. 代码: https://github.com/coyove/iis. 之前的发布: https://v2ex.com/t/628871. 时隔一个多月,当初的 todo 基本上都清掉了,代码也重构到了开源出去也不会太丢人的程度 XD. 总的来说这是一个类微博的系统,提供了大部分你所熟知的微博功能.

Twitter的这种信息分类技术,在社交媒体中怎么用最有效?

- - 雷锋网
Hasgtag :“#XX”这种形式的标签,被称作是 hashtag,你可以用它来标注你的 Tweet (即用户发到Twitter上的信息)里面的关键词和话题. hashtag 是推特的用户原创发明,是一种给信息分类的方法. ——Twitter 对 hashtag 的官方解释. 2009 年 7 月 2 日推特为推文里出现的所有 hashtag(#XX) 都加上了超链接.