Cette page décrit deux options différentes pour déployer une nouvelle configuration de Game Servers avec une phase Canary. En phase Canary, vous déployez la nouvelle configuration sur un petit nombre de clients. Cela vous permet d'identifier les problèmes potentiels sans affecter l'ensemble des utilisateurs.
La première méthode consiste à utiliser une région Canary. La configuration de cette option est plus simple, mais un déploiement inapproprié affecte l'ensemble de la région. L'autre option consiste à créer un déploiement Canary. Cette option est plus flexible, mais est un processus plus complexe à gérer.
Avant de commencer
Avant de commencer, nous vous recommandons de vous familiariser avec les concepts clés de la page Présentation de Game Servers. Assurez-vous également que vous avez également effectué les tâches suivantes :
- Assurez-vous d'avoir activé l'API des services de jeux. Activer l'API Game Services
- Choisissez une interface système sur laquelle gcloud CLI est installée ou utilisez un client API:
Accédez à Google Cloud Console.
Dans l'angle supérieur droit de la console, cliquez sur le bouton Activer Cloud Shell :
- Créer un compte de service
- Téléchargez une clé privée sous la forme d'un fichier JSON.
-
Set the environment variable
GOOGLE_APPLICATION_CREDENTIALS
to the path of the JSON file that contains your credentials. This variable applies only to your current shell session, so if you open a new session, set the variable again.
Cloud Shell
Pour lancer Cloud Shell, procédez comme suit :
Une session Cloud Shell s'ouvre dans un cadre situé en bas de la console.
Cette interface système vous permet d'exécuter les commandes gcloud
.
Shell local
Installer gcloud CLI
Vérifiez que vous avez défini le projet par défaut souhaité pour Google Cloud CLI (sinon, vous devrez spécifier l'indicateur --project
explicitement pour chaque commande ultérieurement):
gcloud config list project
Si non, vous pouvez exécuter la commande suivante pour définir un projet par défaut, en remplaçant PROJECT_ID
par l'ID de projet souhaité :
gcloud config set project PROJECT_ID
Exécutez la commande suivante pour vérifier votre version de Google Cloud CLI.
Game Servers nécessite la version 306.0.0
ou ultérieure de gcloud CLI.
gcloud version
Pour mettre à jour votre installation, exécutez la commande suivante :
gcloud components update
curl/PowerShell
Pour utiliser l'API REST avec curl
ou Windows PowerShell, procédez comme suit :
Bibliothèque cliente
Google Cloud Game Servers peut être contrôlé par programmation à l'aide d'une bibliothèque cliente. Pour obtenir des instructions sur l'utilisation de la bibliothèque et l'authentification, consultez la page Présentation des bibliothèques clientes.
Vérifier l'état d'un déploiement
Assurez-vous de vérifier l'état des serveurs à différents moments du déploiement. Vous pouvez utiliser ces données pour déterminer si vous pouvez poursuivre le déploiement. Si les vérifications d'état révèlent un problème, il est préférable de suspendre ou d'annuler le déploiement.
Vous pouvez utiliser les recommandations suivantes pour vérifier l'état d'un déploiement :
Assurez-vous que l'état de chaque instance de serveur de jeu est
Ready
.Vérifiez qu'Agones peut allouer et gérer le cycle de vie complet d'un
GameServer
. Assurez-vous que le déploiement principal et la version CanaryGameServers
possèdent les mêmes libellés qui correspondent au sélecteurrequired
(GameServerAllocation
) attendu, afin que votre gestionnaire de correspondance ne nécessite pas de modification de la requête à partir du déploiement Canary. Vous pouvez éventuellement allouer l'allocation privilégiée à partir du parc Canary en utilisant l'attribut "preferred" dans une spécificationGameServerAllocation
.Surveillez et assurez-vous que les métriques de jeu et les métriques système pertinentes de votre déploiement n'indiquent aucune dégradation des performances.
Déployer dans une région Canary
Game Servers vous permet de remplacer une configuration dans un ou plusieurs domaines. Assurez-vous que les clusters de votre région Canary se trouvent dans un domaine distinct.
Dans cet exemple, le domaine "australia" est le domaine Canary.
Pour définir v2
en tant que configuration active dans le domaine australia
:
Copiez le code suivant dans un fichier:
- realmsSelector: realms: - projects/games/locations/australia-southeast1/realms/australia configVersion: v2
Pour appliquer les modifications, exécutez la commande suivante :
gcloud game servers deployments update-rollout stk --config-overrides-file configOverrideFile --no-dry-run
où configOverrideFile est le chemin d'accès au fichier avec la configuration de remplacement.
Après avoir vérifié que la région Canary est opérationnelle, exécutez la commande suivante pour déployer la nouvelle version partout :
gcloud game servers deployments update-rollout stk --default-config "v2" --no-dry-run
Une fois l'opération terminée, la configuration v2
est déployée partout.
Maintenant, nettoyez le remplacement en exécutant la commande suivante :
gcloud game servers deployments update-rollout stk --no-dry-run --clear-config-overrides
Effectuer un déploiement Canary
Vous pouvez utiliser un déploiement distinct pour tester la configuration. Au départ, il n'y a pas de déploiement Canary dédié.
Commencez par créer le déploiement Canary :
gcloud game servers deployments create canary
Assurez-vous que le sélecteur utilisé dans GameServerAllocation peut sélectionner GameServers de votre parc principal et du parc Canary, afin qu'aucune modification ne soit requise dans vos stratégies d'allocation actuelles.
Exécutez la commande suivante pour créer une configuration
v1
identique à celle active dans le déploiement non Canary :gcloud game servers configs create v1 --deployment canary --fleet-configs-file fleetSpecFile --scaling-configs-file scalingConfigFile
où fleetSpecFile est le chemin d'accès au fichier contenant la spécification du parc. scalingConfigFile est le chemin d'accès au fichier contenant toutes les configurations de scaling.
Nous vous recommandons de définir les configurations de scaling de sorte que les parcs Canary soient beaucoup plus petits que les parcs classiques.
Exécutez la commande suivante pour mettre à jour le déploiement Canary afin que la configuration
v1
soit déployée partout:gcloud game servers deployments update-rollout canary --default-config v1 --no-dry-run
Vérifiez que les parcs Canary sont opérationnels.
Exécutez la commande suivante pour créer la configuration
v2
dans le déploiement Canary :gcloud game servers configs create v2 --deployment canary --fleet-configs-file fleetSpecFile --scaling-configs-file scalingConfigFile
où fleetSpecFile est le chemin d'accès au fichier contenant la spécification du parc. scalingConfigFile est le chemin d'accès au fichier contenant toutes les configurations de scaling. Nous vous recommandons de configurer les parcs Canary pour une petite taille.
Exécutez la commande suivante pour déployer la configuration
v2
dans le déploiement Canary :gcloud game servers deployments update-rollout canary --default-config v2 --no-dry-run
Vérifiez que les parcs Canary sont opérationnels.
Exécutez la commande suivante pour appliquer la configuration
v2
sur le déploiement principal :gcloud game servers deployments update-rollout stk --default-config v2 --no-dry-run
Vérifiez que les parcs sont opérationnels. À ce stade, l'opération
v2
est déployée partout.Nettoyez le déploiement Canary.
Effacez le déploiement Canary en exécutant la commande suivante:
gcloud game servers deployments update-rollout canary --clear-default-config --no-dry-run
Exécutez la commande suivante pour supprimer la configuration "v1" :
gcloud game servers configs delete v1 --deployment=canary
Supprimez la configuration "v2" en exécutant la commande suivante:
gcloud game servers configs delete v2 --deployment=canary
Supprimez le déploiement Canary en exécutant la commande suivante:
gcloud game servers deployments delete canary
Pour un contrôle plus précis d'un déploiement, vous pouvez déployer une configuration dans les domaines sélectionnés à l'aide de remplacements, avant de définir la configuration comme valeur par défaut. Suivez la même procédure pour déployer progressivement la version Canary.
Vous pouvez ignorer les trois premières étapes et la dernière étape en conservant un déploiement Canary indépendant. Pour les déploiements fréquents et réguliers, nous recommandons cette approche.