
免费产品的高成本:阿戈尼斯

在 Edgegap,我们一直专注于让开发者能够更顺畅地使用分布式基础设施。我们的平台基于容器化和微服务,可在高度分布式的基础设施上自动化部署和管理游戏服务器,让游戏工作室能够专注于对游戏和玩家真正重要的事情。
我们有时会遇到一些游戏工作室,将我们所做的事情与 Agones 项目进行比较。不过我们发现,在某些使用场景下 Agones 并不理想,而且运行和管理它的成本会很快变得高到难以承受。
Kubernetes 正在走向托管服务吗?
十年前,每家公司都在自行托管和管理自己的邮件服务器。微软像卖糖果一样出售其本地邮件服务器 Microsoft Exchange 的许可证。如今呢?大多数中小企业都在使用托管邮件服务。微软并未公布 Office 365 与 Exchange 自托管许可证的具体占比,但两者显然呈反向相关。再过几年,Kubernetes 及其上层服务很可能也会是同样的情况。
Agones 不就是一个简单的软件吗?
实际运行 Agones 到底涉及什么?
从表面上看,Agones 对大多数开发多人游戏的开发者来说像是一个理想方案。它是一个构建在 Kubernetes 之上的开源集群管理软件,用于按需管理和扩缩游戏服务器。
然而,开发团队可能会发现,实际运维比预期更具挑战。即使对有经验的团队而言,运行 Agones 也既困难又耗时。它不仅要求对该技术本身有深入理解,还需要具备正确的专业能力来妥善维护和管理集群。对于高度分布式集群尤其如此,其复杂性往往更高。随着区域和国家数量增加,部署与配置集群的管理复杂度也会随之上升,这会使确保所有集群组件都正确配置并协同工作变得困难。
作为开源项目,Agones 软件本身通常是免费的,这听起来很棒。但你很快会意识到,搭建和管理它所需的成本与资源可能变得相当可观。
安装和管理 Agones 需要对 Kubernetes(K8)、Linux 操作系统有良好理解,并熟练掌握如 Python 或 Go 这样的编程语言。此外,工程师还必须具备 Docker 和 containerD 等容器化技术经验,并熟悉网络、安全与自动化。最后,你的团队还需要了解云技术或本地硬件。这大概就是为什么湾区 DevOps 工程师在 2022 年底时平均年薪达到20 万美元。
底层基础设施成本取决于你选择在哪里托管 Kubernetes 集群。例如,假设你托管在自有硬件上,那么成本将包括物理服务器价格、电力以及运行所需的其他资源,还包括建筑、工程师以及各项相关保险费用。如果你托管在云服务商上,成本则包括虚拟机价格以及你使用的其他服务费用,如存储和网络。云基础设施账单会在公网 IP、网络流量、负载均衡、存储、API 调用和支持费用等条目上迅速增长——而完整成本图景通常比应有的更难看清。我们专门构建了定价计算器,帮助工作室更清晰地了解游戏服务器托管与编排的实际成本。
除了基础设施和软件成本外,使用 Kubernetes 的附加工具或服务也可能产生费用。例如,你可能需要为负载均衡器、监控与日志服务,或持续集成与持续部署(CI/CD)平台付费。具体成本将取决于你选择的工具和服务。
人们很容易认为一台低成本虚拟机就足以运行这款开源软件,但基础设施总成本通常要高得多。

迈向托管服务
就像几年前从 Exchange 服务器迁移的转变一样,托管服务已经开始替代自托管。使用全托管 Kubernetes 服务有很多好处。首先,它能把管理和维护集群的负担从你手中移走。这可以为团队节省大量时间和精力,让他们专注于更重要的任务。
此外,全托管服务还能提供专家支持与指导。这对刚接触 Kubernetes 或不确定如何最佳利用该技术的组织尤其有用。借助托管服务,你可以从经验丰富的专业人士那里获得帮助和建议,他们对技术有深刻理解,并能提供有价值的洞见与指导。
使用全托管 Kubernetes 服务的另一项优势是能够快速且轻松地扩展。随着组织发展、工作负载变得更复杂,托管服务可以提供你所需的灵活性和可扩展性来跟上需求。对于高度分布式集群,这一点尤为重要,因为其独立管理和扩展可能非常困难。你的目标应是打造一款优秀且成功的游戏,而不是处理为玩家提供游戏服务的底层“管道”。
总体而言,使用全托管的 Agones/Kubernetes 服务可以带来许多好处,包括节省时间与精力、获得专家支持,以及快速轻松扩展的能力。
真正的问题是:你一开始真的需要 Agones 吗?
Kubernetes 最初是为 Web 技术打造的。它们管理成千上万的无状态连接,在极短时间内处理小请求。游戏服务器与这种理念恰恰相反。游戏服务器和中继是有状态的,需要管理持续 5 到 45 分钟的持久连接。
游戏行业习惯于尽可能多地配置服务器,并让它们“待命”以供玩家连接。AWS Gamelift 一直是这种架构的先驱。基于这种架构思路,Agones 是一个 CRD,用于在 Kubernetes 中启用此类待命服务器。然而,考虑到 Kubernetes 本就不适合管理这类有状态应用,保留待命实例并无必要,价值也有限。
自 2018 年发布以来,Agones 一直难以找到清晰定位:对缺乏大量专职工程资源的小团队来说,其复杂度可能高到难以承受;而大团队通常又需要其设计之初并未覆盖的高度分布式能力。
取 Agones 架构之长,弃其所短(或交给别人处理)
Agones 需要你——游戏开发者——提供一个容器镜像作为输入。对于不了解的人来说,容器是一种流行技术,可用轻量且可移植的方式部署和运行应用。与虚拟机和裸金属服务器相比,它们具有多项优势,包括更高效率、可移植性和灵活性。
容器的主要优势之一是比虚拟机或裸金属服务器更高效。容器共享宿主操作系统,而每个虚拟机都运行自己的客户操作系统,这可能非常消耗资源。通过共享宿主操作系统,容器可以使用更少资源,并提供优于虚拟机的性能。
容器的另一项优势是可移植性。与绑定于特定虚拟机监控器和宿主操作系统的虚拟机不同,容器可以在不同环境和平台之间轻松迁移。这使你能够轻松在其他基础设施上部署和运行应用,无论是本地、云端还是混合环境。
除了效率和可移植性的提升外,容器还提供更高的灵活性。借助容器,你可以轻松将游戏及其依赖打包并作为单一单元部署,从而更容易更新和维护应用。这对微服务架构尤其有用,因为应用会被拆分为更小、相互独立的组件。
Agones 的服务器启动时间较慢
Agones 的最终挑战在于其能否足够快速地启动游戏服务器,以满足玩家预期体验。
正如 PUBG 的真实测试所强调的,KRAFTON 的 DevOps 团队负责人 JungHun Kim 展示了在扩容时,Agones 的整体服务器启动时间可能达到 10-15 分钟,其中包括实例预配(1-3 分钟)、实例引导(2-3 分钟)和 Pod 预配(5-10 分钟),且还未计入 Karpenter 集成,相关内容在 2024 年 AWS re:Invent 上进行了展示:

这意味着等待游戏服务器部署的玩家必须在队列中等待当前资源被回收。更具体地说,这意味着游戏服务器无法及时部署,排队等待的玩家会感到沮丧,并可能彻底停止游玩你的多人游戏——根据 Edgegap 的《在线延迟报告》,在这种情况下有 34% 的玩家会流失。
与此同时,得益于高度优化的共租户方式,根据 Edgegap CTO Philip Cote(截至撰写时)的说法,Edgegap 平台从冷启动到游戏服务器可用的平均时间为 3 秒。
速度 vs. 自行搭建
越来越多供应商正在为游戏开发者提供 SaaS 环境,以便在不直接运行 Agones 和 Kubernetes 的前提下托管并管理游戏生命周期。游戏行业长期以来有构建定制基础设施的传统,而 Agones 正体现了这种惯性——不过托管服务趋势正在改变这笔账。内部管理 Agones 的主要驱动力通常是对控制力和定制化的偏好,但这会带来显著开销,工作室应谨慎权衡其与开发速度之间的关系。成本、时间和玩家体验上的取舍——最终都由工作室及其玩家承担。
书写者
Edgegap团队










