BpFile(id=305, bpId=182, name=基于ECI+FaaS构建游戏战斗结算服, author=null, keyword=ACK,ECI,函数计算,游戏, description=在游戏行业的很多SLG游戏作品中,为了防止客户端作弊,在每局战斗之后,在客户端预判玩家胜利的情况下,需要服务端来进行战斗数据的结算,从而确定玩家是不是真正的胜利。战斗结算是强CPU密集型,结算系统每日需要大量的计算力,尤其是开服或者活动期间忽然涌入的大量玩家,导致需要的计算量瞬间几倍增长,同时需要结算系统保持稳定的延时来保证玩家的用户体验,本文通过一个游戏场景下的案例,重点介绍了函数计算在游戏研发中的实践, position=null, ossUrl=bp-A0NCOZ5GVNPJV30E.pdf, tags=null, level=null, tagList=null, products=null, productList=null, hotspot=null, oneClick=0, createTime=null, modifiedTime=null, timeConsuming=null, status=1, pdfDescription=
在游戏行业的很多SLG游戏作品中,为了防止客户端作弊,在每局战斗之后,在客户端预判玩家胜利的情况下,需要服务端来进行战斗数据的结算,从而确定玩家是不是真正的胜利。战斗结算是强CPU密集型,结算系统每日需要大量的计算力,尤其是开服或者活动期间忽然涌入的大量玩家,导致需要的计算量瞬间几倍增长,同时需要结算系统保持稳定的延时来保证玩家的用户体验。
1. ECI支持500台实例30S弹出,快速解决业务模块扩容压力。FaaS毫秒级伸缩扩容,化解算力瓶颈,平滑解决暴增调用请求。
2. 降低成本:ECI每天弹性运行8小时,与6代同规格包月相比节省成本40%+,FaaS按需付费,即开即用,节省预留资源消耗。
3. 免运维:FaaS和ECI都是全托管免运维的服务,客户专注业务开发即可。
4. 模块公共化:减轻游戏逻辑服的压力,结算需求复用到类似需求的游戏。
, templateId=null, freetry=, visitTime=null, visitCount=null, video_url=null, buttonName=null, buttonUrl=null, targetId=null, partner=null, partnerUrl=null, partnerLogo=null, cooperation=, cooperationList=null)
1
基于 ECI+FaaS构建游戏战斗结算服 最佳实践
在游戏行业的很多游戏类型中,尤其是
SLG,为了防止客户端作弊,在每局战斗之
后,在客户端预判玩家胜利的情况下,需要
服务端来进行战斗数据的结算,从而确定玩
家是不是真正的胜利。战斗结算是强 CPU
密集型,结算系统每日需要大量的计算力,
尤其是开服或者活动期间忽然涌入的大量
玩家,导致需要的计算量瞬间几倍增长,同
时需要结算系统保持稳定的延时来保证玩
家的用户体验。
⚫ 容器 Kubernetes ACK
⚫ 容器实例 ECI
⚫ 容器镜像仓库 ACR
⚫ 函数计算 FC
⚫ 访问控制 RAM
⚫ 专有网络 VPC
⚫ 云服务器 ECS
2云服务器 ECS(产品名称) 文档模板(手册名称)/文档版本信息
文档版本:20150122(发布日期) II
3基于ECI+FaaS构建游戏战斗结算服 文档版本信息
文档版本信息
文本信息
属性 内容
文档名称 基于 ECI+FaaS构建游戏战斗结算服
文档编号 182
文档版本 V1.0
版本日期 2020-11-27
文档状态 对外发布
制作人 七凌
审阅人 天裵、寻野、西流
文档变更记录
版本编号 日期 作者 审核人 说明
V1.0 2020-11-27 七凌 天裵、寻野、西流 创建
4基于ECI+FaaS构建游戏战斗结算服 法律声明
法律声明
5基于ECI+FaaS构建游戏战斗结算服 前言
前言
名词解释
⚫ VPC:专有网络 VPC(Virtual Private Cloud)是用户基于阿里云创建的自定义私
有网络, 不同的专有网络之间二层逻辑隔离,用户可以在自己创建的专有网络内创
建和管理云产品实例,比如 ECS、负载均衡、RDS 等。更多信息,请参见:
https://www.aliyun.com/product/vpc
⚫ 容器服务 ACK:提供高性能、可伸缩的容器应用管理能力,支持企业级容器化应
用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳
容器化应用运行环境。详见:https://www.aliyun.com/product/kubernetes
⚫ 访问控制 RAM:RAM 使您能够安全地集中管理对阿里云服务和资源的访问。您
可以使用 RAM 创建和管理用户和组,并使用各种权限来允许或拒绝他们对云资
源的访问。详见:https://www.aliyun.com/product/ram
⚫ 弹性容器实例 ECI:提供免运维和快速启动的容器 Pod 运行环境。您可以通过
ECI ,秒级启动上千个 Pod ,提升业务扩容速度而无需提前购买和管理底层
ECS 服务器,并仅为容器实际使用的资源付费(按量按秒计费),降低业务运行成
本。详见:https://www.aliyun.com/product/eci
⚫ 容器镜像服务 ACR:提供企业级镜像安全托管能力,具备大规模镜像分发能力,
支持千节点镜像并发拉取,保障业务极速部署,解决大镜像分发难、多节点拉取慢
难题。拥有企业级安全独享特性,镜像经加密存储在用户 OSS Bucket,提供镜像
安全扫描、细粒度网络访问控制等,进一步保障镜像存储及访问多方安全。
详见:https://www.aliyun.com/product/acr
⚫ 函数计算 FC:阿里云函数计算是事件驱动的全托管计算服务。通过函数计算,您
无需管理服务器等基础设施,只需编写代码并上传。函数计算会为您准备好计算
资源,以弹性、可靠的方式运行您的代码,并提供日志查询、性能监控、报警等功
能。详见:https://www.aliyun.com/product/fc
⚫ ECS:云服务器(Elastic Compute Service,ECS)是一种简单高效、处理能力可
弹性伸缩的计算服务。帮助您构建更稳定、安全的应用,提升运维效率,降低 IT
成本,使您更专注于核心业务创新。详见:https://www.aliyun.com/product/ecs
6基于ECI+FaaS构建游戏战斗结算服 目录
目录
文档版本信息 .............................................................................................................................................................. I
法律声明 ..................................................................................................................................................................... II
前言 ............................................................................................................................................................................ III
目录 ............................................................................................................................................................................ IV
最佳实践概述 ............................................................................................................................................................. 1
前置条件 ..................................................................................................................................................................... 2
1. 游戏通识介绍 ..................................................................................................................................................... 3
1.1. 游戏类型 ............................................................................................................................................. 3
1.1.1. 游戏类别区分 ............................................................................................................................. 3
1.1.2. 游戏载体区分 ............................................................................................................................. 4
1.2. 不同类型游戏技术特点 ..................................................................................................................... 4
1.2.1. 端游 ............................................................................................................................................. 4
1.2.2. 手游 ............................................................................................................................................. 4
1.2.3. 页游 ............................................................................................................................................. 5
1.3. 弹性计算实例关键指标 ..................................................................................................................... 5
2. 案例场景介绍 ..................................................................................................................................................... 6
3. 游戏架构搭建篇 ................................................................................................................................................. 7
3.1. 战斗结算服 ......................................................................................................................................... 7
3.1.1. 什么是函数计算 ......................................................................................................................... 7
3.1.2. 创建战斗计算服 ......................................................................................................................... 8
3.1.3. 使用工具部署函数(可选).................................................................................................... 18
3.1. 创建专有网络VPC ............................................................................................................................ 20
3.2. 创建ACK集群 ................................................................................................................................... 22
3.3. 网关服 ............................................................................................................................................... 29
3.4. 游戏服 ............................................................................................................................................... 34
3.5. 应用部署 ........................................................................................................................................... 38
3.6. 创建ECI集群 .................................................................................................................................... 44
7基于ECI+FaaS构建游戏战斗结算服 最佳实践概述
最佳实践概述
方案架构
方案优势
⚫ ECI支持 500台实例 30S弹出,快速解决业务模块扩容压力。FaaS毫秒级伸缩
扩容,化解算力瓶颈,平滑解决暴增调用请求。
⚫ 降低成本:ECI每天弹性运行 8小时,与 6代同规格包月相比节省成本 40%+,
FaaS按需付费,即开即用,节省预留资源消耗。
⚫ 免运维:FaaS和 ECI都是全托管免运维的服务,客户专注业务开发即可。
⚫ 模块公共化:减轻游戏逻辑服的压力,结算需求复用到类似需求的游戏。
8基于ECI+FaaS构建游戏战斗结算服 前置条件
前置条件
为了顺利完成本实践,您需要提前完成以下准备工作:
⚫ 注册阿里云账号,并完成实名认证。您可以登录阿里云控制台,并前往实名认证页
面(https://account.console.aliyun.com/v2/#/authc/home)查看是否已经完成实名
认证。
⚫ 阿里云账户余额大于 100 元。您可以登录阿里云控制台,并前往账户总览页面
(https://expense.console.aliyun.com/#/account/home)查看账户余额。
⚫ 安装 1.8或以上版本 JDK, 请参考:
https://www.oracle.com/java/technologies/javase-downloads.html
⚫ 安装 2.5或以上版本 Maven,请参考:https://maven.apache.org/download.cgi
⚫ 安装 2.3或以上版本 Docker,请参考:https://www.docker.com/get-started