7年前的一个创意,成就了如今风靡全世界的社交网络和微博客服务——Twitter。如今Twitter的月活跃用户数达到了2亿多,每天大约有5亿条推文被发送。这一切的背后,是由大量的开源项目在支撑。 Twitter被称为“互联网的短信服务”,允许用户发布不超过140个字的微博客,该创意来自Twitter的联合创始人Jack Dorsey,这个在7年前被分析师称为“有史以来最愚蠢”的创意,不料如今已经成为了风靡全世界的社交网络和微博客服务,月活跃用户达到了2.183亿人,每天大约有5亿条推文(tweet)被发送,几乎每秒钟就产生了超过6000条推文。 2013年11月7日,Twitter正式在纽约证券交易所上市,发行价26美元,但开盘即大涨73%至45.1美元。 Twitter可以称之为构建于开源项目之上,该公司开源负责人Chris Aniszczyk表示,如果没有开源软件,Twitter将不会存在,用户在移动端和PC端发送和接收的每一条推文都会需要开源软件。 在Twitter公司,当计划开展一个新项目时,工程师会首先衡量需求以及开源项目的能力,并通过定制开源项目来更好地满足需求。正是如此,Twitter才发展如此迅速,并轻松解决了日益飞速扩增的流量和请求。 Twitter所使用的开源项目 Twitter每天需要处理用户发送的推文数超过4亿条,此外还要处理大量的时间线(来自用户关注的人的所有推文),这一工程是相当浩大和复杂的。Twitter使用了大量的开源项目,从各种工具到各种库。如果没有这些开源项目,日常工作将无法正常运作。 下面来看看推文传递的背后都用到了哪些开源项目。 1. 分析和搜索服务 Twitter的搜索服务每天支持超过10亿次的查询,其背后的开源项目包括:
2. 服务器和存储 Twitter需要将每天用户发送的推文存储到数据库,并推送给其他相关的用户。该过程用到的开源项目包括:
3. Twitter工程师的工具箱
4. Twitter背后的编程语言和框架
5. Twitter的前端解决方案
6. Twitter服务开发框架
Twitter公司所开源的项目 Twitter从开源社区中获得了大量的好处,而Twitter也在不断地回馈社区,开源了大量基础设施和工具,使得其他企业和开发者不必重新发明轮子,在这些开源项目的基础上更加快速地实现自己所需。 1. 大数据处理
2. 前端项目
3. 后端服务
4. Twitter基础设施通用库 5. 收购其他公司后开源的项目 Twitter还收购了一些公司,并将这些公司的软件以开源形式发布。
更多的开源项目: http://twitter.github.io/ Twitter内部的开源氛围 1. 比Google更自由 尽管Google也开源了大量的项目,但是其开源程度并没有Twitter彻底。比如在数据中心方面,Google做了大量的保密工作,而在Twitter公司,这些要开放得多,员工自由实验的空间更大。 在一些大型企业中,所使用的软件或系统是相当固定的,员工需要在该基础设施上开发东西。而据Twitter员工透露,Twitter允许员工尝试新的不同的东西,甚至允许使用不同的语言和开源项目来重构Twitter的一些服务。 之前Google“20%的自由时间”为人津津乐道,如今该福利已经取消了。而在Twitter,每季度公司会举办hackweeks,员工可以拿出一周的时间从事各式各样的项目,这些项目不需要和他们每天的职责相关。 2. 在公司内部培训开源技术 2013年8月,Twitter收购了致力于开源技术培训的Marakana公司,成立了Twitter大学( Twitter University),其目的主要是为内部员工提供更丰富的培训资源,同时也希望吸引更好的工程技术人才加入公司。 Twitter大学将陆续向大众开放,Twitter也将部分教育资源放到了网上。比如 scala_school(这是针对Scala编程语言的一系列教程)。 Twitter对开源基金会的支持 Twitter也通过资金和代码赞助了一些开源基金会和组织。
总结 Twitter在2011年就专门成立了一个“开源办公室”,用来支持对Twitter至关重要的开源组织。这足以见得开源对于Twitter的重要性。 Twitter公司开源负责人Chris Aniszczyk称,如果在开源社区花费一些精力,将会意识到信息的开放对于整个世界所带来的积极影响,在Twitter,从内到外都保持着开放的心态和浓厚的开源氛围,而且每个员工都有机会参与其中。同时Twitter对开源社区所做出的伟大工作充满感恩,并将一直和开源社区保持健康的关系。 再来看国内,如今一些大型互联网公司也开始重视开源,在使用开源项目构建基础服务的同时,也不忘回馈开源社区。【企业开源系列】后面也将会聚焦国内开源企业,带领大家认识一个全新的国内开源生态。 更多信息可参考Twitter公司开源负责人Chris Aniszczyk在LinuxCon EU 2013大会上的 演讲PPT,以及以及Twitter公司的 开源站点。 |