管理意外的流量激增 – Edgegap 的调度程序如何为您的游戏处理扩展

您已经为您的游戏添加了Edgegap游戏服务器和编排(恭喜!),现在您准备采取下一步 - 在现实世界中启动您的多人游戏服务器托管。

这可能会让人觉得难以应对。如果它无法像许多大型项目那样扩展怎么办?

本指南旨在帮助您为游戏发布做准备,强调Edgegap如何处理流量激增,以确保您的游戏与玩家需求同步扩展。

本文应与我们的“多人游戏发布前检查表”一起使用。

Edgegap如何管理平台上的意外流量激增?

首先,我们将每次部署视为我们平台上的一个独立实体。每次部署都是我们基础设施中的一个pod。请求来自各种来源,包括游戏客户端本身、匹配器或任何其他用户与我们的API互动的方式。

一旦请求到达我们的系统,我们立即启动玩家的遥测和地理定位,并分配任务给我们的工作者,在我们的基础设施上提供服务器。稍微一秒钟或两秒钟,容器就启动并运行,准备接收进入的玩家。

我们如何确保所有必要的基础设施及时服务这些部署?

我们开发了一个抽象层,监督17个不同的提供商,从云,裸金属,边缘和容器即服务提供商。这些提供商分布在全球,提供我们在600多个数据中心的服务。

我们的提供商列表混合了全球服务,如亚马逊、谷歌和Azure,以及特定于国家/地区的本地服务。这种互补方法确保您拥有最佳覆盖,因此,您的游戏可以接入世界上最大的分布式边缘网络。

在我们的平台上,这些实体被称为接入点,包含关键的信息,如容量、当前工作负载、可用资源以及其他相关决策指标。通过创建这个抽象层,您无需担心您的玩家将来自哪里,或者您需要与哪个提供商合作。

这使您可以专注于游戏,而Edgegap则专注于编排和管理底层。

Edgegap的平台优先事项是什么,顺序如何?

Edgegap的平台将按照以下顺序优先考虑以下元素:

  1. 根据您在应用程序配置文件中指定的要求,为您提供一个功能正常的游戏服务器

  2. 在玩家附近尽可能地将游戏服务器放置,从而提供最佳的玩家体验,基于多种遥测测量。

  3. 尽快为您提供一个功能正常的游戏服务器。目标为1-2秒。

当我们接收到激增(我们指的是,在非常短的时间内出现大量流量;例如,每秒40个以上的部署,意味着每秒有1300名玩家尝试加入一个32人游戏的匹配,这就是每60分钟460万名玩家),上面的列表将在激增的最初几分钟内变得更难以提供。在这些少见的情况下,列表下面的项将是第一个被删减的。

在遇到意外流量激增的情况下,平台通常需要多长时间才能稳定?

平台将根据流量的变化以多种方式扩展。如果请求数量超过当前容量,平台可能需要10至15分钟才能稳定,并为每个请求提供上面提到的三项优先事项。

Edgegap在面对突发、意外的流量激增时采取什么措施?

我们的容量管理器(昵称“Capman”)准备好应对 incoming 流量,并与请求资源的工作者进行接口。

当它检测到需求增加时,它会在需要资源的特定区域自动扩大规模,部署更大的机器。而且,如果检测到某个地理区域需要额外支持,它会迅速提供更多机器,以优化延迟并改善客户的游戏体验;所有这些都是自动完成的。

当我们的平台看到流量激增时,它会扩展后端以支持流量。对于需要大量CPU资源的大型流量激增(例如,一个游戏服务器每个实例需要2个CPU),平台需要2到5分钟才能扩展和稳定。之后,系统会更快地扩展,因为它请求更大的服务器。它会根据流量的涌入调整请求每个提供商的新服务器的大小,请求小型或大型服务器,无论流量是加速还是减缓。

最简单的总结;在意外流量激增的情况下,(再次说明,我们不是在谈论标准的每日上下波动,而是数十万玩家),系统需要几分钟才能稳定。

附加说明:如果我们提前知道某个事件(发布/补丁等),并且对于正常的上下扩展(典型的24小时流量),就不会发生。这通常是针对意外流量激增的;例如,一个游戏主播开始玩您的游戏,许多新玩家加入乐趣。

为什么在标准的24小时流量上升中不会发生这种情况,而仅发生在意外流量激增中?

 为了管理这种流量的涌入,我们的平台设计为动态地朝活跃区域的西部扩展。

通过利用预测分析和监测流量模式,我们可以预见到流量激增可能发生的时间和地点。因此,我们的基础设施主动调整其容量,以预期这些高峰期。

这种主动扩展确保在所需的确切时间和地点可用必要资源,优化用户体验,并保持无缝游戏体验,即使在高需求期间。

当Edgegap的接入点不足时,新的分配接入点来自于离玩家较远的区域时行为如何?

当请求部署时,平台会根据可用的资源做出最佳决策。如果平台收到来自特定区域的大量意外请求,资源可能在该区域变得稀缺几分钟(在系统扩展期间)。

在这种情况下,且仅需几分钟,所做的决定将稍微远离初始决策的地点。

目标始终是拥有容量,无论情况如何。这种最糟的情况很少发生,并且仅持续几分钟,系统将扩展并开始学习新的行为。

我该如何获得Edgegap平台的最佳性能?

以下是一些建议,您可以在流量激增前做好准备以获得最佳性能。

以下是检查清单:

  1. 沟通!

    • 如果您知道您的游戏中发生了某些事情,例如发布、补丁、锦标赛、主播,请告知团队。

    • 他们知道的越多,反应就越快。我们有能力在发布时预热后端环境,以准备大量服务器。

    • 仅建议用于计划的大型事件,因为平台将开始随时间学习流量模式(即24小时内的低和高流量潮汐),系统将据此上下扩展。

  2. 为避免超时错误,您可以通过仪表板或我们的API增加AppVersion的“max_time_to_deploy”值。

    • 超时是我们的系统在标记游戏服务器(部署)为错误之前的等待时间。如果您的游戏在10秒内从0增加到100万CCU,部署时间可能会增加几秒。

    • 稍微提高这个超时将减少因为流量激增原因导致部署时间稍长而被我们平台标记为错误的情况。

  3. 我们建议设置您的系统(如大厅、匹配器)在发生这种情况后几秒钟后进行重试。

    • 虽然平台将始终尽一切可能通过简单的API调用为您提供游戏服务器,但在非常(我们指的是非常非常大的!)短时间内大量流量涌入可能迫使我们的系统返回错误信息。

  4. 尽管在编写关于性能的文档时谈论灾难恢复计划似乎不合逻辑,但我们认为覆盖每一个方面的每一个场景是我们所做的事及其运作方式的核心。

    • 我们的系统基于微服务架构,拥有高度弹性的组件。

    • 这些组件与提供商无关,能够在任何提供商上运行,并且可以轻松部署/重新部署以增加容量,或在发生灾难性故障时重新安装新的平台。

    • 此外,我们的架构构建方式使得不必要的关键组件不会影响主要服务(例如编排和托管游戏服务器)是至关重要的优先事项。

  5. 做好负载测试准备!

    • 没有比负载测试更好的方式来评估您的游戏基础设施的行为,从Edgegap到游戏服务。

    • 我们强烈建议在发布前进行,这是我们发布前检查表的一部分。 查看文章以获取更多详情。

我们如何保持竞争定价?

随着流量的稳定,我们的自动化系统将迅速采取措施缩减我们的基础设施,同时确保我们保持必要的容量,以有效且经济地服务我们的玩家。这涉及对流量模式和使用趋势的严格监控,利用复杂的算法和预测分析来预见需求波动并动态调整我们的基础设施。

此外,我们的成本优化策略不仅限于缩减基础设施。我们不断评估和优化对云服务的利用,探索诸如预留实例和其他节省成本的措施。这种主动的立场使我们能够保持精简和高效的基础设施,向我们的客户传递成本效益,而不影响性能或可靠性。

我们对效率和创新的承诺,使我们能够提供优质和可扩展的成本效益解决方案,确保我们的平台在流量波动期间保持响应和弹性。

结论

Edgegap做了很多工作,确保无论您的游戏流量量有多大,都能够快速扩展以满足玩家需求。

不过,您可以做很多工作来规划以防止错误。我们希望本指南对改善您的后端有所帮助,并最终给您带来最大的回报——心安,无论发生什么,您的多人游戏都将无缝扩展,确保您的玩家获得愉快而顺畅的体验。

书写者

Edgegap团队