Twitter工程师:自由实验空间比谷歌大
Google鼓励工程师用20%的工作时间来实验,但在马吕斯-埃里克森(Marius Eriksen)看来,至少在数据中心方面,Twitter自由实验的空间更大。
埃里克森目前在Twitter工作,他为公司设计基础设施。埃里克森之前也在Google工作过。
Google是建立在软件设计之上的,它被严密守护;Twitter不同,它拥抱开源软件,甚至连最基本的系统也用开源软件。
埃里克森说:“Twitter并不是很大,在很大的企业使用软件或者系统是相当固定的,不允许做其它的事。Twitter不同,你可以用开源软件。如果你想开发一些不同的东西,使用不同的东西,你可以做,Google就不行,你必须让自己的问题匹配整个基础设施,Google基本上就是靠它建立的。”
在Twitter,埃里克森找到了新的自由之地。的确,Twitter比Google年轻许多,它正按照Google的路子来修炼自己。即使对比Facebook,埃里克森仍认为Twitter自由很多。
Facebook是一个靠实验繁荣的网站,它也接受开源软件,但是它不愿意抛弃扎克伯格当年使用的语言。Facebook选择另一条路,它为已经使用的语言(PHP语言)寻找新方法,让它更快运行。Twitter的做法不同,很多年前,它就开始从原语言上分出一条路前进,工程师们寻找办法重新架构网站。
埃里克森与团队开发Finagle项目,它的目的正是为了重构Twitter。Finagle的办法就是建立一连串的独立服务,它们串联到共同的目标;它是一个编程框架,用于创造服务,然后更有效地在服务间传递流量。
每一次Twitter新生一个页面,它会从几十个不同的服务间获得数据,包括MySQL数据库系统、Social Graph Service(社交图服务,它纪录Twitter用户间的关系)。Finagle为服务的重建提供解决方案,让服务的信息交换更容易,然后将服务覆盖到更多的用户。
埃里克森说:“我们希望能更有效地扩大应用,我们为未来架构做了许多工作。我们一直在问,未来20年30年我们的目标是什么?我们现在有了更加以服务为中心的架构,找到了独立路由HTTP流量的办法。”
当然,这只是建立网站的一种方法,肯定也有其它替代方案,比如Facebook的方案。但Twitter相信Finagle为网站奠定了坚实的基础,可以迎接未来几年的发展。Twttiter工程师Ben Hindman说:“你可以向成千上万服务前进了。”
Finagle是开源的,任何开发者、任何有野心的创业企业都可以使用,可以拿来开发新网站,装下像Tiwtter一样多的用户。(ZIG)