
免费产品的高成本:阿戈尼斯
在 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 工程师 平均年薪达到 30 万美元。
基础设施的成本将取决于你选择在哪里托管你的 Kubernetes 集群。例如,假设你在自己的硬件上托管它。在这种情况下,成本将包括物理服务器的价格、电力以及运行它们所需的其他资源,还有建筑物、工程师及所有中间环节的保险。如果你在云服务提供商上托管,成本将是虚拟机的价格以及你所使用的其他服务,例如存储和网络服务。作为一个每月试图理解云发票的人,我可以确认,这很快可能变成一张昂贵的账单(公共 IP、网络流量、负载均衡器、存储、API 调用、支持费用……)
除了基础设施和软件成本外,使用 Kubernetes 的任何额外工具或服务可能也会产生费用。例如,你可能需要为负载均衡器、监控和日志服务,或持续集成与部署(CI/CD)平台支付费用。具体费用将取决于你选择的工具和服务。
不要自欺欺人,你可能认为一个月 50 美元的虚拟机足以运行这个开源软件,但现实远非如此。

走向管理服务
就像几年前从 Exchange 服务器的过渡一样,管理服务开始取代自托管。使用完全托管的 Kubernetes 服务提供了许多好处。首先,它将管理和维护集群的重担减轻到了你的手中。这可以为你的团队节省大量的时间和精力,让他们专注于更重要的任务。
此外,完全托管的服务可以提供专家支持和指导。这对那些新接触 Kubernetes 或不确定如何最好利用这项技术的组织尤其有用。通过管理服务,你可以获得来自具有深厚理解技术的专业人士的帮助和建议,他们可以提供有价值的见解和指导。
使用完全托管的 Kubernetes 服务的另一个优势是能够快速、轻松地扩展。一旦你的组织增长,对工作负载的需求变得更加复杂,管理服务可以提供你所需的灵活性和可扩展性,以跟上变化。这对于高度分布式的集群尤其重要,独立管理和扩展比较困难。你的目标是制作一款出色且成功的游戏,而不是处理为你的游戏服务玩家的底层管道。
总体而言,使用完全托管的 Agones/Kubernetes 服务可以提供许多好处,包括节省时间和精力、获得专家支持以及快速、轻松地扩展能力。
真正的问题是:你真的需要 Agones 吗?
Kubernetes 最初是为基于网络的技术而创建的。它们管理成千上万的无状态连接,为短暂的请求提供服务。游戏服务器则与这种理念背道而驰。游戏服务器和中继是有状态的,管理持久连接的时间为 5 到 45 分钟。
游戏行业习惯于配置尽可能多的服务器,并让它们“待命”以供玩家连接。AWS Gamelift 早已 是这种架构的先驱。考虑到这一架构,Agones 是一个 CRD,旨在在 Kubernetes 中启用这种待命服务器。然而,拥有待命实例并不是必要的,考虑到 Kubernetes 并不是为了管理这种有状态的应用而设计的,因此带来的价值也有限。
现实情况是,自从 2018 年推出以来,Agones 一直是一个寻找问题的解决方案。对于小团队来说,它过于复杂,难以设置和管理,而且它不会解决更大团队对高度分布式服务器的需求。
取其精华,去其糟粕(或交给其他人)
Agones 接收你,作为游戏开发者,提供的容器镜像。对于那些不知道的人来说,容器是一种流行技术,用于以轻量和可移植的方式部署和运行应用程序。与虚拟机和裸金属服务器相比,它们提供了几个好处,包括提高效率、可移植性和灵活性。
容器的主要好处之一是它们比虚拟机或裸金属服务器更高效。容器共享主机操作系统,而每个虚拟机则在其客户操作系统上运行,这可能资源密集。通过共享主机操作系统,容器能够使用更少的资源,并提供比虚拟机更好的性能。
容器的另一个好处是它们的可移植性。与绑定到特定管理程序和主机操作系统的虚拟机相比,容器可以轻松地在不同环境和平台之间移动。这使得在本地、在云上或在混合环境中部署和运行你的应用程序变得简单。
除了提高效率和可移植性外,容器还 提供更大的灵活性。使用容器,你可以轻松地将你的游戏及其依赖项打包并部署为一个单元,这使得更新和维护你的应用程序变得容易。这对于微服务架构尤其有用,其中应用程序被拆分为更小、独立的组件。
速度与自定义
有一大堆新兴供应商提议为游戏开发者提供 SaaS 环境,以便在无需处理 Agones 和 Kubernetes 的麻烦下托管和管理他们游戏的生命周期。出于某种原因,游戏行业常常试图不断重新发明轮子,而 Agones 则是其中一个例子。从成本、速度到服务质量,唯一推动内部管理 Agones 的原因就是让希望继续管理服务器的后端开发人员满意,而不是进行更有成效的游戏开发工作。最终,游戏工作室和玩家通常为此付出代价。
书写者
Edgegap团队