了解Edgegap的工作原理

了解Edgegap的工作原理

KRAFTON对PUBG:战场的基于容器的编排的迁移 - 针对多人游戏开发者的见解

已发布

已发布

已发布

最近一次准确性审核

最近一次准确性审核

最近一次准确性审核

KRAFTON对PUBG:战场的基于容器的编排的迁移 - 针对多人游戏开发者的见解

关键洞察

关键洞察

关键洞察

  • 基础设施现代化目标:KRAFTON 旨在通过从基于会话的游戏服务器切换到现代的基于容器的游戏服务器编排,消除运营瓶颈,并提升全球各地区数十万并发玩家的可扩展性。 

  • Agones 扩展限制:这个开源游戏服务器编排平台在扩容高峰事件期间会出现 15 分钟的启动延迟。KRAFTON 的工程团队在定制解决方案上投入巨大,通过容器镜像仓库代理和采用 Karpenter 将其缩短至 3-4 分钟。而开发者只需使用像 Edgegap 这样的全托管解决方案,即可让游戏服务器从冷启动到可用平均仅需 3 秒。

  • 运营效率收益:容器化将环境配置时间缩短到 5 分钟以内,并启用了自助能力。团队无需 DevOps 介入即可自主访问测试基础设施。

  • 隐性资源影响:这段现代化历程耗费了多年的专业工程投入,而这些投入本可用于改进游戏玩法。大多数工作室在保持有竞争力的开发周期同时,无法承担如此级别的基础设施投资。

  • 托管平台替代方案:全托管解决方案在无需内部复杂性的情况下即可提供同等甚至更好的性能和扩展能力。通过使用像 Edgegap 这样的平台,工作室可通过简单集成而非多年实施项目来获得企业级基础设施。

在本文中,我们将介绍适用于所有多人游戏开发者的关键见解,这些见解涉及《绝地求生》(Player Unknown's: Battlegrounds)从基于大厅的架构向基于容器的游戏服务器编排迁移的过程。

该演讲由时任 KRAFTON DevOps 团队负责人的 JungHun Kim 与 Minsuk Kim 和 Minwook Chun 于 2024 年共同发表。它展示了他们历时数年将《绝地求生》(PUBG: Battlegrounds)的基础设施从传统的基于 EC2 的服务器转型为完全容器化的 Kubernetes 生态系统的历程。

他们的经验为游戏开发者提供了宝贵的见解,但也揭示了自行管理如此复杂的基础设施往往被忽视的复杂性和成本。

从传统架构到现代容器化

《绝地求生》(PUBG: Battlegrounds)是当时 Steam 上在线玩家人数排名前三的游戏之一,它运行在双组件架构上。

大厅作为匹配、商店运营和个性化设置的入口。然后,会话服务器处理全球分布区域中核心的 100 玩家战术竞技游戏玩法。

KRAFTON 的 DevOps 团队负责人 JungHun Kim 解释了他们最初面临的挑战:“QA 环境创建工作流程”需要 DevOps 团队花费 20 分钟到一个小时来配置新的测试环境。这一瓶颈严重影响了开发速度和团队生产力。

现代化转型始于 2018 年 11 月的会话服务器,随后是 2019 年 10 月的大厅服务器,并于 2023 年 6 月通过使用基于 ARM 架构处理器的服务器达到顶峰。每个阶段在引入新复杂性的同时,都解决了个别的痛点。

KRAFTON 的第一个突破来自于认识到传统的基于 EC2 的 QA 环境资源密集且难以共享。每个环境都需要大量的 AWS 服务:EC2 实例、CodeDeploy、CloudFront、Elastic Load Balancing、DynamoDB、ElastiCache、OpenSearch、Kinesis、Data Firehose、SQS、VPC、Auto Scaling、Route 53、IAM 和 S3。

解决方案包括在 Amazon EKS 中将这些服务容器化,创建共享和专用的资源类别。这种架构转变将 QA 环境创建时间从 20-60 分钟缩短到 5 分钟以内。团队通过一个可供策划、开发、QA 工程师和产品经理使用的 Web UI 获得了自我服务能力。

生产迁移和业务网格复杂性

移动生产工作负载被证明比 QA 环境要复杂得多。

生产系统要求零数据库清空、温和的迁移策略以及全面的回滚计划。该团队利用集群实现了复杂的业务发现机制,以同步 IP 地址、服务名称和位置数据。

然而,在迁移过程中出现了流量平衡问题。连接池导致服务之间的负载分布不均,迫使团队采用 Istio 业务网格进行动态流量管理、增强安全性和提高可观测性。

会话服务器编排:Agones 及其局限性

与无状态的大厅服务相比,会话服务器带来了独特的挑战。每个会话服务器运行 Unreal Engine 专用服务器,在没有持久存储的情况下维护游戏状态。KRAFTON 需要扩展到数十万个并发会话,同时保持一致的响应时间和成本效益。

他们评估了 Agones,这是一个构建在 Kubernetes 之上的开源多人游戏服务器编排平台。Agones 像管理 Kubernetes 部署一样管理游戏服务器,每个游戏实例对应一个 GameServer pod。Fleets 管理 GameServers 组,而 FleetAutoscalers 处理容量管理。该架构通过在共享的 Kubernetes 集群中进行复杂的装箱处理,实现了多个环境使用命名空间在同一个集群中共存。

虽然 KRAFTON 取得了令人瞩目的技术成果,但据 JungHun Kim 称,Agones 面临着一个重大挑战:15 分钟的服务器引导时间,这在扩容事件中成为了瓶颈。细分时间线暴露出多重叠加的延迟:实例配置(1-3 分钟)、实例引导(2-3 分钟)和 pod 配置(5-10 分钟)。这些延迟在玩家需要立即获得服务器可用性的高峰使用期间造成了扩容挑战。

KRAFTON 的解决方案需要大量的工程投入。他们采用 Karpenter 来减少 EC2 启动延迟,并使用 Harbor、S3 缓存和 CloudFront 分发实现了容器镜像仓库代理。这些优化将引导时间从 15 分钟以上缩短到 3-4 分钟,但需要深厚的 Kubernetes 专业知识和持续的维护。

自行管理的隐性成本

KRAFTON 的技术成就和成功显而易见。对于没有 KRAFTON 这样规模的工作室来说,有一个关于成本和复杂性的问题需要考虑。

将 Karpenter 作为开源解决方案进行管理需要专门的专业知识,而工作室可能缺乏这些。KRAFTON 团队需要在多个领域拥有专业知识:Kubernetes 网络、Istio 业务网格配置、游戏服务器管理、容器镜像仓库优化以及多架构构建系统。

这些优化需要深厚的 Kubernetes 专业知识和持续的维护。KRAFTON 专职的 DevOps 团队展示了他们能够应对这种复杂性并取得成功,但规模较小的工作室面临着重大的资源限制。因此,较小的工作室必须问自己一个问题——在专注于游戏开发的同时,他们是否能够投入足够的资源来掌握这些技术。

基础设施建设耗费了数年时间的专业工程努力。这是一笔巨大的机会成本,工作室应该对照自己的路线图优先级仔细权衡。

一条更简单的可行之路?

与其复制 KRAFTON 复杂的基础设施历程,游戏开发者不如考虑完全托管的解决方案,如 Edgegap 的游戏服务器编排平台。同时,由于其高度优化的多租户方法,据 Edgegap 首席技术官 Philip Cote 称,所有使用 Edgegap 平台的游戏均能确保游戏服务器从冷启动到启动的平均时间为 3 秒,从而消除了 KRAFTON 在其 Agones 实现中经历的 15 分钟延迟。

这意味着等待部署游戏服务器的玩家必须在队列中等待,同时当前资源被回收。更具体地说,这意味着游戏服务器无法部署,而在队列中等待的玩家会感到沮丧,并根据《在线延迟报告》,34% 的玩家会彻底流失,不再玩您的多人游戏。

Edgegap 的平台可在 60 分钟内自动扩展至 1400 万并发用户,远远超过了大多数游戏的需求。最重要的是,它消除了对专职 DevOps 团队来管理 Kubernetes、容器镜像仓库、业务网格和扩展算法的需求。

工作室可以将他们的工程资源集中在游戏开发上,而不是基础设施管理上,同时仍然可以获得 KRAFTON 花费数年时间才实现的高质量性能和扩展效益。

绝地求生有专用服务器吗?

是的,《绝地求生》(PUBG: Battlegrounds)的大厅和会话组件完全在专用服务器上运行。与点对点网络不同,专用服务器提供权威的游戏状态管理、反作弊功能,并且无论单个玩家的连接情况如何都能提供一致的性能。

会话服务器运行 Unreal Engine 专用服务器实例,每个实例处理一场 100 人的比赛。这些有状态的服务器管理所有的游戏逻辑、物理计算和玩家交互,而不依赖于比赛之间的持久存储。大厅服务器使用连接到托管存储后端的无状态 .NET 微服务,从而实现了水平扩展和容错。

绝地求生服务器位于何处?

绝地求生运营着一个全球分布的服务器基础设施,会话服务器部署在多个 AWS 区域。大厅服务集中在“us-east-1”,作为用户管理和匹配操作的中心枢纽。

会话服务器根据玩家需求和地理分布进行动态部署。这种方法通过将游戏服务器放置在更靠近玩家群体的地方来最大限度地减少延迟,从而在毫秒必争的游戏中提高了竞争体验。地理分布策略平衡了成本效益与性能要求,同时保持了集中式大厅运营。

AWS 的区域定价模型意味着开发者需要单独购买位置以确保全球覆盖。

需要现代化解决方案的游戏开发者可以转而使用 Edgegap 的编排平台,该平台接入了全球最大、也是首个无区域网络。这意味着允许您的多人游戏以单一价格将他们的游戏服务器部署到全球所有的 615 个以上的位置,这使 Edgegap 能够将延迟平均降低 58%,并为该游戏 78% 的玩家群体提供低于 50ms 的延迟。

结论

游戏开发者应该仔细评估,构建和管理复杂的基于 Kubernetes 的基础设施是否符合他们的核心竞争力及资源可用性。

KRAFTON 取得了令人瞩目的成果,正如他们在演讲中强调的那样,他们数年的历程耗费了巨大的工程努力。一个问题是,较小的工作室是否能够承担偏离核心游戏开发的代价。对于某些工作室来说,这是一个可行的选择,然而某些工作室可能缺乏构建和维护复杂 Kubernetes 基础设施所需的广泛资源和专职 DevOps 专业知识。

像 Edgegap 这样的完全托管平台可以提供相同的性能优势(即时扩展、全球分布和低延迟),而无需专门的基础设施团队或数年的实施工作。工作室可以通过 Edgegap 等平台提供的简化集成来获得 KRAFTON 级别的基础设施能力,同时将其才华横溢的开发者集中在创造卓越的游戏体验上,而不是管理容器编排系统。

—

本文基于并引用了 KRAFTON 在此处发表的原文。原文内容的所有权利均归其各自所有者所有。

书写者

Edgegap团队

Get your Game Online Easily & in Minutes

立即开始集成!

轻松在线游戏
且在几分钟内

Get your Game Online Easily & in Minutes