Configurer des environnements Cloud Composer hautement résilients

Cloud Composer 1 | Cloud Composer 2

Cette page explique comment configurer des environnements Cloud Composer hautement résilients.

À propos de la résilience aux défaillances de zone dans Cloud Composer

Les environnements Cloud Composer hautement résilients sont des environnements Cloud Composer 2 qui utilisent des mécanismes intégrés de redondance et de basculement qui réduisent la vulnérabilité de l'environnement aux défaillances de zone et aux pannes au point de défaillance unique.

Par exemple, une panne de zone interrompt les tâches Airflow exécutées dans une zone spécifique. Par la suite, un environnement hautement résilient récupère, redémarre ses composants affectés dans une zone différente et fait basculer sa base de données vers une zone secondaire. Ainsi, les tâches Airflow en échec peuvent être reprogrammées et redémarrées par Airflow, tout en préservant l'historique des exécutions du DAG et d'autres paramètres.

Un environnement hautement résilient s'exécute sur au moins deux zones d'une région sélectionnée. Cloud Composer distribue automatiquement les composants de votre environnement entre les zones.

Vous pouvez utiliser des environnements Cloud Composer hautement résilients pour les processus métier critiques.

À propos de la base de données à disponibilité élevée de votre environnement

Dans les environnements Cloud Composer à disponibilité élevée, l'instance Cloud SQL qui stocke la base de données de votre environnement s'exécute en mode haute disponibilité. Une instance Cloud SQL configurée pour la haute disponibilité est également appelée instance régionale. Elle se situe dans une zone principale et secondaire de la région configurée. Dans une instance régionale, la configuration se compose d'une instance principale et d'une instance de secours.

En cas de panne, l'instance Cloud SQL de votre environnement effectue le basculement automatique de la base de données vers l'instance Cloud SQL de secours. Aucune action supplémentaire n'est requise dans l'environnement Cloud Composer. Une fois que la zone principale est à nouveau opérationnelle, l'environnement comporte à nouveau deux zones (une zone principale et une zone secondaire). Dans certains cas, les zones principale et secondaire peuvent être échangées. L'instance Cloud SQL en mode haute disponibilité utilise la même adresse IP après un basculement.

À propos des composants Airflow à disponibilité élevée

Les environnements Cloud Composer à disponibilité élevée exécutent des composants Airflow répartis entre les zones.

Votre environnement exécute toujours exactement deux programmeurs Airflow, deux serveurs Web et au moins deux (mais pas plus de dix) déclencheurs si les déclencheurs sont activés. Ces paires de composants s'exécutent dans des zones distinctes. Le nombre minimal de nœuds de calcul est défini sur deux, et le cluster de votre environnement répartit les instances de nœuds de calcul entre les zones. En cas de panne de zone, les instances de nœuds de calcul concernées sont reprogrammées dans une autre zone.

Pour en savoir plus sur l'architecture des environnements hautement résilients, consultez la page Architecture d'environnement hautement résilient.

Avant de commencer

  • Des environnements hautement résilients sont disponibles dans Cloud Composer version 2.2.0 et versions ultérieures.

  • Avec Cloud Composer 2, les environnements hautement résilients ne sont disponibles que dans les environnements IP privés.

  • Les environnements Cloud Composer hautement résilients sont proposés à des frais supplémentaires par rapport aux environnements standards.

  • Si vous souhaitez mettre à jour un environnement standard vers un environnement hautement résilient, assurez-vous qu'il respecte la configuration suivante:

    • nombre minimal de nœuds de calcul Airflow défini sur 2 ou plus
    • exactement 2 programmeurs Airflow
    • Si vous devez utiliser des opérateurs différables dans vos DAG, au moins deux déclencheurs (mais pas plus de 10)

    Si votre environnement ne répond pas à ces exigences, vous pouvez d'abord mettre à jour ses paramètres. Consultez la section Scaling des environnements.

Créer un environnement Cloud Composer hautement résilient

Pour créer un environnement hautement résilient, activez le mode haute résilience lorsque vous créez un environnement.

Mettre à jour un environnement standard en mode haute résilience

Console

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

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Sélectionnez l'onglet Configuration de l'environnement.

  4. Dans la section Mode de résilience, cliquez sur Modifier.

  5. Sélectionnez Haute résilience, puis cliquez sur Enregistrer.

gcloud

  gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --enable-high-resilience

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME: nom de votre environnement Cloud Composer
  • LOCATION: région dans laquelle se trouve l'environnement.

API

Créez une requête API environments.patch:

  • Utilisez la chaîne de requête updateMask=config.resilienceMode dans l'URL pour marquer le champ mis à jour par la requête.

  • Utilisez un fichier JSON dans le corps de la requête pour définir le champ resilienceMode sur HIGH_RESILIENCE dans la ressource Environment.

Exemple :

// PATCH https://composer.googleapis.com/v1/{name=projects/*/locations/*/environments/*}?updateMask=config.resilienceMode

{
 "config": {
   "resilience_mode": { "HIGH_RESILIENCE" }
   }
 }

Terraform

La définition du champ resilience_mode dans le bloc de configuration active le mode haute résilience.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    resilience_mode = "HIGH_RESILIENCE"

  }
}

Exemple :

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    resilience_mode = "HIGH_RESILIENCE"

}

Passer un environnement hautement résilient au mode de résilience standard

Vous pouvez passer votre environnement au mode de résilience standard à tout moment. Cette opération:

  • Réduit le nombre de serveurs Web dans votre environnement à 1.
  • Désactive le mode haute disponibilité de la base de données Airflow de votre environnement.
  • Ne modifie pas les paramètres du nombre minimal de nœuds de calcul, de programmeurs ou de déclencheurs Airflow.

Console

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

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Sélectionnez l'onglet Configuration de l'environnement.

  4. Dans la section Mode de résilience, cliquez sur Modifier.

  5. Sélectionnez Résilience standard (par défaut), puis cliquez sur Enregistrer.

gcloud

  gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --disable-high-resilience

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME: nom de votre environnement Cloud Composer
  • LOCATION: région dans laquelle se trouve l'environnement.

API

Créez une requête API environments.patch:

  • Utilisez la chaîne de requête updateMask=config.resilienceMode dans l'URL pour marquer le champ mis à jour par la requête.

  • Utilisez un fichier JSON dans le corps de la requête pour définir le champ resilienceMode sur RESILIENCE_MODE_UNSPECIFIED dans la ressource Environment.

Exemple :

// PATCH https://composer.googleapis.com/v1/{name=projects/*/locations/*/environments/*}?updateMask=config.resilienceMode

{
 "config": {
   "resilience_mode": { "RESILIENCE_MODE_UNSPECIFIED" }
   }
 }

Terraform

Le champ resilience_mode du bloc config spécifie le mode de résilience. Pour utiliser le mode de résilience standard, définissez cette valeur sur STANDARD_RESILIENCE.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    resilience_mode = "STANDARD_RESILIENCE"

  }
}

Exemple :

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    resilience_mode = "STANDARD_RESILIENCE"

}

Vérifier si votre environnement s'exécute en mode haute résilience

Console

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

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Sélectionnez l'onglet Configuration de l'environnement.

  4. Dans la section Mode de résilience, affichez le mode de résilience de votre environnement.

gcloud

Pour vérifier si le mode haute résilience est activé dans votre environnement, exécutez la commande Google Cloud CLI suivante. La valeur True signifie que le mode haute résilience est activé dans votre environnement.

gcloud composer environments describe ENVIRONMENT_NAME \
  --location LOCATION \
  --format="value(config.resilienceMode)"

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME: nom de votre environnement Cloud Composer
  • LOCATION: région dans laquelle se trouve l'environnement.

Étapes suivantes