作者:YY游戏云平台组

1.1 云计算发展趋势

自从2006年亚马逊AWS上线它的第一个EC2实例以来,云计算已经在全球得到飞速发展,并且被企业用户和个人开发者广泛接受。RightScale公司发布的2016年度云计算报告[1]显示,采访了1060名IT专业人士,其中42%的受访者所在公司的规模大于1000人,95%的受访者已经在使用各类云计算,如图1-1所示。

yy游戏直播需要什么手续(YY游戏使用云平台的经验及云计算随想)(1)

图1-1 调查显示95%的受访者在使用云计算

RightScale公司的调查报告同时指出了2016年云计算相对于2015年的增长趋势,如图1-2所示。

yy游戏直播需要什么手续(YY游戏使用云平台的经验及云计算随想)(2)

图 1-2 2016年云计算相对于2015年的增长趋势

上述数据表明,2016年相对于2015年公有云的使用率仅上升了1%,而私有云的使用率攀升了14%,使用混合云(这里定义为同时使用公有云和私有云资源池)的比例则从58%跃升至71%。

1.2 YY游戏使用云平台的经验

自2013年起,YY游戏[3]就使用私有云平台服务于自身的页游业务。

在开发云平台之前,游戏运营面临的问题是:

针对这些痛点,我们在OpenStack的基础上,开发了第一代云平台,即Cloud 1.0。云平台上线后,资源管理更加灵活,在性能和成本之间取得良好的均衡,并极大地增强了运维自动化能力。到现在为止,Cloud 1.0已经支撑了几十万游戏用户同时在线。

如图1-3所示是Cloud 1.0的基础产品架构,包括云主机、云存储、云DB、云缓存、云网关五大核心产品。用户可通过控制面板访问它们,也可通过调用API在应用程序中访问它们。

yy游戏直播需要什么手续(YY游戏使用云平台的经验及云计算随想)(3)

图1-3 YY游戏Cloud 1.0的基础产品架构

在Cloud 1.0的OpenStack实现中,虚拟计算是Nova管理的KVM,虚拟网络是Neutron管理的VLAN供应商网络(ProviderNetwork)。关于VLAN供应商网络,Rackspace有一篇博客[4]描述得比较清楚,可以参考。在Cloud 1.0中我们没有使用分布式块存储服务(如Ceph)。

在Cloud 1.0中,我们并没有实现租户网络,不同的游戏厂家接入同一Flat网络,这对隐私和安全都不利。Cloud 1.0的云网络架构如图1-4所示。

云网关是游戏平台中一个重要产品,请参考腾讯游戏的TGW[5]。简言之,云网关有两个重要作用:一是收敛公网IP,节省IP成本;二是集中安全防护,降低单个云主机被DDoS攻击的可能性。所有的云主机都只有内网IP,运行在云网关后面。除了云主机外,还有云DB、云缓存、云存储等配套产品,都是游戏服务需要的。

yy游戏直播需要什么手续(YY游戏使用云平台的经验及云计算随想)(4)

图1-4 YY游戏Cloud 1.0的云网络架构

随着云平台规模越来越庞大,慢慢暴露了OpenStack的一些弱点,比如结构复杂、可靠性一般、扩展性弱,导致我们在云的可控性方面很被动,从而产生了对第二代云平台的需求。

那么我们需要一个什么样的云呢?首先,它是基于私有云的;其次,这个私有云一定要满足业务特点,比如游戏行业与金融行业,业务特点截然不同;最后,这个云一定要可管理、可扩展、可控。对于一个平台服务来说,存在性能短板、运行故障并不可怕,可怕的是出问题后用户无法跟踪和定位,从而失去可控性。

在此需求推动下,我们着手开发第二代云平台。正是随着第二代云平台,即Cloud2.0的自主研发和上线,我们在此过程中积累了大量的实践经验,从而得以推动本书的形成。

1.3 云计算随想

本书作者之一风河,作为云计算用户已有多年历史。从2011年起,就先后使用了多家公有云平台,包括Rackspace、AWS、Linode、Vultr等。从客观上说,云计算带给用户的不只是成本优化,还有效率方面的显著提升。

在更早期的时候,用户的网站要么使用Share Hosting(共享主机,如DreamHost、HostMonster),要么使用Dedicated Server(独立服务器,如SoftLayer、CNServers)。前者在性能、稳定性方面都存在问题,不适合流量大的站点;后者在管理上极麻烦,下单一台服务器,短的2~3天,长的1~2周才能完成上架交付。云计算出现后,有效地解决了这些问题,带给用户更稳定、更高效、更便捷的解决方案。

YY游戏有自己的云平台解决方案,主要面向公司内部的游戏运营和业务部署,既包括IaaS私有云平台,又包括PaaS升龙部署系统。在我们自己的云平台上,花了不到半个小时,就建立了一个测试站点。这个站点的配置如下:

基本上是最低配置的云主机和云DB,并使用了支持TCP和HTTP协议的云网关(因为云主机没有配置公网IP地址)。

服务建立后,对资源的管控和监控都极为方便。如果是传统的物理机,则要装一堆的东西、写一堆的脚本去完成服务器监控与备份。而对于云主机、云DB,这些都是一键式操作。如图1-5所示是云DB集成的监控图。

yy游戏直播需要什么手续(YY游戏使用云平台的经验及云计算随想)(5)

图1-5 云DB集成的监控图

面向用户技术的发展趋势,应该是越来越方便、易用。以前建立一个站点,需要专业人士来完成。而现在借助各家云平台在基础层(IaaS)、业务层(PaaS)所做的铺垫工作,非专业人士也能在短期内建好一个站点。在飞速发展的移动互联网时代,产品的更新迭代极快,如果产品开发能够用现有的平台与技术快速实现,为什么不用呢?这也是云平台将来会持续存在与发展的一个原因。

而对于技术开发用户来说,接受云平台、适应云平台也是一个必然趋势。比如,对于我们

开发的业务,往往会关注如下几方面问题。

现在,上述问题越来越成为我们关注的重点。传统的开发模式和服务交付方式,比如手工部署、单机运行、自主管理、集成一体(All in one),可能还继续适用于某些业务。但是随着开发团队和业务规模的增长,开发人员迟早会面对上述问题。此时面向云的开发模式和交付方式,就显得突出和有必要了。

从传统模式到云模式,开发理念和实现方式有个转变过程。不是说把一个传统软件扔到云平台上就能随时运行。比如,业务要做到弹性和分布式,它自身需要是状态无关的(Stateless)。它的事务(Session)、日志、数据、缓存都必须去本地化,使用外部独立的存储接口。在云平台上,应用节点随时可以生成,也随时可以销毁。如果业务自身没有做到无状态,那就谈不上弹性伸缩。

总体来说,面向云平台的业务开发模式,给我们带来的不只是架构的变化,更是开发理念的转变。在这种理念下,软件开发过程更快速,软件质量更高。用户只要遵循一定的开发模式,平台就会保障软件最终运行的架构、性能、可用性和扩展性。


[1] RightScale公司2016年度云计算报告:

http://www.rightscale.com/blog/cloud-industry-insights/cloud-computing-trends-2016-state-cloud-survey

[2] Gartner公司关于世界级公有云服务的市场研究报告:

http://www.gartner.com/newsroom/id/3188817

[3] YY游戏是欢聚时代公司互娱事业部旗下的品牌,官网是:

http://wan.yy.com/

[4] Rackspace的博客Neutron Networking: VLAN ProviderNetworks:

https://developer.rackspace.com/blog/neutron-networking-vlan-provider-networks/

[5] 腾讯TGW:

http://wiki.open.qq.com/wiki/TGW

本文节选自YY游戏云平台组新书《自主实现SDN虚拟网络与企业私有云》第一章,本书已经在各大图书平台有售。

yy游戏直播需要什么手续(YY游戏使用云平台的经验及云计算随想)(6)

,