【51CTO快译】Facebook平台上最大的社交游戏公司之一的Zynga已经将大部分自家用户从Amazon网络服务(AWS)迁移到自主打造的私有云平台中,说是为了最大限度提高其社交游戏网络的可靠性与性能表现。
Zynga公司基础设施CTO Allan Leinwand在一次采访中表示,截至2011年年末,Zynga公司已经将接近80%的日常活跃用户交付自有基础设施进行托管;而就在2011年年初,同样比例的用户群体还处于Amazon公共云的支持之下。
他将Amazon服务视为“一辆四门轿车”,而Zynga公司在对自身网络进行精心调整之后所推出的zCloud则完全可以被比作超级跑车。
“我们当然也很喜爱四门轿车,但必须承认这是一种用于应对多种使用需求的车型——购物、带孩子都是这类车需要照顾到的情况。相比之下,我更愿意把zCloud当作能在社交游戏赛道上全速驰骋的超跑,这套平台完全是为速度而生。”
Leinwand此前曾于周三在加州圣何塞举办的CloudConnect大会上与IDG新闻服务媒体谈及这一话题,当时他描述了“开心农场”与“多人填字游戏”项目的开发者如何在过去一年中重新审视当前计算基础设施。他还在自己的 博客 中发文详细进行了一番论述。
Amazon公共云+zCloud私有云的混合云时代
根据他的爆料,Zynga公司现在拥有1000台全天候运转的服务器,业务内容涵盖了从数据传输到具体执行的诸多方面;而且在将业务从Amazon迁移到自家私有云平台之后,该公司所使用的物理服务器已经减少了三分之一。
Zynga公司将继续以混合云的方式使用Amazon服务,而Leinwand也坦言在未来相当长的一段时间内,Zynga尚无意降低对Amazon的依赖程度。不过目前该公司正尝试将Amazon服务当成处理突发情况的后备方案,而非支持日常业务的主要处理平台。
“我们非常赞赏Amazon服务所带来的业务灵活性;能有这样的方案可用令人十分安心,”他表示。
Zynga的这一举动可能标志着该公司有志于进一步提升性能,在未来采用这套新的云平台,并有针对性地进行云服务开发。
“当前我们所使用的云平台存在弊端,它不具备对基础设施即服务体系进行定制及调整的能力,所以我们很难针对自身业务对其做出适当改动,”Leinwand指出。
“对于广大真正希望采用云计算并将数据中心业务外包出去的IT人士而言,必须提前为之准备充分的控制措施。这绝不是危言耸听,而是我们在业务实践中的经验之谈。”
Zynga公司已经开始尝试把游戏交付自有服务器进行托管,不过一旦这套搭配设施无法满足需求,处理工作将马上被转移到Amazon云平台中。公司业务发展的拐点出现在2009年“开心农场”项目启动之时,用户数量在六周之内就从零激增至千万级别。
从那时起直到去年年初,Zynga公司一直在将新游戏部署至云端;只有在性能需求量尽在掌握之后,他们才尝试利用自有服务器加以运行。
但这种安逸的现状并未阻碍他们继续打造自己的zCloud平台,创建过程使用到了来自Cloud.com的软件以及来自RightScale的各类管理工具。
zCloud的成长
在过去的一年中,Zynga公司的自有数据中心在处理能力方面有了显著提升。Leinwand并未给出详细数据,但他坦言为了打造冗余系统,公司已经分别在东、西海岸的多个地点部署了设施。
到2011年下半年,zCloud设施的电力供给彻底落实到位,根据Leinwand的说法,目前他们的供电系统能够支持“166个国际空间站”。
为了提高系统可靠性,Zynga公司将自己的网络与Amazon及Facebook设置为光纤直连。Amazon去年遭受的大规模停机故障给Zynga敲响了警钟。
“尽管游戏服务没有因为停机的发生而受到严重影响,但这样的事件让一直比较依赖云平台的我们开始尝试改变建立基础设施的方式,”Leinwand指出。
如今Zynga公司着手打造自己的专用工具,帮助相关部门了解CPU、内存以及I/O使用率与游戏程序的配合状态,又是哪些因素给Web服务器、内存缓存以及存储系统带来最大的工作压力。
经过不懈努力,Zynga公司在优化工作取得了骄人的成果——原本要靠租用三台Amazon物理服务器达成的任务,在zCloud中只需一台设备即可完成。
“这并不是说Amazon网络服务的品质有问题或者他们使用的服务器性能低下,真正的原因在于我们对zCloud平台进行了合理化、性能优化方面的诸多调整,使其能够完全适应社交游戏的实际需求。”
系统架构
Zynga公司使用的是一套三层系统。举例来说,当某位用户进行“多人填字游戏”时,他实际上是通过Web服务器进入游戏、游戏版面上的变动保留在内存缓存中,而游戏状态则由多块硬盘组成的冗余存储机制进行保存。
由于应用程序大多是以PHP编写,因此Zynga公司目前使用的是一套名为Membase的开源平台。该平台前端使用memcache,后端则采用No-SQL数据库。
过去他们曾使用MySQL负责存储工作,但并没有用到那些复杂的查询功能;而Membase在内存与存储体系中的全面应用使系统层数有所减少,这让系统管理员的工作变得更为轻松。
Leinwand的团队编写了一系列自动化工具,使得Zynga公司能够在短时间内安装上千台服务器。他们并没有像微软及其它一些大型在线厂商那样使用容器机制,而是依靠由积分器供应商提供的机柜式服务器构成设施储备,并在需要时迅速补充到基础设施中来。
Zynga公司还与合作伙伴一道设计出一款专为特定应用程序打造的服务器——Leinwand并没有透露具体细节——不过总体来说它可能使用的是标准x86硬件。
“我们的合作伙伴是一家台湾公司,理念上的契合使双方的配合相当令人满意,”他如是说。
原文:Zynga makes dramatic shift from public cloud
更新:根据另一篇报道,目前Zynga大约是80%在其zCloud上,20%在Amazon平台上。