【翻译】Twitter背后的开源技术
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【翻译】Twitter背后的开源技术
原⽂:
如果没有开源软件,Twitter将不会存在。
你发送和接收的每⼀个Tweet在移动端和PC端发送的过程中,都会需要开源软件。
我们⾮常。
除此之外,我们想要知道开源对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的⽅式现在是我们⽂化中普遍存在的⼀部分。
另外,从开源社区中获取并回馈给开源社区形成了⼀个正反馈,我们也分享了我们很多代码。
下边是我们使⽤的⼀些开源软件的具体的例⼦:
被⼤量使⽤,是Tweet的主要存储⼯具;我们开发了⽤来和开源社区合作;
, , , 以及⼀些其他的Apache基⾦会的项⽬被我们的架构使⽤,⽤来增强分析数据和搜索的服务能⼒。
我们也回馈这些项⽬并资助Apache软件基⾦会。
在我们的缓存架构中被⼤量使⽤,⽤来应对我们告诉增长的流量。
我们最近开源了, 这个项⽬基于Memcached的代码进⾏开发。
另外,我们也提供了⼀些开源软件:
是我们开发的⼀个流量⽣成⼯具,⽤来帮助我们把服务在⽣产环境上线前进⾏测试。
lago提供适合于Twitter环境所需的流量和精度⽤来测试我们的服务。
是我们开发的⼀款分布式追踪(tracing)⼯具,帮助我们收集timing data,这些data是对Twitter API请求中的不相关联的服务产⽣的。
是以个Scala库,使⽤这个库可以容易的在Hadoop上开发MapReduce作业,利⽤内置集成的Scala和JVM。
我还想提⼀下,它使得开发分布式应⽤以及共享数据中⼼的资源⾮常容易。
我们在Twitter内部很多地⽅使⽤它,从执⾏Hadoop上的作业分析,到运⾏Rails应⽤。
它真的是Twitter的基础应⽤之⼀。
你能查看这个⽤来获取更多的信息。
在Twitter⼯作是什么样⼦的?你们的⽂化受到Open Source影响吗?
如果你在开源社区花费⼀些精⼒,你将会意识到信息的开放沟通对整个世界将会带来积极的影响。
在Twitter,我们谨记这个准则,每个员⼯有意愿和机会参与其中。
我们每周都会开all-hands会议,在这个会上,尖锐的问题被提出和回答,因为我们从内到外都保有开放的⼼态和互相之间的信任。
更进⼀步,我们⼤约在⼀年前成⽴了⼀个open source office⽤来⽀持对我们⾄关重要的开源组织。
我们对开源社区所作出的伟⼤⼯作充满感恩,想要和开源社区保持健康的关系。
在⼯程⽂化⽅⾯,Twitter本⾝是⼀个实时的事件驱动的⼯程难题,我们也将我们的⼯程⽂化塑造成实时响应以及事件驱动。
我们想要敏捷、⼩步迭代的⼯程⽂化,这些伴随着整个公司的成长⽽发展。
每天有超过4亿Tweets被发出,同时有⼤量的Tweets被递送。
我们每季度也举办hackweeks,员⼯可以拿出⼀周的时间从事各式各样他们真正富有激情的项⽬,这些项⽬不需要和他们每天负责的职责相关。