阿里云在游戏行业的技术特点和产品特征
BAT日报讯:3月8日上午,GMGC2016开发者训练营(Developers Camp)开幕。来自阿里云资深架构师刘英飞进行了主题为“游戏+阿里云,云端共赢”的演讲。
以下是课程内容实录:
刘英飞:大家好!非常高兴在这跟大家分享一下我们阿里云在游戏行业的技术特点和产品特征。
我刚才在会场逛了一圈,发现今天大会和去年和前年都有很大不同,我发现云厂商参会的非常多,游戏厂商传统的减少了。为什么这些云厂商会大量进入到游戏行业呢?因为从国外的经验到国内经验来看,其实游戏行业和云计算是天然共生的,在所有云供应商里面,阿里云和其他公有云最大的区别是什么呢?首先阿里云上面承载的是我们阿里巴巴集团的核心架构,阿里巴巴的淘宝天猫都是跑在阿里云之上的,这是最大的区别。等于是你开了一家饭店,但是你自己会不会在里面吃饭的问题,很多云供应商他们自己的核心业务并没有跑在公有云之上。每年的双十一对大家来讲是消费的狂欢节,但对我们来说就是最大的一次压测。我们对整个集团提供服务。这是我们自研的分布式系统。
这是阿里云整体部署架构图,现在我们在全球多点数据中心上面架构X86极群,超过20万台物理机连起来,我们类比开发者,上面蓝色部分就是云产品。后面这张图是我们目前在阿里云上对于游戏云业务的前景图,对于游戏这个行业来说,云供应商要提供的不仅是非常稳定的产品和带宽,更重要的是在云上面提供金牌7×24小时的服务。这是目前我们阿里云能够提供给客户的产品全家图,从弹性计算到数据库,再到CDN存储,包括PaaS的东西,全齐了。这张是我们目前能看到的游戏行业常用业务全景图,我分块解释一下。这是游戏平台,包括登陆支付,包括其他渠道接口平台。第二个是Game Server,这块对游戏厂商来说是最重要的。最右面是游戏的数据平台。刚才Unity也讲到了,包括游族网络也讲到了,很多游戏厂商都在做精细化运营,精细化运营就是数据分析能力。给大家讲讲我们阿里巴巴怎么样用大数据的方式去提高游戏用户的留存率。
首先是阿里云上的游戏专项集群,我们的内网隔离做的非常好,在公有云上,就像一个饭店一样,其他的公有云,比如你买10台或者100台,它们之间有影响,但我们能够隔离,并保持高速。CPU性能保障,磁盘I/O性能保障。当然,最重要的是数据库部分,阿里巴巴是做电商起家的,我们最重要的是数据库。接下来是我们在游戏集群上最重要的的是RDS,我们这些数据库用起来和正常的数据库是一模一样的,但后面能提供什么多余的服务呢?这是我们的全景图,你使用的一个数据库是双核的,能保证你的游戏数据不可能丢失,也不可能档机,保证用户的数据绝对不会回档或者有丢失,或者没法校验的情况发生。这个图周边部分是我们阿里云自己开发的一套集群控制部分,包括自动任务调度,包括在线迁移,包括备份,有了它的保障,让游戏客户,包括游戏大厂商不用找专职人员,在数据库全部解决。
除了我们能做到逻辑上的保障之外,在底层硬件上我们怎么保障呢?一个数据库和一台服务器,从机柜到电源,我们都分两份。比如你所购买的一台服务器和数据库,它不可能因为一些能源,比如电源断了,去损耗你的数据。再是怎样减少停机时间,目前我们的公有云上可以做到可用性达99.95%,我们是双节点冗余,有问题直接切到备库。大部分开发者,无论是个人开发者还是公司,他们都很头疼数据怎么做备份,但造成的一个问题是空间很大成本很高。我们阿里云数据库本身是默认给你保持七天日志,数据会恢复到一个临时实例,可以直接回到那个时间点进行校验。再是数据容灾,现在很多游戏能够做到玩家跨区战斗,面对游戏行业的这个变革,对于数据库的容灾和数据库的安全性要求逐步提高,我们目前能够做到三级高可用容灾架构,这是第一级最基本的。第二级在云上可以做到多可用区部署。我们也可以做到异地容灾,大家都知道余额宝,跟金融相关的所有项目至少需要两地三中心异地部署的,目前我们可以对游戏用户把这个功能开放出来,提供三层容灾保障。
在阿里云上我们的数据可以热升级,完全不影响你的业务,我们的技术可以做到这一点,帮助很多客户上线初期减少很多麻烦,很多客户,包括小的开发者,预估不到未来数据库影响多大,在云上开一个最小实例,随着业务量增长,你可以随时把数据升到更高的位置,这是纵向扩展。其实阿里云数据库最大的是横向扩展,它是一个数据库的集群,这是DRDS,分布式的数据库。目前在游戏行业能用这么大扩展能力和这么大数据吞吐量的还很少用到,但未来会用到这些最新技术。这是数据库。
说完数据库说我们的网络,阿里巴巴最早做电商,我们有两个技术,一个是SQL技术,一个是CDN。我们全球所有节点都是纯自建的,而且目前能够把成本做到最低,带宽做到最高,质量第一。左边部分是阿里云的基线,其他的厂商,基本上从各个地区和各个运营商基调测试来看,都大大弱于阿里云,只有几个比较偏僻的地方,一些小的地方比较偏的问题他会有一些优势。
说完游戏服务器,第二部分是我们的游戏平台部分。
无论你现在是开发者或者是小CP,或者是中型厂商,你的游戏平台部分可能不会很多,但这是核心,所有的登陆、支付和接口都在这部分,我们一定要保证高可用性。这是跑在云上的卡牌游戏,左边是他的平台部分,想表达的是大部分游戏厂商在他们平台部分完全没有做任何高可用的架构设计。你们公司的平台部分,不说官网,就说登陆和支付,它可能都是单机,登陆的话除非你是刚发行的时候并发量很大,没有必要做负载均衡,但实际上是错的,我们之前看过很多游戏客户,他属于中型厂商的时候没有那么大的并发量,但如果有一天他收了比较好的IP,准备上线的时候,发现他推的这一天从UC或者360过来的用户远远超过他的预测,这个时候他的平台不给力,档掉了,但是在我们云平台我们可以帮他解决。我们在平台部分向用户强烈推荐的,而且是在云上做护航的重点客户。目前华人对开源社区做最大贡献的就是我们阿里巴巴首席技术官贡献给开源社区的。简单来说,你的整个平台入口完全没有任何单点故障,如果一台服务器有故障切到另一台。
这是真实的负载均衡部分架构图,我们在所有关键点上都是物理上两台机器,假设这个负载均衡设备在一个机房里,这个机房也出现故障。中国的骨干网联通电信经常出现抖动,导致不稳定。我们现在可以提供更高级的容灾,如果这个时候电信出现任何故障,可以把应用全部承接过去,保证你的登陆平台支付平台不会受到任何影响,电信有故障还可以走联通。后面是数据分析平台,结合前面几位讲的,包括Unity ADS广告,社会党人说做数据想的是怎么用这个数据把我的客户更吸引住,其实我们阿里巴巴,包括马云提倡的是我们做到千人千面。09年阿里云成立,2010年我们非常低调上线了一个ODPS平台,在2012年整个集团做了一件事,阿里巴巴集团将所有数据汇总到这个平台上,现在大家看到的阿里巴巴所有数据,我们收购的,所有的数据,这么大规模数据都在一个平台上,就是ODPS平台上。把数据汇总到一起可以多维度分析你的用户,做用户画像,每个人登陆淘宝你看到的界面都是不一样的,这就是所谓的“千人千面”。刚才Unity广告也是,他只是说每个人都要看这个视频,但你是否能够通过大数据分析这个用户想看的是什么视频,如果你给他看的是他感兴趣的视频,你的收入就会大大增加,这是我们大数据做的东西。
后面给大家介绍一下目前我们大数据能处理的能力,包括我们的单核已经超过500TB内存能力,超过10万核的能力,包括留存分析,需要逻辑回归算法,有多大数据算多大数据。你知道大致知道怎么写SQL,知道哪个算法,就可以即开即用。
刚才所有的东西总结成一句话,数据存和用,在存通这块我们向客户提供的是什么呢?以前我们做到的是游戏部署在云上,做大数据分析,现在游戏不在云上。我们举一个例子,墨迹天气APP,很多海外华人也在用这个APP,这个APP已经拥有超过4亿注册用户,每天日志增长的非常快,需要分析每天哪个区域有哪些用户增长很快,我对他推送什么样的天气和相应的广告。这是他在云上的整体部署图,他在国内、韩国、日本都有自己的机房,在机房上部署了阿里云数据采集,每天写他的SQL,做数据分析,然后形成日志,做他的整体报表。原来他这个平台是跑在亚马逊AWS上,为什么迁到阿里?因为亚马逊是面向开源的,没有对底层数据量进行压缩,我每天采集的日志可能有400G、500G,每天存这些数据就有很高的成本,大量都是重复的日志,你可以做很好的压缩,压缩完之后把空间压到很小。我们云上本身做压缩,能够把存储成本降低到之前的70%,减到30%,从成本到技术到实现上都是可以的。
我今天主要讲三点,简单可靠,成本最低。在游戏平台部分,阿里云可以保证你的平台不会出任何故障。在大数据方面,阿里云是目前公有云提供商里面最先进的,可以即开即用的。谢谢大家!