《YY游戏使用云平台的经验及云计算随想》要点:
本文介绍了YY游戏使用云平台的经验及云计算随想,希望对您有用。如果有疑问,可以联系我们。
自从2006年亚马逊AWS上线它的第一个EC2实例以来,云计算已经在全球得到飞速发展,并且被企业用户和个人开发者广泛接受.RightScale公司发布的2016年度云计算报告[1]显示,采访了1060名IT专业人士,其中42%的受访者所在公司的规模大于1000人,95%的受访者已经在使用各类云计算,如图1-1所示.
图1-1 调查显示95%的受访者在使用云计算
RightScale公司的调查报告同时指出了2016年云计算相对于2015年的增长趋势,如图1-2所示.
图1-2 2016年云计算相对于2015年的增长趋势
上述数据表明,2016年相对于2015年公有云的使用率仅上升了1%,而私有云的使用率攀升了14%,使用混合云(这里定义为同时使用公有云和私有云资源池)的比例则从58%跃升至71%.
RightScale公司的两份数据,一份说明了云计算的市场前景,一份说明了几种不同类型云平台的发展趋势.从我们所接触的互联网企业的云计算布局来看,也基本符合报告中描述的规律.这说明在未来的IT时代,云计算规模会持续扩大,企业应用会更多地往云上靠.而企业自建私有云,以及私有云跟公有云结合(混合云),是主要发展趋势.
再看另一份对比数据,如表1-1所示.市场研究公司Gartner称,全球公有云服务市场规模在2016年有望达到2040亿美元,比2015年的1750亿美元增长16.5%[2].
“公有云服务市场继续呈现出高速发展的态势.Gartner公司预计,这种发展势头将会持续到2017年.”Gartner公司的研究主管希德•纳格(Sid Nag)在一份声明中说,“这种强劲的发展势头反映了人们从传统IT服务向云端服务的转变,因为企业越来越倾向于追求数字化商业战略.”
Gartner公司指出,虽然公有云服务呈现出稳定发展的态势,但是2016年发展速度最快的却是IaaS(基础架构即服务).2016年,IaaS有望增长38.4%;到年底,IaaS市场规模有望达到224亿美元.
云应用服务(SaaS)有望实现年增长20.3%,达到377亿美元.云管理和安全服务的增长率有望达到24.7%.云应用基础架构服务(PaaS)也有望表现出强劲的发展势头,达到21.1%的增长率.云服务呈现出的这种强劲发展势头,有望在未来5~7年内仍然保持下去.
表1-1 全球公有云服务预测(单位是10亿美元)
自2013年起,YY游戏[3]就使用私有云平台服务于自身的页游业务.
在开发云平台之前,游戏运营面临的问题是:
针对这些痛点,我们在OpenStack的基础上,开发了第一代云平台,即Cloud 1.0.云平台上线后,资源管理更加灵活,在性能和成本之间取得良好的均衡,并极大地增强了运维自动化能力.到现在为止,Cloud 1.0已经支撑了几十万游戏用户同时在线.
如图1-3所示是Cloud 1.0的基础产品架构,包括云主机、云存储、云DB、云缓存、云网关五大核心产品.用户可通过控制面板访问它们,也可通过调用API在应用程序中访问它们.
图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、云缓存、云存储等配套产品,都是游戏服务需要的.
图1-4 YY游戏Cloud 1.0的云网络架构
随着云平台规模越来越庞大,慢慢暴露了OpenStack的一些弱点,比如结构复杂、可靠性一般、扩展性弱,导致我们在云的可控性方面很被动,从而产生了对第二代云平台的需求.
那么我们需要一个什么样的云呢?首先,它是基于私有云的;其次,这个私有云一定要满足业务特点,比如游戏行业与金融行业,业务特点截然不同;最后,这个云一定要可管理、可扩展、可控.对于一个平台服务来说,存在性能短板、运行故障并不可怕,可怕的是出问题后用户无法跟踪和定位,从而失去可控性.
在此需求推动下,我们着手开发第二代云平台.正是随着第二代云平台,即Cloud2.0的自主研发和上线,我们在此过程中积累了大量的实践经验,从而得以推动本书的形成.
本书作者之一风河,作为云计算用户已有多年历史.从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集成的监控图.
图1-5 云DB集成的监控图
面向用户技术的发展趋势,应该是越来越方便、易用.以前建立一个站点,需要专业人士来完成.而现在借助各家云平台在基础层(IaaS)、业务层(PaaS)所做的铺垫工作,非专业人士也能在短期内建好一个站点.在飞速发展的移动互联网时代,产品的更新迭代极快,如果产品开发能够用现有的平台与技术快速实现,为什么不用呢?这也是云平台将来会持续存在与发展的一个原因.
而对于技术开发用户来说,接受云平台、适应云平台也是一个必然趋势.比如,对于我们
开发的业务,往往会关注如下几方面问题.
现在,上述问题越来越成为我们关注的重点.传统的开发模式和服务交付方式,比如手工部署、单机运行、自主管理、集成一体(All in one),可能还继续适用于某些业务.但是随着开发团队和业务规模的增长,开发人员迟早会面对上述问题.此时面向云的开发模式和交付方式,就显得突出和有必要了.
从传统模式到云模式,开发理念和实现方式有个转变过程.不是说把一个传统软件扔到云平台上就能随时运行.比如,业务要做到弹性和分布式,它自身需要是状态无关的(Stateless).它的事务(Session)、日志、数据、缓存都必须去本地化,使用外部独立的存储接口.在云平台上,应用节点随时可以生成,也随时可以销毁.如果业务自身没有做到无状态,那就谈不上弹性伸缩.
总体来说,面向云平台的业务开发模式,给我们带来的不只是架构的变化,更是开发理念的转变.在这种理念下,软件开发过程更快速,软件质量更高.用户只要遵循一定的开发模式,平台就会保障软件最终运行的架构、性能、可用性和扩展性.
文章来自微信公众号:云技术实践
转载请注明本页网址:
http://www.vephp.com/jiaocheng/4219.html