《幻兽帕鲁》这款于近期横空出世的游戏不仅在玩家中引起了巨大的讨论度,也激发了大家通过云服务商搭建游戏私服的热情——由于这款游戏的开发团队是一家初创公司,官方的在线服务器面对热情的玩家(同时在线人数约 200 万)遭遇了流量风暴,显得有些力不从心。👀因此阿里云和腾讯云特地推出了云游私服的部署方案,帮助玩家实现更为稳定和丝滑的联机体验!
除了游戏本身的品质外,幻兽帕鲁的火爆与出圈还来自于打工人们对于游戏中被各位赛博老板压榨的“社畜”帕鲁的共情,为了帮助大家更简便地体验云游的乐趣,专注于平台工程与应用管理的 KusionStack 团队也加班加点地蹭个热度,向大家介绍一下如何使用 Kusion 实现幻兽帕鲁游戏私服的一键上云。
目前市面上提供的游戏私服部署方案一般都是在满足游戏运行硬件需求(一般是 4C16G)的云服务器上启动了幻兽帕鲁官方提供的服务端程序,同时开放 8211 UDP 端口的公网访问,这样玩家们便可以在 Steam 平台的客户端里输入公网 IP + 8211 端口号加入到专用服务器进行联机,游戏相关的配置(比如最大玩家数、困难程度和白天与黑夜的时间流逝速度等) 也可以通过程序启动时的配置文件进行修改。
以阿里云为例,从 0 到 1 创建一个幻兽帕鲁私服需要的云资源主要包括:
阿里云专有网络(alicloud_vpc)
阿里云虚拟交换机(alicloud_vswitch)
阿里云安全组(alicloud_security_group)
阿里云安全组规则(alicloud_security_group_rule)
阿里云 ECS 实例(alicloud_instance)
阿里云 ECS 命令(alicloud_ecs_command)
阿里云 ECS 调用(alicloud_ecs_invocation)
虽然阿里云和腾讯云已经对幻兽帕鲁云游服务器的安装进行了一定的简化,不过还是需要用户感知到如 ECS、VPC、SecurityGroup 或 OOS 等云产品的相关概念,因此我们使用 KusionStack 对相关的云资源又进行了一层封装,帮助用户实现端到端的一键部署,减轻认知和操作负担。
下面由小 K 带您一键部署幻兽帕鲁
01
·部署流程·
“
应用模型抽象封装
我们使用 Kusion Module 对于前述的云资源相关属性进行了封装,抽象出 PalWorldServer 这个应用模型,对外仅暴露资源名称(可选项)、服务器规格和网络带宽这三个字段,用户只需根据自己的需求选择相应的规格和带宽即可完成服务器的声明,相关的云资源渲染将由 Kusion Generator 来完成。
面向用户的应用模型
由平台团队实现的资源渲染逻辑
“
初始化在线应用模板
我们提供了可一键部署的在线应用模板,用户可以通过 Kusion 命令行工具拉取至本地,Kusion 命令行的安装可以参考下面的官方文档:
https://www.kusionstack.io/docs/kusion/getting-started/install-kusion
您可以使用:
kusion init --online
拉取在线模板,并选择 palworldserver-ecs 这个应用,并输入资源名称、实例规格("small" or "medium" or "large")以及带宽大小(单位为 Mbps,请输入正整数)最后进入到其中的 dev 目录下,您也可以一路回车,这将使用我们默认填选的 small 规格机器和 5M 带宽。
kusion init 使用在线模板初始化应用
各规格的服务器对应的实例类型以及按照默认的 5M 带宽所需的价格为:
“
依赖安装与环境变量配置
之后,您还需要在本地安装 terraform 命令行,同时配置好阿里云 RAM 账号的 AK 和 SK,相关的准备工作可以参考我们官网上的这篇文章:
https://www.kusionstack.io/docs/kusion/user-guides/cloud-resources/database#prerequisites
Terraform Install
Alicloud RAM User AK & SK
“
Kusion 一键部署上云
最后,您就可以通过:
kusion apply
完成幻兽帕鲁云服务器的一键部署啦!
kusion apply 一键部署应用所需云服务资源
“
云游服务登录验证
在本地的 dev/kusion_state.yaml 文件中,存放了应用资源的状态,您可以打开查看 alicloud_instance 的公网 IP:
之后便可以打开 Steam 客户端输入公网 IP:8211 端口登录游戏啦!
“
云服务资源一键删除
最后,您可以通过:
kusion destroy
命令一键删除相关的云服务资源:
kusion destroy 一键删除云服务资源
02
小结一下
我们基于 KusionStack 提供的原子能力对部署一个幻兽帕鲁所需的云服务资源进行了封装与抽象,便于用户可以随时随地拉起和销毁一台专有的服务器。当然,目前的实现还比较简单,有不少用户关心的可配置项没有很好地对外透出,比如:云资源地域、磁盘大小以及游戏相关的属性等等。
不过,我们不干有的是帕鲁干,欢迎对 KusionStack 感兴趣的同学试用和关注我们的产品,也可以加入我们共同建设更好地平台工程与应用管理技术栈。如果您在使用产品的过程中有任何问题或建议,可以加入官方钉钉群(42753001)进行交流,我们的 Github 页面上也有小助手的信息,点击左下角「阅读原文」即可跳转。
本周推荐阅读
SOFAServerless 品牌升级为 Koupleless,重磅发布 1.0 版本
线上应用 10 秒启动、只占 20M 内存!
大象转身:支付宝资金技术 Serverless 提效总结
Lunettes - 让 Kubernetes 服务运营更简单