diff --git a/i18n/zh/docusaurus-plugin-content-docs-kruisegame/current/best-practices/workflow.md b/i18n/zh/docusaurus-plugin-content-docs-kruisegame/current/best-practices/workflow.md new file mode 100644 index 000000000..d2005dc29 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs-kruisegame/current/best-practices/workflow.md @@ -0,0 +1,215 @@ +# 游戏运维工作流最佳实践 + +## 背景 + +由于游戏服务器有状态的特性,对于游戏运维而言,通常需要根据当前业务状态进行相应处理,以避免玩家体验受损。OKG提供了游戏服务器状态感知和定向管理的能力,具备根据不同状态进行不同处理的前提条件。在实际生产过程中,一个运维流程是多个运维动作的组合,运维工程师往往需要进行“游戏服状态确认” → “游戏服操作”的往复动作,这也导致游戏服云原生化后依然存在一定的操作复杂度。 + +本文将结合“房间服无损发布”这一实际场景,向读者展示如何通过Argo Workflow将对GameServerSet和GameServer的运维动作有效组合起来,从而构筑一套既流畅又高效的运维工作流。 + +## 示例 + +### 场景说明 + +“房间服无损发布” 需要满足以下特点: + +- 正在游戏的旧版本房间不受影响,而空闲的旧版本房间服需要被回收清理 +- 存在一定数量的新版本房间,可让新连接的玩家随时进入 + +为在新版本发布保证“房间无损”,房间服在交付时会选择 OnDelete 更新策略,以实现存量房间不被删除,新创建的房间使用新的镜像的效果。此外,对应GameServerSet可以通过配置OKG自定义服务质量与自动伸缩策略实现自动化生命周期管理。有关房间服最佳实践文档可参考 https://openkruise.io/zh/kruisegame/best-practices/session-based-game + +### 新版发布流程 + +基于以上交付内容,运维工程师在更新新版本时将进行以下动作: + +1. 更新GameServerSet镜像,此时正在运行的房间服不会删除或重建 +2. 对GameServerSet进行扩容,扩容出足够多的新版本房间服 +3. 确认新版本房间服的状态是否正常提供服务 +4. 清理旧版本的空闲房间 + +接下来我们将通过一个示例展示如何一键式完成以上流程。 + +### 模拟存量旧版本房间服状态 + +*注:集群中需安装OKG* + +集群中有3个旧版本房间服,版本号为`1.12.2` + +``` +cat <