Présentation de Game Servers

Game Server est un service de jeu géré conçu pour les équipes d'infrastructure de jeu afin de déployer et de gérer des ensembles de serveurs de jeu dédiés globaux. Game Servers gère la gestion des clusters de serveurs de jeu à l'aide de Kubernetes pour l'orchestration de conteneurs et des Agones pour l'orchestration des parcs de serveurs de jeu et la gestion du cycle de vie. Vous pouvez connecter et déconnecter des clusters de la gestion des serveurs de jeu à tout moment, sans aucune incidence sur les sessions de jeu existantes. Après avoir déconnecté un cluster, vous pouvez continuer à exécuter une installation Open Source Agones.

Vous contrôlez les clusters de serveurs de jeu à l'aide des configurations globales de serveur de jeu, en définissant des règles pour l'emplacement et le nombre de serveurs à démarrer, ainsi que le binaire de serveur de jeu à déployer. Game Servers crée automatiquement des parcs Agones en fonction de déploiements gérés de manière centralisée, ce qui garantit leur déploiement automatique et en toute sécurité sur tous les clusters gérés. Plus particulièrement, les sessions de jeu en cours ne sont jamais interrompues, car un serveur de jeu en cours d'utilisation n'est jamais interrompu.

Ressources Game Servers

Cette section décrit les principales ressources avec lesquelles vous interagissez pour gérer Game Servers. La figure suivante montre comment ces ressources sont utilisées pour déployer un projet de jeu.

Exemple de déploiement d'un projet de jeu
Figure 1. Exemple de déploiement d'un projet de jeu sur Game Servers

Projet Game Servers

Un seul environnement, tel que production ou testing, est un projet Google Cloud avec Game Servers activé. Pour améliorer l'isolation et la sécurité, vous gérez généralement un seul titre de jeu à l'aide de plusieurs projets Google Cloud, tels que My Game Production et My Game Testing.

Zone

L'emplacement définit le champ d'application d'une ressource. Il a la valeur global par défaut, qui offre la plus haute disponibilité et une redondance des données dans plusieurs régions Google Cloud. Vous pouvez définir manuellement l'emplacement d'une ressource sur une région Google Cloud spécifique (toutes les régions ne sont pas disponibles). Si vous souhaitez contrôler l'emplacement de stockage des données ou vos domaines de basculement, remplacez le paramètre par défaut global par l'un des emplacements compatibles suivants:

Emplacements acceptés

  • asia-east1
  • asia-east2
  • asia-northeast1
  • asia-northeast2
  • asia-northeast3
  • asia-south1
  • asia-southeast1
  • asia-southeast2
  • australia-southeast1
  • europe-central2
  • europe-north1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • europe-west6
  • global
  • northamerica-northeast1
  • southamerica-east1
  • us-central1
  • us-east1
  • us-east4
  • us-west1
  • us-west2

Domaine

Game Servers est conçu pour être compatible avec les clusters Kubernetes s'exécutant sur Google Kubernetes Engine. S'appuyant sur les concepts de régions et zones Google Cloud, Game Servers introduit le concept de métarégion des domaines. Un domaine est un regroupement défini par l'utilisateur de clusters de serveur de jeu en fonction des exigences de latence du jeu pour les populations de joueurs. Un fuseau horaire leur est attribué, ce qui permet d'utiliser des configurations de scaling temporelle dans des clusters situés dans le monde réel. Les domaines existent dans un emplacement.

Cluster Game Servers

Un cluster de serveur de jeu est une sous-ressource d'une ressource realm. Chaque cluster de serveur de jeu correspond à un espace de noms sur un cluster Kubernetes exécutant Agones enregistré dans un domaine réel. Les clusters de serveurs de jeu dans un domaine doivent être considérés comme équivalents du point de vue de l'expérience utilisateur en ce qui concerne des mesures telles que la latence ou les performances de calcul. L'utilisation d'un espace de noms autre que default nécessite la création de l'espace de noms sur Kubernetes et d'Agones configuré pour l'utiliser.

Une fois que vous avez créé un cluster de serveurs de jeu, Game Server crée des Parcs d'Agones et des autoscalers si nécessaire. Game Servers ne modifie pas les fonctionnalités Agones créées manuellement.

Une fois qu'un cluster de serveur de jeu est supprimé, Game Servers ne supprime aucune ressource du cluster, y compris les parcs Agones et les autoscalers créés par Game Servers.

Déploiement de Game Servers

Un déploiement de serveur de jeu est un enregistrement global d'une version de logiciel de serveur de jeu pouvant être déployée sur tout ou partie des clusters de serveurs de jeu à travers le monde. Un déploiement de serveur de jeu est la ressource parente des ressources de configuration du serveur de jeu et de déploiement.

Déployer différentes configurations dans des domaines différents
Figure 2. La version 1.0 déployée sur le domaine américain, la version 1.1 déployée sur les domaines européens et du Japon

Configuration de Game Servers

Une configuration de serveur de jeu est une sous-ressource d'une ressource de déploiement de serveur de jeu qui spécifie le nombre de serveurs de jeux, la mémoire tampon et la version du serveur de jeu. Vous définissez des règles de scaling dans une configuration de serveur de jeu. Les règles de scaling peuvent être statiques ou basées sur l'heure, comme illustré dans les exemples suivants:

  • Pendant les heures de pointe, il devrait y avoir suffisamment de serveurs pour gérer N allocations par minute, pendant les heures creuses pendant la journée.
  • Pour les événements de jeu planifiés, augmentez la capacité réservée de N% pour une plage de dates et d'heures.

Déploiement

Un déploiement est une sous-ressource d'une ressource de déploiement de serveur de jeu qui mappe les configurations de serveur de jeu pour cibler des reals. Par défaut, un déploiement attribue une configuration de serveur de jeu à tous les domaines. Pour les tests A/B et les tests Canary, vous pouvez ignorer des domaines spécifiques pour recevoir une autre configuration de serveur de jeu.

Architecture

Game Servers expose une API de plan de contrôle accessible dans le monde entier, via laquelle vous pouvez contrôler les ressources décrivant le déploiement à l'aide d'appels d'API, de Cloud Console ou de l'outil de ligne de commande gcloud:

  • Créer et modifier des domaines
  • Création, enregistrement et modification de clusters de serveurs de jeu en temps réel.
  • Créer, déployer et mettre à jour des déploiements de serveurs de jeu, des configurations de serveur de jeu et des déploiements.

Un compte de service Kubernetes doit être en place pour que Agones puisse gérer les serveurs de jeu dans l'espace de noms que vous transmettez aux serveurs de jeux lors de la création d'un cluster Game Servers. Si vous utilisez un espace de noms autre que l'espace de noms par défaut, vous devez généralement créer ce compte de service lors de l'installation Helm.

Un compte de service de projet Google Cloud doit être en place pour que Game Servers puisse se connecter aux clusters Agones. Ce compte de service est créé automatiquement lorsque vous créez une ressource pour la première fois, comme un domaine ou un déploiement.

Chaque déploiement de serveur de jeu décrit des paramètres de serveur de jeu, équivalents à une GameServerSpec Agones, et spécifie une règle pour cibler les clusters de serveurs de jeu où des parcs de serveurs de jeu exécutant un build spécifique doivent être créés. Vous pouvez également définir des préférences de scaling pour des clusters individuels à l'aide de règles.

Étape suivante