导读:作为最成功的网页游戏服务商,Zynga购买了许多Amazon上的云服务。不过,截至到2011年底,80%的服务是通过Zynga自建的数据中心完成的,在Zynga看来,Amazon的服务过于死板,浪费资源严重。虽然不像Google、Facebook那样自己设计了服务器,但Zynga还是要求服务器供应商做了大量优化。不仅如此,和许多成功的互联网公司一样,Zynga重新修改了Linux内核、开发了应用监测程序等等。在日前举行的Interop大会上,Zynga的基础架构CTO Allan Leinwand对公司的云计算策略做了演讲,Ars进行了报道,编译如下:
五年前,社交游戏公司Zynga一直沿用常规的IT基础设施。服务器存放在租用的数据中心的机架上。用户喜欢Poker这样的游戏,该游戏在2007年发布。
直到FarmVille发布,那是在2009年,1000万用户在六周内访问了FarmVille的服务器,五个月内用户达到了2500万。
“我们找不到更多的电力供应,找不到足够的服务器,我们只能对现有的基础设施进行优化来满足FarmVille的需求,”Zynga的基础架构CTO Allan Leinwand表示。
Zynga颠覆了整个IT架构,我们将IT基础设置迁移到了Amazon EC2上,我们购买了虚拟的服务器和存储,并根据需求自由的增减。“他们确实帮我们节省了资源,帮我们顺利度过了2009和2010,他们的工作令人惊讶,”Leinwand说。最终,Zynga“凭借我们自己的理想,我们做到了。我们能够灵活的控制它更好的为我们工作。”
Zynga建立的私有云在某些方面有更高的效率,因为它完全在Zynga的掌控之下。Zynga将所有自己租赁的、托管的服务器迁移到自己的数据中心中去,Zynga在美国东西海岸都建立了数据中心。截至到2011年,20%的Zynga的游戏用户登录到Zynga自己的数据中心,剩下80%的用户依然在Amazon云服务上。
截止到2011年底,这一数据颠倒了。现在,80%的使用在Zynga的数据中心中,剩下20%则通过Amazon。Zynga没有计划完全丢弃Amazon,因为它还是非常好的“缓冲器”以应付突发的用户兴趣增长,例如去年Alec Baldwin开始了拒绝停止Words With Friends的计划。
建立一个更好的Amazon
但是最主要的是,Amazon不能支持所有Zynga想做的事,而Zynga可以,因为Zynga不需要面对成千上网的企业,它只需要为Zynga建立最好的架构。Leinwand在日前在拉斯维加斯举行的Interop大会上做了主题演讲,并与Ars讨论了更多细节。Zynga的内部基础设施称之为“zCloud”,它采用了CloudStack进行管理,RightScale为其进行设计,该公司专门管理在Amazon或私有数据中心的云计算调度。
这就让Zynga内部的基础设施和Amazon的资源可以通过一个控制后台管理。
“当你打算在Zynga的基础设施上开启一个虚拟机时,一个下拉窗口会跳出来说:‘是前往Amazon还是zCloud?’然后你可以做出选择,”Leinwand表示。
Leinwand表示,Zynga不打算公布使用了哪种服务器,或者建立了多少数据中心,我们只能说在东西海岸的数据中心采用了混合的设施。但总的来说,Amazon并没有提供实例,帮助Zynga定制它的硬件和软件以服务FarmVille、Words With Friends以及其它游戏。
Zynga的基础架构非常庞大。Leinwand表示,Zynga的数据系统拥有24.5万亿行记录,1.4PB数据。用户在游戏中的成长将导致Zynga对内存进行大量的数据读写操作。负载均衡器将分布的将数据分发给Web服务器,同时,数据将从服务器中移动到内存缓存和一个高可用、大容量的长期存储系统中。除此之外,Zynga还服务了数以百万级的临时游戏玩家,Zynga也为第三方游戏开发者提供社交游戏平台。
虽然Zynga并没有像Facebook、Google那样走制造自己的服务器的路,但他需要从硬件供应商那里购买服务器,供应商需要为Zynga的基础设施提供定制产品并进行配置,这与Facebook的Open Compute项目很相似。
Leinwand表示,Zynga的在Amazon的3个服务器上的工作量,仅仅相当于1台自有服务器提供的工作量。这并不是说Zynga使用的大型服务器,Zynga的服务器与Amazon上的服务器相当。其秘密就是让大量的资源集中在一起,从而更有效率。深入的分析服务器性能、网络流量趋势以及应用程序资源管理是件费时费力的事情,但却是非常重要的。
“我们自己研发各种应用。我们写了内存工具、性能分析工具,我们进入了Linux内核,我们使用了CentOS,并进入了CentOS内核找到其中的瓶颈。”
Amazon为了保证其可扩展性,提供的服务有拘束的。举个例子,你可以租用Amazon的一个实例,包含了一定的存储和计算资源,但是如果要增加若干G内存或者CPU,就需要购买整个实例,你将购买一部分你根本没有用的资源。
“你不能去公共云,并在这里购买额外的64GB内存。他们会看着你说‘买另外一个实例吧,’”Leinwand说。
Leinwand说Amazon的实例模型将导致过度订购,这意味着你最终购买了比实际需要更多的存储。而在Zynga内部采用了直接访问服务器的模式,提供了巨大的I/O性能和更高效率,他说。
当你像Zynag一样快速发展,每一个性能能或者效率的提升都是十分重要的。Leinwand表示,公司拥有这些服务器已经两年了,目前达到了100台。在可预见的未来,仍然有一部分服务器需要由Amazon云服务提供,即使Zynga自己的数据中心爆发式增长。除此之外,供应商的能力总是有用的,Amazon对当下的应用还是有价值的,即使他们不能增加内存、不能提供更少的CPU内核和存储,Leinwand表示。
“人们问了我很多问题,‘你会放弃他们的公共云服务吗?’”Leinwand表示“我认为我们哪儿也不会去。他们能提供非常好的缓冲。”
更新:一个读者问了一个非常好的问题——Zynga用什么管理程序?Leinwand表示,正如你所知道的那样,Amazon云服务用一个优化的Xen作为管理程序。Zynga内部采用了类似的方式。“在zCloud,我们用Citrix CloudStack管理软件,并运行在XenServer上,”Leinwand表示。