作者:云原生游戏社区 当下,游戏行业正在经历云原生架构转型期,不少游戏厂商纷纷投入游戏服容器化改造。在此现象的背后,是云原生技术带来的先进生产力推动着行业向前发展:容器化提升了游戏交付的效率;声明一致性带来游戏开服效率、更新效率、以及可用性的提升;弹性伸缩使得资源可自动化地应对游戏高峰期与波谷期,在保证游戏服务质量的同时提高资源利用率。 2024 年 1 月 18 日,OpenKruiseGame (OKG) 社区与 KubeSphere 联合举办了议题为「用 OKG Dashboard 解锁云原生游戏运维之道」的技术直播。本文将与大家一起回顾分享内容。 OpenKruiseGame:游戏云原生化的理想路径尽管云原生带来了众多优势,但作为容器编排管理事实标准的 Kubernetes,其原生工作负载并不能很好地支持游戏场景,因此 OpenKruiseGame 在此背景下诞生。 1)OpenKruiseGame 是 CNCF 顶级开源云原生负载 OpenKruise 在游戏领域下的最佳实践抽象,项目由多家一线游戏公司共同贡献维护; 2)内置多云 / 混合云场景的适配,推出了 Cloud Provider 的模型,便于开发者在多种不同云环境下实现游戏的一致性交付; 3)可以通过无侵入式的声明方式与云上能力,例如:透明无损网络、极致秒级弹性、低成本资源供给、全生命周期可观测性等能力无感打通; 4)将游戏场景下的版本热更新、网络 IP 端口固定、区服管理、自动伸缩等通用能力进行抽象,并通过语义化的配置进行透出,降低学习和二次开发的成本; 5)覆盖 PVP/PVE/H5 类 / MMORPG 等多种常见的游戏类型的差异化容器需求,白屏化支持复杂游戏架构的游戏服编排能力。
下面来介绍不同类型的游戏如何通过 OpenKruiseGame 完成云原生改造。 PvP 游戏最佳实践会话类(session based)游戏,是指在有限的时间内,将玩家汇聚到特定游戏场景下的游戏类型。在通常意义下,会话等同对局,一局结束后,玩家间的游戏关系也在此结束,该会话也同时结束。因此,在业界也会将会话类游戏通俗的理解为 “开房间游戏”,一个房间承载了对应的游戏会话。这类游戏往往存在着以下特点: 1)游戏时间非连续,存在明显的起停时间节点。 2)会话中至少存在 2 个及以上的玩家,相互战斗、交互。 3)常见于 MOBA、FPS 类游戏,对时延要求较高。 4)业务波峰与波谷时,对局数量差距明显。因此,一个理想的 PvP 游戏的云原生架构应具有以下能力:
有关 PvP 游戏最佳实践阅读 OpenKruiseGame 官方文档: https://openkruise.io/zh/kruisegame/best-practices/session-based-game PvE 游戏最佳实践与 PvP 会话类游戏不同,PvE 游戏的特点如下:
该类游戏在落地 Kubernetes 通常遇到左右为难的困境: 若使用 Kubernetes 原生 workload,则无法进行游戏服精细化管理,具体地:
若不使用 Kubernetes 原生 workload,则无法利用上 K8s 的编排能力:
有关 PvE 游戏最佳实践阅读 OpenKruiseGame 官方文档: https://openkruise.io/zh/kruisegame/best-practices/pve-game 云原生游戏交付与运维管理最佳实践对于游戏应用来说,一个云原生的交付流程应该如此: 游戏开发者提交业务代码至代码仓库,自动触发 CI 流程打包容器镜像,通过 ArgoCD 自动化部署至测试环境中。游戏开发者可以快速测试业务逻辑是否符合预期,无需运维同事介入,保证与生产环境一致性的同时也提高了研发效率。 而在正式 / 灰度的环境下,运维工程师维护游戏应用部署仓库,提交编排的游戏服 Yaml,即可完成游戏服开服、更新等动作。部署后,可通过 KubeSphere OKG Dashboard 来可视化观察集群中所有游戏服的状态,并针对性地进行运维管理。
KubeSphere OKG Dashboard 是 OpenKruiseGame 基于 KubeSphere 4.0 LuBan 架构提供了游戏服白屏化管理控制台,支持用户基于 KubeSphere 可视化地管理 OpenKruiseGame 涉及的对象,如 GameServerSet 与 GameServer。 当前通过 OKG Dashboard 可以查看当前集群中游戏服整体统计数据、所有游戏服部署集与游戏服的运行情况。此外,还可以定向对游戏服进行更改运维状态等操作。
查看当前集群中游戏服整体统计数据
参考资料: [1] OpenKruiseGame 的官方文档 https://openkruise.io/zh/kruisegame/introduction [2] OpenKruiseGame GitHub 仓库 https://github.com/openkruise/kruise-game [3] OKG Dashboard https://kubesphere.com.cn/marketplace/extensions/kruise-game-dashboard/ 对于云原生游戏感兴趣的同学可以加入云原生游戏交流群。(钉钉群号:44862615)
点击此处,访问 OpenKruiseGame 仓库。 (责任编辑:IT) |