Configurer des environnements hautement résilients

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Cette page explique comment configurer des environnements Cloud Composer très résilients.

À propos de la résilience en cas de défaillance zonale dans Cloud Composer

Les environnements Cloud Composer hautement résilients (à haute disponibilité) utilisent des mécanismes de redondance et de basculement intégrés qui réduisent la sensibilité de l'environnement aux défaillances zonales et aux pannes de point de défaillance unique.

Par exemple, une panne zonale interrompt les tâches Airflow qui s'exécutent dans une zone spécifique. Ensuite, un environnement à haute résilience récupère et redémarre ses composants affectés dans une autre zone, et bascule sa base de données vers une zone secondaire. Ainsi, les tâches Airflow ayant échoué peuvent être reprogrammées et redémarrées par Airflow, tout en conservant l'historique des exécutions de DAG et d'autres paramètres.

Un environnement très résilient est multizonal et 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, le composant Cloud SQL qui stocke la base de données de votre environnement s'exécute en mode haute disponibilité. Une instance principale et une instance de secours de Cloud SQL sont réparties entre les zones.

En cas d'indisponibilité, l'instance Cloud SQL de votre environnement effectue le basculement automatique de la base de données vers l'instance Cloud SQL de secours. Vous n'avez pas besoin d'effectuer d'actions supplémentaires dans votre environnement Cloud Composer. Une fois la zone principale de nouveau opérationnelle, l'environnement revient à deux zones (principale et secondaire). Dans certains cas, il est possible d'inverser les zones principale et secondaire. 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

Un environnement très résilient est multizonal et s'exécute sur au moins deux zones d'une région sélectionnée. Les composants suivants 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œud de calcul entre les zones. En cas de panne dans une zone, les instances de nœud de calcul concernées sont reprogrammées dans une autre zone.

Pour en savoir plus sur l'architecture des environnements très résilients, consultez Architecture des environnements très résilients.

Avant de commencer

  • Dans Cloud Composer 2, la haute résilience n'est disponible que dans les environnements d'adresse IP privée.

  • Les environnements très résilients sont proposés à un coût supplémentaire par rapport aux environnements standards.

  • Les environnements à haute résilience sont disponibles dans Cloud Composer version 2.2.0 et ultérieures.

  • Si vous souhaitez mettre à jour un environnement standard vers un environnement à haute résilience, assurez-vous qu'il répond aux exigences de configuration suivantes. Si votre environnement ne répond pas à ces exigences, vous pouvez mettre à jour ses paramètres d'évolutivité et de performances.

    • Le nombre minimal de nœuds de calcul Airflow est de deux.
    • Le nombre de programmeurs Airflow est exactement de deux.

    • Si vous utilisez des opérateurs différables dans vos DAG, vous devez disposer d'au moins deux déclencheurs.

Créer un environnement très résilient

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

Mettre à jour un environnement standard vers le 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 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
  • LOCATION : région où se trouve l'environnement.

API

  1. Rédigez une requête API environments.patch.

  2. Dans cette requête :

    1. Dans le paramètre updateMask, spécifiez le masque config.resilienceMode.

    2. Dans le corps de la requête, spécifiez HIGH_RESILIENCE pour passer en mode haute résilience.

Exemple :

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.resilienceMode

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

Terraform

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

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

  config {

    resilience_mode = "HIGH_RESILIENCE"

  }
}

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME : nom de votre environnement
  • LOCATION : région où se trouve l'environnement.

Exemple :

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

  config {

    resilience_mode = "HIGH_RESILIENCE"

}

Passer d'un environnement à haute résilience au mode de résilience standard

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

  • Réduit le nombre de serveurs Web dans votre environnement à un.
  • 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 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 où se trouve l'environnement.

API

  1. Rédigez une requête API environments.patch.

  2. Dans cette requête :

    1. Dans le paramètre updateMask, spécifiez le masque config.resilienceMode.

    2. Dans le corps de la requête, spécifiez RESILIENCE_MODE_UNSPECIFIED pour passer au mode de résilience standard.

Exemple :

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?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"

  }
}

Remplacez les éléments suivants :

  • ENVIRONMENT_NAME : nom de votre environnement
  • LOCATION : région où se trouve l'environnement.

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, consultez 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 où se trouve l'environnement.

Étapes suivantes