Créer et préparer un déploiement bleu-vert

Ce document explique comment créer et préparer un déploiement bleu-vert Cloud SQL pour effectuer des mises à niveau de version majeure ou des modifications de configuration.

Avant de commencer

Pour créer et préparer un déploiement bleu-vert, vérifiez que vous disposez des rôles requis et que votre instance source répond aux conditions préalables au déploiement.

Rôles et autorisations nécessaires

Pour obtenir les autorisations nécessaires pour créer et préparer un déploiement bleu-vert, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :

  • Éditeur Cloud SQL (roles/cloudsql.editor)
  • Administrateur Cloud SQL (roles/cloudsql.admin)

Pour les rôles personnalisés, assurez-vous de disposer des autorisations suivantes :

  • cloudsql.blueGreenDeployments.create
  • cloudsql.blueGreenDeployments.get
  • cloudsql.instances.get
  • cloudsql.instances.create
  • cloudsql.operations.get

Pour en savoir plus sur les rôles et les autorisations IAM dans Cloud SQL, consultez Rôles et autorisations.

Conditions préalables pour les instances

Avant de créer un déploiement bleu-vert, vérifiez que votre instance de production (bleue) répond aux exigences suivantes :

  1. Moteur et version de la base de données : votre instance doit exécuter Cloud SQL pour MySQL version 5.7, 8.0 ou 8.4. La version 8.0.18 n'est pas compatible. Pour les mises à niveau de versions majeures, vous pouvez passer de la version 8.0 à la version 8.4.
  2. Journalisation binaire et sauvegardes automatiques : vous devez activer la journalisation binaire et les sauvegardes automatiques sur l'instance bleue pour établir une réplication logique continue vers l'environnement vert.
  3. État de l'instance : l'instance bleue doit être dans l'état RUNNING, sans opération en cours ni intervalle de maintenance incompatible.
  4. Fonctionnalités non compatibles : vérifiez que votre instance n'utilise aucune fonctionnalité non compatible avec les déploiements bleu-vert, y compris les suivantes :

  5. Dernière version de maintenance : votre instance doit exécuter la dernière version de maintenance avant de créer un déploiement bleu-vert. Pour en savoir plus, consultez Maintenance en libre-service.

  6. Architecture réseau : votre instance doit utiliser la nouvelle architecture réseau. Les instances qui utilisent l'ancienne architecture réseau ne sont pas compatibles.

Lorsque vous déclenchez la création d'un déploiement, Cloud SQL exécute automatiquement une série de prévérifications automatisées pour valider la compatibilité de la réplication et les indicateurs. Pour les mises à niveau de version majeure, Cloud SQL exécute également l'API de vérification préalable à la mise à niveau de version majeure sur l'instance source afin de valider l'aptitude à la mise à niveau avant de poursuivre le workflow. Si les prévérifications échouent, la création du déploiement s'arrête et renvoie une erreur dans l'état de l'opération.

Créer un déploiement bleu-vert

Vous pouvez créer un déploiement bleu-vert avec intention pour effectuer une mise à niveau de version majeure ou sans intention pour préparer des mises à jour matérielles ou de signalisation.

Console

  1. Dans la console Google Cloud , accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Dans la section Configuration, cliquez sur Créer un déploiement bleu-vert.
  4. Sur la page Créer un déploiement bleu/vert, dans la section Informations sur le déploiement, saisissez un nom unique pour le déploiement dans le champ Nom du déploiement.
  5. Dans la liste Cas d'utilisation du déploiement, sélectionnez l'une des options suivantes :
    • Option A (Mise à niveau de version majeure) : pour préparer et tester une mise à niveau de version majeure sur l'instance verte avant le basculement, sélectionnez Mise à niveau de version majeure. Dans la liste Version de la base de données cible, sélectionnez la version de la base de données cible (par exemple, MySQL 8.4).

      Lorsque vous créez un déploiement avec intention, Cloud SQL exécute automatiquement la vérification préalable de la mise à niveau de version majeure dans le cadre de l'opération avant de créer l'instance verte. Nous vous recommandons également d'exécuter une vérification préliminaire de la mise à niveau de la version majeure avant de créer le déploiement pour identifier les éventuels blocages de la mise à niveau.

    • Option B (par défaut) : pour créer un environnement de staging vert avec la même version de base de données que l'instance source afin de tester les modifications de configuration ou matérielles, sélectionnez Par défaut.
  6. Cliquez sur Créer.

gcloud

Pour créer un déploiement bleu-vert à l'aide de gcloud, exécutez la commande blue-green-deployments create.

Option A : Créer avec l'intention (mise à niveau de la version majeure)

Lorsque vous créez un déploiement avec intention, Cloud SQL exécute automatiquement la vérification préliminaire de la mise à niveau de version majeure dans le cadre de l'opération avant de créer l'instance verte. Vous pouvez également exécuter la vérification préliminaire de la mise à niveau de version majeure sur votre instance bleue avant de créer le déploiement pour identifier les éventuels problèmes de mise à niveau.

gcloud beta sql blue-green-deployments create DEPLOYMENT_NAME \
  --source-instance=SOURCE_INSTANCE_ID \
  --target-database-version=TARGET_DATABASE_VERSION \
  --region=REGION \
  --async

Remplacez les éléments suivants :

  • DEPLOYMENT_NAME : nom unique de votre déploiement.
  • SOURCE_INSTANCE_ID : nom de votre instance source bleue.
  • TARGET_DATABASE_VERSION : version cible (par exemple, MYSQL_8_4).
  • REGION : Google Cloud région de votre instance bleue.

Option B : Créer sans intention (matériel ou configuration)

Omettez l'indicateur --target-database-version pour provisionner un environnement vert avec la même version de base de données que l'instance bleue :

gcloud beta sql blue-green-deployments create DEPLOYMENT_NAME \
  --source-instance=SOURCE_INSTANCE_ID \
  --region=REGION \
  --async

La création d'un déploiement bleu-vert prend plusieurs minutes, en particulier lors d'une mise à niveau de version majeure. Il est possible qu'un message indique que l'opération prend plus de temps que prévu. Vous pouvez ignorer ce message ou exécuter la commande gcloud sql operations wait pour l'ignorer et attendre la fin de l'opération :

gcloud sql operations wait OPERATION_ID

Remplacez OPERATION_ID par l'ID d'opération renvoyé par la commande ou affiché dans le message.

REST v1

Pour créer un déploiement bleu-vert à l'aide de l'API Cloud SQL Admin, envoyez une requête POST à la méthode blueGreenDeployments.create.

Option A : Créer avec l'intention (mise à niveau de la version majeure)

Lorsque vous créez un déploiement avec intention, Cloud SQL exécute automatiquement la vérification préliminaire de la mise à niveau de version majeure dans le cadre de l'opération avant de créer l'instance verte. Vous pouvez également exécuter la vérification préliminaire de la mise à niveau de version majeure sur votre instance bleue avant de créer le déploiement pour identifier les éventuels problèmes de mise à niveau.

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments?blueGreenDeploymentId=DEPLOYMENT_NAME
{
  "sourceInstance": "SOURCE_INSTANCE_ID",
  "requestedConfig": {
    "databaseVersion": "TARGET_DATABASE_VERSION"
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet Google Cloud .
  • REGION : Google Cloud région de votre instance bleue.
  • DEPLOYMENT_NAME : nom unique de votre déploiement.
  • SOURCE_INSTANCE_ID : nom de votre instance source bleue.
  • TARGET_DATABASE_VERSION : version de la base de données cible (par exemple, MYSQL_8_4).

Option B : Créer sans intention (matériel ou configuration)

Omettez le champ requestedConfig pour provisionner un environnement vert avec la même version de base de données que l'instance bleue :

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments?blueGreenDeploymentId=DEPLOYMENT_NAME
{
  "sourceInstance": "SOURCE_INSTANCE_ID"
}

REST v1beta4

Pour créer un déploiement bleu-vert à l'aide de l'API Cloud SQL Admin, envoyez une requête POST à la méthode blueGreenDeployments.create.

Option A : Créer avec l'intention (mise à niveau de la version majeure)

Lorsque vous créez un déploiement avec intention, Cloud SQL exécute automatiquement la vérification préliminaire de la mise à niveau de version majeure dans le cadre de l'opération avant de créer l'instance verte. Vous pouvez également exécuter la vérification préliminaire de la mise à niveau de version majeure sur votre instance bleue avant de créer le déploiement pour identifier les éventuels problèmes de mise à niveau.

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments?blueGreenDeploymentId=DEPLOYMENT_NAME
{
  "sourceInstance": "SOURCE_INSTANCE_ID",
  "requestedConfig": {
    "databaseVersion": "TARGET_DATABASE_VERSION"
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet Google Cloud .
  • REGION : Google Cloud région de votre instance bleue.
  • DEPLOYMENT_NAME : nom unique de votre déploiement.
  • SOURCE_INSTANCE_ID : nom de votre instance source bleue.
  • TARGET_DATABASE_VERSION : version de la base de données cible (par exemple, MYSQL_8_4).

Option B : Créer sans intention (matériel ou configuration)

Omettez le champ requestedConfig pour provisionner un environnement vert avec la même version de base de données que l'instance bleue :

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments?blueGreenDeploymentId=DEPLOYMENT_NAME
{
  "sourceInstance": "SOURCE_INSTANCE_ID"
}

Surveiller l'état du déploiement

La création est une opération de longue durée (LRO). Pendant la phase de préparation, Cloud SQL provisionne l'instance verte, la met à niveau (si une mise à niveau de version majeure a été demandée) et démarre la réplication logique continue.

Vérifiez la progression et l'état de votre déploiement bleu-vert :

Console

  1. Dans la console Google Cloud , accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Recherchez la fiche État du déploiement bleu-vert pour afficher l'état du déploiement.
  4. Pour afficher des informations détaillées sur les tâches de provisionnement et leur progression, cliquez sur Détails pour ouvrir la page Présentation du déploiement.

gcloud

Pour vérifier la progression et l'état de votre déploiement bleu-vert à l'aide de gcloud, exécutez la commande blue-green-deployments describe :

gcloud beta sql blue-green-deployments describe DEPLOYMENT_NAME \
  --region=REGION

Remplacez les éléments suivants :

  • DEPLOYMENT_NAME : nom de votre déploiement bleu-vert.
  • REGION : région Google Cloud dans laquelle le déploiement a été créé.

Pour attendre la fin de l'opération de création, exécutez la commande gcloud sql operations wait :

gcloud sql operations wait OPERATION_ID

Remplacez OPERATION_ID par l'ID de l'opération de création.

REST v1

Pour vérifier la progression et l'état de votre déploiement bleu-vert à l'aide de l'API Cloud SQL Admin, envoyez une requête GET à la méthode blueGreenDeployments.get :

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments/DEPLOYMENT_NAME

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet Google Cloud .
  • REGION : région Google Cloud dans laquelle le déploiement a été créé.
  • DEPLOYMENT_NAME : nom de votre déploiement bleu-vert.

REST v1beta4

Pour vérifier la progression et l'état de votre déploiement bleu-vert à l'aide de l'API Cloud SQL Admin, envoyez une requête GET à la méthode blueGreenDeployments.get :

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments/DEPLOYMENT_NAME

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet Google Cloud .
  • REGION : région Google Cloud dans laquelle le déploiement a été créé.
  • DEPLOYMENT_NAME : nom de votre déploiement bleu-vert.

Dans le résultat de la commande ou la console Google Cloud , surveillez le champ state pour suivre le cycle de vie du déploiement :

  • PROVISIONING : l'instance verte est en cours de création, de mise à niveau (si demandé) et de connexion à la réplication logique continue.
  • SWITCHOVER_READY : la réplication initiale est terminée et la réplication logique continue est active. Le déploiement est prêt pour la validation, les tests et la commutation.
  • SWITCHOVER_NOT_READY : le déploiement est provisionné, mais la permutation ne peut pas être lancée (par exemple, si la réplication est interrompue ou si un problème est signalé dans errorDetail).

Pour en savoir plus sur toutes les phases du cycle de vie du déploiement, consultez Cycle de vie et états du déploiement.

Attendez que l'état du déploiement passe à SWITCHOVER_READY avant de décrire le déploiement, de valider les charges de travail de votre application ou de lancer une commutation.

Étapes suivantes