Twitter背后用到了哪些开源软件与技术?

没有开源软件,Twitter将不会存在
服务器君一共花费了252.520 ms进行了5次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议

原文:The open source technology behind Twitter

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

我们采访了Twitter公司主管开源的Manager Chris 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,员工可以拿出一周的时间从事各式各样他们真正富有激情的项目,这些项目不需要和他们每天负责的职责相关。

本文地址:http://www.nowamagic.net/librarys/veda/detail/2189,欢迎访问原出处。

不打个分吗?

转载随意,但请带上本文地址:

http://www.nowamagic.net/librarys/veda/detail/2189

如果你认为这篇文章值得更多人阅读,欢迎使用下面的分享功能。
小提示:您可以按快捷键 Ctrl + D,或点此 加入收藏

大家都在看

阅读一百本计算机著作吧,少年

很多人觉得自己技术进步很慢,学习效率低,我觉得一个重要原因是看的书少了。多少是多呢?起码得看3、4、5、6米吧。给个具体的数量,那就100本书吧。很多人知识结构不好而且不系统,因为在特定领域有一个足够量的知识量+足够良好的知识结构,系统化以后就足以应对大量未曾遇到过的问题。

奉劝自学者:构建特定领域的知识结构体系的路径中再也没有比学习该专业的专业课程更好的了。如果我的知识结构体系足以囊括面试官的大部分甚至吞并他的知识结构体系的话,读到他言语中的一个词我们就已经知道他要表达什么,我们可以让他坐“上位”毕竟他是面试官,但是在知识结构体系以及心理上我们就居高临下。

所以,阅读一百本计算机著作吧,少年!

《C程序设计语言(第2版新版)》 克尼汉 (作者), 等 (作者, 译者), 徐宝文 (译者)

《C程序设计语言》(第2版新版)是由C语言的设计者Brian W.Kernighan和Dennis M.Ritchie编写的一部介绍标准C语言及其程序设计方法的权威性经典著作。全面、系统地讲述了C语言的各个特性及程序设计的基本方法,包括基本概念,类型和表达式、控制流、函数与程序结构、指针与数组、结构、输入与输出、UNIX系统接口、标准库等内容。

更多计算机宝库...