完美世界:百款游戏背后的运维实践
更多深度文章,请关注云计算频道:https://yq.aliyun.com/cloud
本次阿里云云栖社区行业圆桌论坛上,完美世界运维部总监赵鹏和阿里云同学为大家分享完美世界的上云实践和在运维方面的技术之路。其中包括游戏上云的特点,阿里云对游戏行业实施的解决方案等。对话行业大咖,引领云端科技,畅谈云上话题,尽在阿里云云栖社区行业圆桌论坛。
以下内容根据阿里云行业圆桌论坛视频整理而成。
本期嘉宾介绍:
赵鹏,完美世界运维部总监;
翔贺,阿里云资深架构师。
上云趋势不可避免,越来越多的企业启动上云之路。在云计算普惠时代,各行各业都在发生着变化。
阿里云行业圆桌会,汇聚APP、网站、游戏、金融、电商、音视频、健康、教育、能源、政务、运输、制造等12大行业类别,邀请阿里云经典客户,一起聊聊他们的上云之路,以及云上技术实践!
完美公司的主要业务是游戏和影视,游戏像PC当中的《完美世界》国际版、《诛仙》、《笑傲江湖》等,手游也是近两年完美的发展方向;影视方面像《失恋33天》、新版《射雕英雄传》等都是完美影视作品。完美是影游联动,去做文化娱乐产业。
那么,阿里云对游戏行业有什么解决方案?
翔贺介绍说,游戏行业对稳定性、性能表现比其他行业要高,甚至要超过金融行业,游戏行业会有流失行为,当你的服务不稳定,用户体验不好,玩家就流失掉了。阿里在游戏方向从第一天就开始在产品上做功课,现在有高效云磁盘、SSD云盘等更好的符合游戏简单部署的场景,传统的性能磁盘肯定不能满足游戏行业的需求;从产品架构设计上来说,数据都是多分容存储的,也支持热迁移,突发性的宕机迁移,数据可靠性能够得到很好保障;从稳定性来讲,我们也打造了游戏专享集群,在这个集群里我们会要求客户本身业务的健康度。我们也会深入行业的业务层,包括卡牌、棋牌等都会有针对性的方案提供给游戏合作伙伴参考,如何在云平台更好的构建业务。另外,我们的售后服务体系保障的时效性和处理速度也非常专业。
完美上云实践
游戏上云和其它行业上云有什么不同吗?完美世界的上云之路都应用了哪些云产品?
游戏是互联网的一部分,常规互联网的运维自主性更强,运维人员可以使用更开源、更新的技术,而游戏受限于整个研发团队,很难去改变它已经定义好的技术上使用的工具、内容,一旦改变就会影响整个游戏的稳定性。
游戏上云时,第一会考虑可定制化,有时我们会对内核做一些调整,对系统做一些修改;第二会考虑性能,游戏是理论上的单点,对性能有一定要求;第三会考虑稳定,我们很难接受服务器宕机,我们的目标是让宕机率越来越低,赵鹏如是说。
接着他又说,云所提供的服务不仅有云主机,还包含CDN、防护等,完美在上云过程中,将云主机当作虚拟IDC处理,使用云产品时不会破坏整个运维体系和架构,它只是被当作触角延伸出去。阿里本身技术能力也很强,我们的IDC人员只需和阿里技术人员沟通好。
对于老游戏如何平滑的迁移到云上,新游戏如何快速的部署到云上?
赵鹏解释说,老游戏就是把现有的架构迁移到云上,阿里云已经支持架构的定制化,我们可以无缝的迁移。新游戏,我们会更多的考虑云主机资源的弹性以应对突增。
完美目前是自建IDC和云服务样的混合云架构?
赵鹏谈及,游戏行业对程序的安全性比较重视,我们所有的运维都有自己的运维网络,IDC之间的互联,或是自己拉专线,或是通过VPN方式打通虚拟通道来去做管理,可以把完美现有的架构当成私有和公有混合的云,既有云主机也有实体机,既有自建IDC,也有云IDC。
翔贺也说,混合云在现在还是有存在的必要性的,包括在安全上、性能上、传统的运维方式以及存量服务器的因素等,在这个时代我们会去适应这样的场景。混合云包括两种,一是云平台+物理机,一是多家云平台混合使用,我们都有相应的技术支持,我们可以将云上云下通过专业的方式打通,可以通过VPN方式实现子网IP地址统一管理,可以实现私网互通。
紧接着赵鹏又说,云会给我们带来方便,但不会颠覆我们的运作方式,它是我们资源的扩展,它给业务运维提供的东西还是一个一个符合网络要求、性能要求、系统版本要求的操作系统,更多的是实现融合。完美的运维团队有60多人,负责北美、国内和海外约140个项目。
对运维的理解和探索
如何在游戏业务架构上保证高可用性?
游戏架构决定游戏怎么去搭建生态环境,有些游戏是单组的,一组能够承载的人数取决于本身系统提供的性能和程序本身设定的环境,超过上限玩家可能抢不到挂、任务组队不容易等,甚至游戏内的金融环境也会产生影响,为了满足玩家,我们只能不停的开服,这时候云对我们就很重要了,赵鹏认真的解释道。
对DevOps的理解大家各有见解,而赵鹏理解是,他会把它分成两部分去看。一部分是做平台,脱离业务做通道、平台、流程流控,因为它不知道这款游戏合服怎么合,挪服怎么挪;一部分是做业务,通过自己的脚本能力,Python、Shell等形成标准的操作脚本,脚本的输入输出要符合要求,将它嵌进去也算是devOps。
翔贺也做了自己的理解,DevOps核心是解决研发,业务层包括代码,以及传统IT之间交付的效率协同,完美的运维平台就是在解决DevOps的场景,可能与业内DevOps定义不完全一样,但我们要实现的目标和目的是一样的。
对于某游戏发生宕机造成回档,以及gitlab删库事件有什么看法?
赵鹏深有感触,备份失效的事件我们也发生过,我们很早就开始反思备份策略,之前定制的规定是否做到位了呢?我们现在采取三级备份,本组服务器的备份、本机房存储空间的备份和第三方机房甚至云上的备份,如果机器宕机,我们保证一个小时内回档数据。除了备份之外,我们也强调备份后的可用性,我们会定期做备份的演练,抽档的检查。同时,我们也会通过手机、微信的报警联动进行监控。
阿里云每一款持久化数据的产品以及缓存类的产品都会做持久化和容灾策略,首先我们要保证服务的高可用性,其次要保证数据的高可靠性,主从切换时尽量保证数据的一致性。
最后,赵鹏对想从事运维行业同学给出了自己的建议,首先是线下学习,才能在后续做更大的发展;其次,运维也要保证好身体;另外,我们也要有好心态,能够承受压力。运维做到最后是让人感觉不到明显的存在,因为我们把事情做到位了,不出事故。