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

在 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 工程师平均年薪可达 20 万美元。

底层基础设施成本取决于你选择在哪里托管 Kubernetes 集群。例如,假设你托管在自有硬件上,那么成本将包括物理服务器价格、电力和运行所需的其他资源,以及建筑、工程师和各项相关支出的保险等。如果你托管在云服务商上,成本则包括虚拟机价格以及你使用的其他服务(如存储和网络)。作为一个每月都要看懂云账单的人,我可以确认这很快就会滚成一笔昂贵费用(公网 IP、网络流量、负载均衡器、存储、API 调用、支持费……)

除了基础设施和软件成本外,使用 Kubernetes 的任何额外工具或服务也可能产生费用。比如,你可能需要为负载均衡器、监控与日志服务,或持续集成与持续部署(CI/CD)平台付费。具体成本取决于你选择的工具和服务。

别自欺欺人了,你也许会以为每月 50 美元的一台虚拟机就足以运行这款开源软件,但现实远非如此。

迈向托管服务

就像几年前从 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 分钟):

As highlighted by its real world testing on PUBG, KRAFTON's DevOps Team Lead JungHun Kim highlighted that Agones' overall server boot time when scaling can be 10-15 minutes between instance provisioning (1-3 minutes), instance bootstrapping (2-3 minutes) and pod provisioning (5-10 minutes)

这意味着等待游戏服务器部署的玩家必须在当前资源被回收时排队等待。更具体地说,这意味着游戏服务器无法及时部署,排队等待的玩家会感到沮丧并停止游玩你的多人游戏,34% 的玩家会因此从你的游戏中流失,这是《在线延迟报告》给出的数据。

与此同时,得益于高度优化的共租户方案,所有使用Edgegap 平台的游戏都能确保从冷启动到游戏服务器启动平均仅需 3 秒,这是 Edgegap CTO Philip Cote 的数据。

速度 vs. 自建

如今有大量新兴供应商在为游戏开发者提供 SaaS 环境,以便他们托管并管理游戏生命周期,而无需承受处理 Agones 和 Kubernetes 的麻烦。出于某种原因,游戏行业总倾向于不断重复造轮子,Agones 就是其中之一。从成本到交付速度与服务质量,唯一推动内部管理 Agones 的理由,往往只是为了满足那些想继续管理服务器而不是从事高效游戏开发工作的后端开发者。到头来,买单的常常是游戏工作室和玩家。

书写者

Edgegap团队

Get your Game Online Easily & in Minutes

立即开始集成!

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