文档首页 > > 最佳实践> 游戏应用容器化部署(WOW)> 简介

简介

分享
更新时间:2020/06/17 GMT+08:00

本手册基于华为云云容器引擎实践所编写,用于指导游戏类应用的容器化部署。

游戏行业,尤其是现在特别火的手游行业,本质是短平快

  • 短:游戏生命周期短,特别是手游,一般一款游戏只有一年左右的生命周期。
  • 平:游戏后台架构是一个扁平的架构,大部分游戏都是单区单服。一台机器一个数据库,可以搞定好多个游戏服。
  • 快:游戏滚服快,很多游戏,用户都是爆炸式增长。通常一个游戏服只支持固定数量的用户,达到用户上限,就需要开一个新服。同时,由于生命周期短,也需要开发和部署上线快。

什么是容器

容器是一种轻量化的虚拟化技术,所谓轻量级虚拟化,就是使用了一种操作系统层虚拟化技术,这种技术允许一个操作系统上用户空间被分割成几个独立的单元在内核中运行,彼此互不干扰,这样一个独立的空间,就称之为一个容器。

随着虚拟化技术的发展,一台物理的机器可以虚拟成多台虚拟机,但是虚拟一个独立操作系统是存在系统损耗的,不可能虚拟太多。而容器就不同了,同一台机器,可以运行几十个甚至数百个容器。基本没有太大性能上的损耗,并且启动一个容器,就像启动一个进程那么简单,在秒级的时间即可完成。在游戏场景下,容器技术会有非常大的优势。

为什么需要使用容器

  • 传统游戏后台架构存在问题:一台机器同时运行大量游戏服,当机器宕机时,影响用户面广泛。

    容器解决方案:容器技术其中一项重要的优势是轻量化,能够以很细的粒度,虚拟化独立的系统运行环境。这就意味着,一台物理服务器,或者一台云服务器,能够同时运行成百上千个独立的容器。每个游戏里面的每一种业务逻辑,比如控制人物行走、战斗、聊天等,都可以运行在一个独立的容器中。这一系列的容器就构成了一个独立的游戏世界。

    同时,还可以根据每一类业务使用资源的不同,合理规划这一类容器的资源用量,做到彼此隔离,互不干扰。

    并且,容器化之后,某一次机器故障可能只影响部分游戏服里面的某些业务逻辑。譬如控制行走任务的容器正好位于某个故障机器时,只是瞬时卡顿,立即就可以恢复正常。借助监控手段,一些重要的业务逻辑甚至可以同时运行多个备份容器,当一个逻辑出问题时,能快速切换到备用容器。

  • 游戏生命周期短,要求快速开发上线。

    容器解决方案:Docker容器的核心概念是Build、Ship、Run,涵盖了从开发到部署的全流程。以容器为单位,开发完成后,打包为容器镜像,放到仓库,进入测试流程,测试完成后,再放到仓库,最后到生产环境。三个环节平滑衔接,避免了复杂的运行环境搭建的工作量。这样就实现了游戏的快速开发上线。

  • 玩家在线峰值低谷明显,要求具备极速弹性伸缩能力

    容器解决方案:容器启动速度为秒级,在业务量暴增时,可秒级启动容器,保障业务稳定。

CCE云容器引擎核心优势

  • 支持裸金属容器服务,游戏业务性能提升200%以上。

    游戏行业对网络性能以及服务器运算能力要求苛刻。CCE支持裸金属容器服务,如图1,游戏可基于裸金属服务部署,容器直接运行在物理机上,无任何虚拟化性能缺失,可获得和物理机同等的超优性能,游戏的业务性能提升200%以上。

    图1 裸金属容器服务
  • 容器秒级弹性伸缩,节省资源成本数百万。

    流量不可预知性,是游戏应用的常态。CCE提供灵活的秒级弹性伸缩能力,保障业务的高稳定性,提升用户体验。同时减少资源预留,可节省投资数百万。根据游戏特征,CCE提供了灵活的弹性伸缩策略,可自由组合使用。

    表1 灵活的弹性伸缩策略

    弹性伸缩策略建议

    说明

    • 游戏每日高峰低谷明显,建议采用“周期弹性伸缩策略

    以某天某游戏的数据为例,午后和晚上达到峰值。

    建议采用“周期策略”,比如在2018年1月1日到2019年1月1日,在每天13:00,增加100个实例。

    • 针对新游戏上线,建议采用“告警弹性伸缩策略

    一款新游戏上线,无法确定玩家数量,可能会出现大量玩家瞬间涌入,或无人问津。无法根据现有经验来预留适合数量的机器。

    建议采用“告警策略”,比如当CPU/内存超过70%时,增加1个实例;当CPU/内存低于40%时,减少1个实例。

    • 针对游戏中各种运营活动,建议采用“定时伸缩策略

    游戏中活动频繁,在活动之前配置好“定时策略”,比如8月8日的12点,增加100个实例。

  • 滚动升级策略,业务0中断,保障玩家畅快体验。

    游戏特性需求快,版本变更频繁,升级效率以及升级过程中的用户体验至关重要。

    CCE提供滚动升级策略,对各个实例逐个进行单独更新,而非同时对所有实例进行全部更新的方式,确保升级过程中业务不中断。

  • 支持有状态应用,解决游戏容器化部署难题。

    游戏服构成了一个独立的游戏世界,在这个世界中,玩家的数据需要不断的更新存储,若游戏期望容器化改造,则必须满足一个前提:确保数据的存储。CCE支持有状态容器应用(即应用运行过程中需保存数据或状态),并利用华为云的EVS/SFS等存储能力利用高可用存储卷,解决了游戏应用的容器化部署难题。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问