零停机补丁

注意:本页上的内容适用于 Clanforge。如果使用 Multiplay Hosting,请参阅 Multiplay Hosting 文档

零停机补丁可以在不使任何游戏服务器离线的情况下更新游戏镜像,这样,您可以更新游戏,而不会让玩家面临服务器下线的情况。

您可以通过保留两个版本的游戏镜像来实现零停机补丁。例如,一个是镜像 A,另一个是镜像 B,这样无论在什么时候,您在更新一个镜像时,都会启用另一个镜像。准备好部署更新的镜像版本后,您可以更替启用的游戏版本。

至于分配,这意味着您调用分配 API 来使用已更新的配置文件 ID,且该配置文件与已更新的镜像相关联。例如,如果您开始分配配置文件 A,则会更新镜像 B;完成对镜像 B 的更新后,您将开始使用配置文件 B 进行分配。

至于保留,您将通过调用机群配置文件切换 API 终端,以显式方式将机群更改为与更新版本关联的配置文件。开始进行更改后,您可以通过调用机群配置文件切换状态终端来查看更改状态。

完成对配置文件的更改后,生产环境中会使用镜像 B,而版本 A 则用于迎接下一次更新。

零停机补丁流程。

零停机补丁具有可行性,这是因为配置文件和游戏版本紧密关联。在上述图表所描绘的情况中,镜像 A 镜像版本使用的配置文件名为镜像 A,镜像 B 镜像版本使用的配置文件名为镜像 B。

零停机补丁要求

要使用零停机补丁,您必须拥有各个配置文件和游戏镜像版本的副本。例如,如果您拥有生产、开发和预发分支,则要分别针对生产、开发和预发环境拥有两份配置文件。

使用配置文件和游戏镜像版本副本进行零停机补丁。

零停机补丁工作流程

如果不考虑先决条件,零停机补丁工作流程与更新镜像的流程非常相似,只是增加了机群配置文件切换步骤。其工作流程包含以下步骤:

  1. 在版本机器上创建镜像更新
  2. 对比更新版本和原版本,创建差异分析
  3. 根据差异分析结果创建新的镜像版本
  4. 将您的机群配置文件更改为您与更新后游戏镜像版本关联的配置文件

Unity 建议您测试版本机器上的游戏镜像,然后继续,执行从步骤一到步骤二的操作。

零停机补丁工作流程。

步骤 1.在版本机器上创建镜像更新

将更新的游戏镜像上传到 Steam 存储桶、Google Cloud 存储桶或 AWS 存储桶,即表示您已完成该镜像的准备工作,可以将其部署到您的版本机器。使用创建镜像更新终端将更新的游戏镜像部署到您的版本机器。

使用镜像更新状态终端查看创建镜像更新任务的状态。如果返回的状态为失败,则对失败原因进行故障排除,然后使用重试镜像更新终端重新尝试进行更新。

镜像更新状态确认已成功完成更新后,请测试版本机器上的已更新游戏镜像。建议您先测试版本机器上的已更新游戏镜像,然后再继续执行该流程中的其他步骤。这样可以确保在将更新的游戏镜像部署到剩余的基础架构中前,您已发现存在的各种问题。

步骤 2.对比更新版本和原版本,创建差异分析

确认更新的游戏镜像可以在您的版本机器上正常运行后,请使用创建镜像差异终端对比更新版本和原版本,从而创建差异分析。

通过镜像差异状态终端查看差异分析的状态。如果差异分析失败,则可以使用重试镜像差异终端重新尝试差异分析。

差异分析成功完成后,您可以使用拒绝镜像差异终端拒绝差异分析,或根据差异分析使用创建镜像版本终端创建新的镜像版本。

操作

终端

说明

查看差异分析状态

镜像差异状态

发送创建差异分析的请求后,您可以使用镜像差异状态终端来查看差异分析任务当前的状态。

拒绝差异分析

拒绝镜像差异

如果发生任何意外更改,则拒绝差异分析的结果(使用唯一的差异 ID 值)。拒绝差异分析后,您可以生成新的差异分析。如果您在尚未拒绝或接受未完成的差异分析时就尝试针对相同的镜像执行新的差异分析,则会收到错误,表示该镜像已被差异 ID XXXX 锁定。

重试差异分析

重试镜像差异

如果差异分析失败,请进行故障排除,然后重新尝试差异分析。

根据差异分析创建新的镜像版本

创建镜像版本

根据差异分析创建新的镜像版本与接受差异分析结果可以达到相同效果。

步骤 3.根据差异分析结果创建新的镜像版本

使用差异 ID 调用创建镜像版本终端来接受差异分析后,您可以使用镜像版本状态终端查看创建镜像版本任务的状态。

下表介绍了镜像版本状态终端的状态(任务状态)。

任务状态 ID (jobstateid)

描述

1

已创建(新任务)

2

待处理(等待排队)

3

排队中(等待处理)

4

正在运行(进行中)

5

已完成(成功)

6

失败(未能成功)

步骤 4.切换机群配置文件

镜像版本状态终端的结果确认镜像版本完整后,便会开始部署。您可以使用镜像部署状态终端监控部署到机器的进度,因此可以了解部署状态。

然后,您可以根据与更新的游戏版本关联的配置文件 ID,开始使用服务器分配终端分配服务器。响应体应该包含成功消息以及您在请求正文中提供的配置文件 ID。

基于保留的机群
对于基于保留的机群,您必须调用机群配置文件切换终端,以切换至更新的游戏版本。镜像部署状态终端的结果确认机器已准备就绪后,将您的机群配置文件切换为您使用机群配置文件切换终端更新的镜像版本所关联的配置文件。借助机群配置文件切换状态终端查看机群配置文件切换任务的状态。返回正文中包含成功消息,即表示该流程成功完成。如果您遇到任何问题或错误消息,请联系 Clanforge 支持团队。