Présentation de Game Servers

Game Servers est un service de jeu géré, conçu pour les équipes d'infrastructure de jeu. Il permet de déployer et de gérer des parcs de serveurs de jeu dédiés mondiaux. Game Servers permet la gestion des clusters de serveurs de jeux à l'aide de Kubernetes pour l'orchestration de conteneurs et d'Agones pour l'orchestration du parc de serveurs de jeu et la gestion du cycle de vie. Vous pouvez connecter et déconnecter des clusters de la gestion par Game Servers à tout moment, sans aucun impact 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. En particulier, les sessions de jeu en cours ne sont jamais interrompues, car le serveur de jeu en cours d'utilisation n'est jamais arrêté brusquement.

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.

Emplacement

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 acceptées). Si vous souhaitez contrôler l'emplacement de stockage des données ou les domaines de basculement, remplacez le paramètre global par défaut par l'un des emplacements compatibles suivants :

Pays 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 serveurs de jeu en fonction des exigences de latence du jeu pour les populations de joueurs. Les domaines se voit attribuer un fuseau horaire qui leur permet d'utiliser des configurations de scaling basé sur le moment sur des clusters du domaine. Des domaines existent dans un emplacement spécifique.

Cluster Game Servers

Un cluster de serveurs de jeu est une sous-ressource d'une ressource de domaine. Chaque cluster de serveurs de jeu correspond à un espace de noms sur un cluster Kubernetes exécutant Agones qui est enregistré dans un domaine. 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 que cet espace de noms soit créé sur Kubernetes et qu'Agones soit configuré pour l'utiliser.

Après avoir créé un cluster de serveurs de jeux, Game Servers crée des flottes Agones et des autoscalers, si nécessaire. Game Servers ne modifie pas les flottes Agones créées manuellement.

Après la suppression d'un cluster de serveur de jeu,  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 déploiement et de configuration de serveur de jeu.

Déployer différentes configurations sur différents domaines
Figure 2. La version 1.0 de la configuration a été déployée dans le domaine américain, la version 1.1 déployée dans les domaines Europe et 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 jeu, le tampon et la version de 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 le moment, comme le montrent les exemples suivants :

  • Il doit y avoir suffisamment de serveurs pour prendre en charge N allocations par minute pendant les heures de pointe, et M allocations par minute pendant les heures creuses.
  • 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 avec des domaines cibles. 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 remplacer certains domaines pour recevoir une autre configuration de serveur de jeu.

Architecture

Game Servers expose une API de plan de contrôle disponible dans le monde entier, via laquelle vous pouvez contrôler les ressources décrivant le déploiement à l'aide d'appels d'API, de Google Cloud Console ou de la CLI Google Cloud, y compris:

  • Créer et modifier des domaines
  • Créer, enregistrer et modifier des clusters de serveurs de jeu dans des domaines
  • Créer, déployer et mettre à jour des déploiements de serveur de jeu, des configurations de serveur de jeu et des déploiements

Un compte de service Kubernetes doit être en place pour qu'Agones gère les serveurs de jeu dans l'espace de noms que vous transmettez à Game Servers 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 dans le cadre de l'installation d'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 pour la première fois une ressource, telle qu'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.

Étapes suivantes