Déployer une configuration Canary

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 des services de jeux
  • Choisissez une interface système sur laquelle le SDK Cloud est installé, ou utilisez un client API :
  • Cloud Shell

    Pour lancer Cloud Shell, procédez comme suit :

    1. Accédez à Google Cloud Console.

      Google Cloud Console

    2. Dans l'angle supérieur droit de la console, cliquez sur le bouton Activer Cloud Shell :

    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.

    Interface système locale

    Pour installer gcloud, installez le SDK Cloud, qui inclut l'outil de ligne de commande gcloud.

    Vérifiez que vous avez défini le projet par défaut souhaité pour l'outil de ligne de commande gcloud. Sinon, vous devrez spécifier explicitement l'option --project 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 du SDK Google Cloud. Game Servers nécessite la version 306.0.0 ou une version ultérieure du SDK.

    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:

    1. Créer un compte de service
    2. Téléchargez une clé privée sous la forme d'un fichier JSON.
    3. Définissez la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS pour qu'elle pointe vers le chemin du fichier JSON contenant la clé de votre compte de service. Cette variable ne s'applique qu'à la session de shell actuelle. Par conséquent, si vous ouvrez une nouvelle session, vous devez de nouveau la définir.

    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 :

  1. Assurez-vous que l'état de chaque instance de serveur de jeu est Ready.

  2. 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 Canary GameServers possèdent les mêmes libellés qui correspondent au sélecteur required (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écification GameServerAllocation.

  3. 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.

Architecture utilisant un domaine distinct pour la version Canary

Pour définir v2 en tant que configuration active dans le domaine australia :

  1. Copiez le code suivant dans le fichier :

    - realmsSelector:
        realms:
            - projects/games/locations/australia-southeast1/realms/australia
      configVersion: v2
    

  2. Pour appliquer les modifications, exécutez la commande suivante :

    gcloud game servers deployments update-rollout stk --config-overrides-file configOverrideFile  --no-dry-run
    

    configOverrideFile est le chemin d'accès au fichier avec la configuration de remplacement.

Architecture après le déploiement Canary

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. Architecture après le déploiement complet

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é.

État initial du déploiement Canary distinct

  1. 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.

  2. 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
    

    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.

  3. 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.

    Architecture après le déploiement Canary initial

  4. 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
    

    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 choisir une petite taille pour les parcs Canary.

  5. 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.

    Architecture après le nouveau déploiement Canary

  6. 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.

    Architecture après le déploiement

  7. Nettoyez le déploiement Canary.

    1. Effacez le lancement pour le déploiement Canary en exécutant la commande suivante :

      gcloud game servers deployments update-rollout canary --clear-default-config --no-dry-run
      

    2. Exécutez la commande suivante pour supprimer la configuration "v1" :

      gcloud game servers configs delete v1 --deployment=canary
      

    3. Supprimez la configuration "v2" en exécutant la commande suivante :

      gcloud game servers configs delete v2 --deployment=canary
      

    4. Supprimez le déploiement Canary en exécutant la commande suivante :

      gcloud game servers deployments delete canary
      

    Architecture après le nettoyage

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.