游戏部署换新季,华为云 618 营销季助力游戏企业闯关升级
前言
随着云计算、AI 等新一代信息技术的高速发展,走在数字化、智能化前端的游戏行业正逐渐向精品化、IP 化、多样化的格局迈进,这也对游戏开发者提出了更高的要求。如何保证游戏性能稳定,为玩家提供流畅的开黑体验?今天准备尝试用下华为云的服务,沉浸式感受游戏云端部署解决方案的强大。
![](https://static001.geekbang.org/infoq/de/de57cebfb1c2fe9a8f72b0a093fe3b2b.png)
1、游戏架构介绍
1.1 服务器架构
不同的公司有不同的游戏服务器架构,所以部署的具体细节大多不相同,但是基本的部署准备还是一样的,先看下我们的游戏架构,方便读者朋友了解后续的准备工作。
![](https://static001.geekbang.org/infoq/83/83e85d3d6c7c6a7e65e9b6fd4b2857b3.png)
1.1.1 服务器角色具体介绍
Client:游戏客户端。
Gate:网关服,这里不承载游戏的链接,仅仅做游戏服务器的地址发放,玩家从 gate 服获取正式游戏服的 ip 和端口。
Game:玩家主要在的游戏服务器只有一个。
Room:房间服,玩家匹配进入战斗后将进入战斗服,如果战斗多可以做动态扩展。
Gm:后台管理服务器,可以做活动的发布或者管理玩家数据。
Redis:主要用来做缓存,避免数据库的频繁访问压力。
Mysql:主要用来做数据的持久化。
1.1.2 玩家数据流
玩家(client)通过 http 方式访问 gate 服务器,获取 game 服务的 ip 和端口。
client 通过拿到的 ip 和端口直连 game 服务器,这样玩家就登录进了服务器。
当玩家操作角色进行匹配战斗的时候,匹配成功后会将需要的数据传入 room 服务器,所有的战斗指令也会被传入 room 服务。
当玩家需要查询数据时,比如想获得背包,game 服会先像 redis 查询,如果数据不存在,则像 mysql 查询,查询到数据后会存入缓存。
当玩家角色数据发生变化时,比如获得了新的道具,这个时候需要操作数据库,game 服务器会先更新数据库然后更新缓存。
当发布活动和修改玩家数据的时候使用 gm,通过发布指令到 game 服。
1.1.3 服务间交互协议
http 协议:主要发生在访问场景比较少的地方,client 和 gate,game 和 Gm 之间。
dubbo 协议:主要使用在内部服务器之间交互数据,简单直接,像操作本地方法一样。
Webscoket:主要用在 client 和 game 之间,因为这是一个网页游戏的服务器,所以使用了 websocket。
1.2 部署方式
这里使用 docker 的方式,原因有几点:
标准化应用发布,避免环境带来的问题。
节约时间,方便快速部署和启动。
团队同学比较熟悉,降低犯错的可能性。
2、部署准备
2.1 环境准备
2.1.1 机器准备
对服务器的配置做了一个表统计,准备好服务器就好,下表是参考华为云官网。
注:具体价格实际以官网价为准
![](https://static001.geekbang.org/infoq/98/98ea2f5543f61bbd63afcba5980554f1.png)
2.1.2 解决方案构成
·弹性云服务器 ECS:是一种云上可随时自助获取、可弹性伸缩的计算服务,帮助打造安全、可靠、灵活、高效的应用环境。
·弹性负载均衡 ELB:将访问流量自动分发到多台云服务器,扩展应用系统对外的服务能力,实现更高水平的应用容错。
·云数据库 RDS for MySQL:拥有即开即用、稳定可靠、安全运行、弹性伸缩、轻松管理、经济实用等特点,让客户更加专注业务发展。
·分布式缓存服务 Redis 版:业界首个支持 Arm 和 x86 双架构的 Redis 云服务,支持双机热备的 HA 架构,提供单机、主备、Proxy 集群、Cluster 集群、读写分离实例类型,满足高读写性能场景及弹性变配的业务需求。
·云日志服务 LTS:提供一站式日志采集、秒级搜索、海量存储、结构化处理、转储和可视化图表等功能,满足应用运维、网络日志可视化分析、等保合规和运营分析等应用场景。
·DDoS 防护 AAD:提供全球化服务,以应对 DDoS 攻击挑战,可提供毫秒级攻击响应、多维度行为分析及机器学习、防御策略自动调优、精确识别各种复杂 DDoS 攻击,以保护您的业务连续性。
·弹性公网 IP EIP:弹性公网 IP(Elastic IP)提供独立的公网 IP 资源,包括公网 IP 地址与公网出口带宽服务。可以与弹性云服务器、裸金属服务器、虚拟 IP、弹性负载均衡、NAT 网关等资源灵活地绑定及解绑,提供访问公网和被公网访问能力。拥有多种灵活的计费方式,满足不同业务场景诉求
·文档数据库服务 DDS:文档数据库 DDS 兼容 MongoDB 协议,在华为云高性能、高可用、高安全、可弹性伸缩的基础上,提供了一键部署,弹性扩容,容灾,备份,恢复,监控等服务能力。目前支持分片集群(Sharding)、副本集(ReplicaSet)和单节点(Single)三种部署架构。
2.2 镜像准备
镜像的准备打包推送到私有仓库,具体的方法可以使用一些插件,也可以使用 Jenkins,或者手动推送,无论哪种方式,这里准备下可能需要用到的手动命令。
2.2.1 安装 docker 服务
![](https://static001.geekbang.org/infoq/d1/d1986f0967fb0d0d32f7b40e130eec50.png)
2.2.2 打包镜像
将 jar 包拷贝到和 dockerfile 相同目录下,执行下面命令,打包镜像。
![](https://static001.geekbang.org/infoq/40/40892b52251d81ed3f3ba8d34cb6959e.png)
2.2.3 将镜像打包为本地文件
镜像导出为压缩包,方便传输。
![](https://static001.geekbang.org/infoq/d1/d1986f0967fb0d0d32f7b40e130eec50.png)
2.2.4 解包镜像
登录到服务器之后,将上面的文件拷贝到本机,使用下面的命令将镜像导入到当前机器;
![](https://static001.geekbang.org/infoq/bb/bbc9b374402e8632f37089d156eda57f.png)
2.3 部署脚本
![](https://static001.geekbang.org/infoq/a3/a314dfd11cc073a10c515b1250c08d74.png)
注:上述是开发环境,环境变量有些是默认,在正式环境部署时候需要动态调整。
2.4 注意点
gate 服务器需要开通公网 ip。
excel 配置文件要提前规划,在 docker 脚本中挂载。
docker 挂载的数据目录和日志目录需要提前规划。
每个服务器内部的端口映射要提前规划。
环境变量需要在脚本中修改,包括 mysql 和 redis 数据库地址,需要链接的服务器 ip 和端口,以及相关的服务器配置等。
3、正式部署
3.1 环境调研
游戏痛点:
新游首发、海量玩家在线,高并发访问扩容不及时;
网络时延高,游戏卡顿、玩家掉线;
自建周期长成本高,无法弹性伸缩。
大多游戏服务器属于计算密集型的,所以游戏服务器云厂商选择核心点有以下几条:
资源扩容能力,能及时扩容,根据需求灵活购买资源,实现动态扩展、成本优化,支持游戏开服、扩服、并服等场景的业务运行。
计算能力卓越,同类型 ECS 高于友商 15%,PPS 领先;容器快速发放,性能对比开源高 20%,BMS 可 5 分钟发放。
安全防御,华为云提供了单线路 T 级 DDoS 高防 IP 服务以及百万 QPS 级 CC 防护,基于黑客攻击机器学习、业务风控大数据智能隔离等 AI 能力,保障中手游游戏长期安全运行。
简化云上运维工作,平台为游戏客户提供 7x24 小时服务,专项保障、专家支持,确保重大活动业务稳定。不仅能够实现快速部署,而且华为云云游戏管理服务平台可对游戏内容、游戏使用时长进行管控,所有云游戏运营商客户均可快速接入华为云云游戏管理服务平台,获得全套自动化部署环境;还可通过游戏开发及运营一体化,确保在用户实时在线的场景下即可完成游戏优化和体验升级,让产品整体交付效率提升。
资费,好用且便宜是每个公司的追求,降本增效,多种计费模式,起步预算低,按需使用,用多少付多少,有效缓解企业初创资金压力,更省钱。
总结:华为云游戏云端部署解决方案,提供覆盖全球的云基础设施,支撑千万级玩家同时在线稳定运行,助力游戏企业打造精品化游戏,保障游戏弹性部署和无忧运维。
3.2 套餐购买
下面是在官网套餐截图,可以作为参考配置,等到正式生产环境的时候根据资源动态配置。
注:点击可看大图
![](https://static001.geekbang.org/infoq/83/83eeb38b8942395c502a6673f3870e2f.png)
![](https://static001.geekbang.org/infoq/b8/b818cd3e0aebf32c419d0406acd58aac.png)
![](https://static001.geekbang.org/infoq/e5/e5d1cb1f9ac2558a2a29fdd1ad245ac2.png)
3.3 华为云核心优势汇总
数据库能力:高并发场景,性能稳定性优于友商 Mysql 主备切换效率优于友商。
海外区域亚太覆盖:华为网络质量(时延和丢包)总体优于友商(除日韩、越南、台湾)。
计算能力:ECS——同类型 ECS 高于友商 15%,PPS 领先;容器——快速发放,性能对比开源高 20%。
网络能力:内网带宽转发效率最高,ELB 亿级并发。
安全防护:华为云打造租户隔离的安全平台,并提供完善的安全服务保障业务和数据安全,为您的游戏保驾护航。
极简运维:云上运维工作,平台为游戏客户提供 7x24 小时服务,专项保障、专家支持,确保重大活动业务稳定。
高数据可靠性:ECS 服务通过商业和技术上的合理努力,承诺单实例维度每服务周期服务可用率不低于 99.975%;单区域多可用区维度每服务周期服务可用率不低于 99.995%;基于分布式架构的、可弹性扩展的虚拟块存储服务,具有高数据可靠性,高 I/O 吞吐能力,能够保证任何一个副本故障时快速进行数据迁移恢复,避免单一硬件故障造成数据丢失。
3.4 机器环境准备
3.4.1 安装 docker
远程登录到机器之后,切换到 root 用户,执行下面的命令,安装 docker 环境
![](https://static001.geekbang.org/infoq/cf/cf212e8e001aacc7c2e1cce9eec5cb2c.png)
3.4.2 拷贝文件到目标机器
文件列表如下:
镜像文件,根据 2.2 中相关命令,拷贝到本地,如果用私有仓库,则不需要执行此步骤。
拷贝配置文件到机器,将所有的 excel 配置文件拷贝到机器,并在启动脚本中配置挂载
启动脚本,在规划的目录下创建并修改启动脚本,设置相应的参数。
3.4.3 脚本执行
在所有的文件都准备好之后,切换到脚本所在目录,可以直接启动脚本,下面以 game 为例
![](https://static001.geekbang.org/infoq/40/40892b52251d81ed3f3ba8d34cb6959e.png)
3.4.4 验证服务器正常
首先查看所有服务器的日志是否有报错异常,然后使用特殊账号进行登录,验证服务器功能正常
验证点:
可以正常登录
可以匹配战斗
http 接口正常
服务器操作正常
主要业务逻辑正常
验证以上逻辑后通知测试同学进行功能测试。
3.4.5 开服
待测试同学测试通过后,通过 gm 设置服务器状态为开服状态,部署流程结束。
4、总结
九层之台,起于垒土。华为云在游戏领域的发力,并非一日之计。
好的云服务厂商可以让事情更简单、更容易,华为云值得作为首选。
华为云游戏云端部署解决方案,提供覆盖全球的云基础设施,支撑百万级玩家同时在线稳定运行,结合云上运维运营,助力游戏企业实现业务的快速上线和弹性扩展,有效应对游戏的突发性需求和游戏企业出海发展需求。
为了让更多游戏行业企业轻松上云,实现智能化升级,目前华为云 618 营销季正在进行中,尤其对游戏行业企业,华为云推出了众多云上优选的产品及爆款解决方案,机不可失时不再来,感兴趣的小伙伴快去看看吧!
评论