Faire évoluer des environnements

Cloud Composer 1 | Cloud Composer 2

Cette page explique comment procéder au scaling d'environnements Cloud Composer dans Cloud Composer 2.

Autres pages sur le scaling :

Effectuer un scaling vertical et horizontal

Options de scaling horizontal :

Options de scaling vertical :

Ajuster le nombre minimal et maximal de nœuds de calcul

Vous pouvez définir le nombre minimal et maximal de nœuds de calcul pour votre environnement. Cloud Composer effectue un scaling automatique de votre environnement dans les limites définies. Vous pouvez ajuster ces limites à tout moment.

Console

  1. Accédez à la page Environnements dans Google Cloud Console:

    Accéder à la page "Environnements"

  2. Sélectionnez votre environnement.

  3. Accédez à l'onglet Configuration de l'environnement.

  4. Dans l'élément Ressources > Configuration des charges de travail, cliquez sur Modifier.

  5. Dans la boîte de dialogue Configuration des charges de travail, dans la section Autoscaling des nœuds de calcul, ajustez les limites pour les nœuds de calcul Airflow :

    • Dans le champ Nombre minimal de nœuds de calcul, spécifiez le nombre de nœuds de calcul Airflow que votre environnement doit exécuter en permanence. Le nombre de nœuds de calcul dans votre environnement ne passe jamais en dessous de ce seuil, même si un nombre inférieur de nœuds de calcul peut gérer la charge.

    • Dans le champ Nombre maximal de nœuds de calcul, spécifiez le nombre maximal de nœuds de calcul Airflow que votre environnement peut exécuter. Le nombre de nœuds de calcul dans votre environnement ne dépasse jamais ce nombre, même si un nombre plus élevé de nœuds de calcul est nécessaire pour gérer la charge.

  6. Cliquez sur Enregistrer.

gcloud

Exécutez la commande gcloud composer suivante :

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --min-workers WORKERS_MIN \
  --max-workers WORKERS_MAX

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région où se trouve l'environnement.
  • WORKERS_MIN par le nombre minimal de nœuds de calcul Airflow que votre environnement doit exécuter. Le nombre de nœuds de calcul dans votre environnement ne dépasse pas cette valeur, même si un nombre inférieur de nœuds de calcul peut gérer la charge.
  • WORKERS_MAX par le nombre maximal de nœuds de calcul Airflow que votre environnement peut exécuter. Le nombre de nœuds de calcul dans votre environnement ne dépasse jamais cette valeur, même si un nombre plus élevé de nœuds de calcul est nécessaire pour gérer la charge.

Exemple :

gcloud composer environments update example-environment \
  --location us-central1 \
  --min-workers 2 \
  --max-workers 6

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.softwareConfig.workloadsConfig.worker.minCount,config.softwareConfig.workloadsConfig.worker.maxCount.

    2. Dans le corps de la requête, spécifiez les nouvelles limites de nœuds de calcul dans les champs minCount et maxCount.

"config": {
  "workloadsConfig": {
    "worker": {
      "minCount": WORKERS_MIN,
      "maxCount": WORKERS_MAX
    }
  }
}

Remplacez :

  • WORKERS_MIN par le nombre minimal de nœuds de calcul Airflow que votre environnement doit exécuter. Le nombre de nœuds de calcul dans votre environnement ne dépasse pas cette valeur, même si un nombre inférieur de nœuds de calcul peut gérer la charge.
  • WORKERS_MAX par le nombre maximal de nœuds de calcul Airflow que votre environnement peut exécuter. Le nombre de nœuds de calcul dans votre environnement ne dépasse jamais cette valeur, même si un nombre plus élevé de nœuds de calcul est nécessaire pour gérer la charge.

Exemple :

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.worker.minCount,
// config.workloadsConfig.worker.maxCount

"config": {
  "workloadsConfig": {
    "worker": {
      "minCount": 2,
      "maxCount": 6
    }
  }
}

Terraform

Les champs min_count et max_count du bloc workloadsConfig.worker spécifient le nombre minimal et maximal de nœuds de calcul dans votre environnement :

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

  config {

    workloads_config {
      worker {
        min_count = WORKERS_MIN
        max_count = WORKERS_MAX
      }
    }

  }
}

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région où se trouve l'environnement.
  • WORKERS_MIN par le nombre minimal de nœuds de calcul Airflow que votre environnement doit exécuter. Le nombre de nœuds de calcul dans votre environnement ne dépasse pas cette valeur, même si un nombre inférieur de nœuds de calcul peut gérer la charge.
  • WORKERS_MAX par le nombre maximal de nœuds de calcul Airflow que votre environnement peut exécuter. Le nombre de nœuds de calcul dans votre environnement ne dépasse jamais cette valeur, même si un nombre plus élevé de nœuds de calcul est nécessaire pour gérer la charge.

Exemple :

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

  config {

    workloads_config {
      worker {
        min_count = 2
        max_count = 6
      }
    }

  }
}

Ajuster le nombre de programmeurs

Votre environnement peut exécuter plusieurs programmeurs Airflow à la fois. Utilisez plusieurs programmeurs pour répartir la charge entre les instances de programmeur, et ainsi améliorer les performances et la fiabilité. Vous pouvez spécifier un certain nombre de programmeurs jusqu'à atteindre le nombre de nœuds de votre environnement.

L'augmentation du nombre de programmeurs n'améliore pas toujours les performances d'Airflow. Par exemple, le fait d'avoir un seul programmeur peut offrir de meilleures performances que deux. C'est le cas lorsque le programmeur supplémentaire n'est pas utilisé et consomme donc les ressources de votre environnement sans incidence sur les performances globales. Les performances réelles du programmeur dépendent du nombre de nœuds de calcul Airflow, du nombre de DAG et des tâches exécutées dans votre environnement, ainsi que de la configuration d'Airflow et de l'environnement.

Nous vous recommandons de commencer par deux programmeurs, puis de surveiller les performances de votre environnement. Si vous modifiez le nombre de programmeurs, vous pouvez toujours rétablir l'échelle du nombre de programmeurs d'origine de votre environnement.

Pour en savoir plus sur la configuration de plusieurs programmeurs, consultez la documentation Airflow.

Pour modifier le nombre de programmeurs pour votre environnement, procédez comme suit :

Console

  1. Accédez à la page Environnements dans Google Cloud Console:

    Accéder à la page "Environnements"

  2. Sélectionnez votre environnement.

  3. Accédez à l'onglet Configuration de l'environnement.

  4. Dans l'élément Ressources > Configuration des charges de travail, cliquez sur Modifier.

  5. Dans la boîte de dialogue Configuration des charges de travail, dans le champ Nombre de programmeurs, définissez le nombre de programmeurs pour votre environnement.

  6. Cliquez sur Enregistrer.

gcloud

Exécutez la commande gcloud composer suivante :

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --scheduler-count SCHEDULER_COUNT

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région où se trouve l'environnement.
  • SCHEDULER_COUNT par le nombre de programmeurs ;

Exemple :

gcloud composer environments update example-environment \
  --location us-central1 \
  --scheduler-count 2

API

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

  2. Dans cette requête :

    1. Dans le paramètre updateMask, spécifiez le masque config.softwareConfig.workloadsConfig.scheduler.

    2. Dans le corps de la requête, spécifiez le nombre de programmeurs dans le champ count.

"config": {
  "workloadsConfig": {
    "scheduler": {
      "count": SCHEDULER_COUNT
    }
  }
}

Remplacez :

  • SCHEDULER_COUNT par le nombre de programmeurs.

Exemple :

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

"config": {
  "workloadsConfig": {
    "scheduler": {
      "count": 2
    }
  }
}

Terraform

Le champ count du bloc workloadsConfig.scheduler spécifie le nombre de programmeurs dans votre environnement :

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

  config {

    workloads_config {
      scheduler {
        count = SCHEDULER_COUNT
      }
    }

  }
}

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région où se trouve l'environnement.
  • SCHEDULER_COUNT par le nombre de programmeurs ;

Exemple :

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

  config {

    workloads_config {

      scheduler {
        count = 2
      }

    }
  }
}

Ajuster les paramètres de scaling et de performances des nœuds de calcul, du programmeur et du serveur Web

Vous pouvez spécifier les quantités de processeurs, de mémoire et d'espace disque utilisées par votre environnement. Vous pouvez ainsi augmenter les performances de votre environnement, en plus du scaling horizontal fourni par l'utilisation de plusieurs nœuds de calcul et programmeurs.

Console

  1. Accédez à la page Environnements dans Google Cloud Console:

    Accéder à la page "Environnements"

  2. Sélectionnez votre environnement.

  3. Accédez à l'onglet Configuration de l'environnement.

  4. Dans l'élément Ressources > Configuration des charges de travail, cliquez sur Modifier.

  5. Dans la boîte de dialogue Configurations de charges de travail, dans les champs Processeur, Mémoire et Stockage, spécifiez les quantités de processeurs, de mémoire et d'espace disque pour les programmeurs, le serveur Web et les nœuds de calcul Airflow.

  6. Cliquez sur Enregistrer.

gcloud

Les arguments suivants contrôlent les paramètres de processeur, de mémoire et d'espace disque des programmeurs Airflow, du serveur Web et des nœuds de calcul. Les programmeurs et nœuds de calcul utilisent chacun la quantité de ressources spécifiée.

  • --scheduler-cpu spécifie le nombre de processeurs pour un programmeur Airflow.
  • --scheduler-memory spécifie la quantité de mémoire pour un programmeur Airflow.
  • --scheduler-storage spécifie la quantité d'espace disque pour un programmeur Airflow.
  • --web-server-cpu spécifie le nombre de processeurs pour le serveur Web Airflow.
  • --web-server-memory spécifie la quantité de mémoire pour le serveur Web Airflow.
  • --web-server-storage spécifie la quantité d'espace disque pour le serveur Web Airflow.
  • --worker-cpu spécifie le nombre de processeurs pour un nœud de calcul Airflow.
  • --worker-memory spécifie la quantité de mémoire pour un nœud de calcul Airflow.
  • --worker-storage spécifie la quantité d'espace disque pour un nœud de calcul Airflow.
gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --scheduler-cpu SCHEDULER_CPU \
    --scheduler-memory SCHEDULER_MEMORY \
    --scheduler-storage SCHEDULER_STORAGE \
    --web-server-cpu WEB_SERVER_CPU \
    --web-server-memory WEB_SERVER_MEMORY \
    --web-server-storage WEB_SERVER_STORAGE \
    --worker-cpu WORKER_CPU \
    --worker-memory WORKER_MEMORY \
    --worker-storage WORKER_STORAGE

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région où se trouve l'environnement.
  • SCHEDULER_CPU par le nombre de processeurs pour un programmeur, en unités de processeur virtuel.
  • SCHEDULER_MEMORY par la quantité de mémoire pour un programmeur.
  • SCHEDULER_STORAGE par l'espace disque pour un programmeur.
  • WEB_SERVER_CPU par le nombre de processeurs pour le serveur Web, en unités de processeur virtuel.
  • WEB_SERVER_MEMORY par la quantité de mémoire pour le serveur Web.
  • WEB_SERVER_STORAGE par l'espace disque pour le serveur Web.
  • WORKER_CPU par le nombre de processeurs pour un nœud de calcul, en unités de processeur virtuel.
  • WORKER_MEMORY par la quantité de mémoire pour un nœud de calcul.
  • WORKER_STORAGE par l'espace disque pour un nœud de calcul.

Exemple :

gcloud composer environments update example-environment \
    --location us-central1 \
    --scheduler-cpu 0.5 \
    --scheduler-memory 2.5 \
    --scheduler-storage 2 \
    --web-server-cpu 1 \
    --web-server-memory 2.5 \
    --web-server-storage 2 \
    --worker-cpu 1 \
    --worker-memory 2 \
    --worker-storage 2 \

API

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

  2. Dans cette requête :

    1. Dans le paramètre updateMask, spécifiez les champs que vous souhaitez mettre à jour. Par exemple, pour mettre à jour tous les paramètres des programmeurs, spécifiez le masque config.softwareConfig.workloadsConfig.scheduler.cpu,config.softwareConfig.workloadsConfig.scheduler.memoryGb,config.softwareConfig.workloadsConfig.scheduler.storageGB.

    2. Dans le corps de la requête, spécifiez les paramètres de scaling et de performances.

  "config": {
    "workloadsConfig": {
      "scheduler": {
        "cpu": SCHEDULER_CPU,
        "memoryGb": SCHEDULER_MEMORY,
        "storageGb": SCHEDULER_STORAGE
      },
      "webServer": {
        "cpu": WEB_SERVER_CPU,
        "memoryGb": WEB_SERVER_MEMORY,
        "storageGb": WEB_SERVER_STORAGE
      },
      "worker": {
        "cpu": WORKER_CPU,
        "memoryGb": WORKER_MEMORY,
        "storageGb": WORKER_STORAGE
      }
    }
  }

Remplacez :

  • SCHEDULER_CPU par le nombre de processeurs pour un programmeur, en unités de processeur virtuel.
  • SCHEDULER_MEMORY par la quantité de mémoire pour un programmeur, en Go.
  • SCHEDULER_STORAGE par l'espace disque pour un programmeur, en Go
  • WEB_SERVER_CPU par le nombre de processeurs pour le serveur Web, en unités de processeur virtuel.
  • WEB_SERVER_MEMORY par la quantité de mémoire pour le serveur Web, en Go.
  • WEB_SERVER_STORAGE par l'espace disque pour le serveur Web, en Go.
  • WORKER_CPU par le nombre de processeurs pour un nœud de calcul, en unités de processeur virtuel.
  • WORKER_MEMORY par la quantité de mémoire pour un nœud de calcul, en Go.
  • WORKER_STORAGE par l'espace disque pour un nœud de calcul, en Go.

Exemple :

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.scheduler.cpu,
// config.workloadsConfig.scheduler.memoryGB,
// config.workloadsConfig.scheduler.storageGb,
// config.workloadsConfig.webServer.cpu,
// config.workloadsConfig.webServer.memoryGb,
// config.workloadsConfig.webServer.storageGb,
// config.workloadsConfig.worker.cpu,
// config.workloadsConfig.worker.memoryGb,
// config.workloadsConfig.worker.storageGb

"config": {
  "workloadsConfig": {
    "scheduler": {
      "cpu": 0.5,
      "memoryGb": 2.5,
      "storageGb": 2
    },
    "webServer": {
      "cpu": 0.5,
      "memoryGb": 2.5,
      "storageGb": 2
    },
    "worker": {
      "cpu": 1,
      "memoryGb": 2,
      "storageGb": 2
    }
  }
}

Terraform

Les blocs suivants dans le bloc workloadsConfig contrôlent les paramètres de processeur, de mémoire et d'espace disque des programmeurs Airflow, du serveur Web et des nœuds de calcul. Les programmeurs et les nœuds de calcul utilisent chacun la quantité spécifiée de ressources.

  • Le champ scheduler.cpu spécifie le nombre de processeurs pour un programmeur Airflow.
  • Le champ scheduler.memoryGb spécifie la quantité de mémoire pour un programmeur Airflow.
  • Le champ scheduler.storageGb spécifie la quantité d'espace disque pour un programmeur Airflow.
  • Le champ webServer.cpu spécifie le nombre de processeurs pour le serveur Web Airflow.
  • Le champ webServer.memoryGb spécifie la quantité de mémoire pour le serveur Web Airflow.
  • Le champ webServer.storageGb spécifie la quantité d'espace disque pour le serveur Web Airflow.
  • Le champ worker.cpu spécifie le nombre de processeurs pour un nœud de calcul Airflow.
  • Le champ worker.memoryGb spécifie la quantité de mémoire pour un nœud de calcul Airflow.
  • worker.storageGb spécifie la quantité d'espace disque pour un nœud de calcul Airflow.
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    workloads_config {

      scheduler {
        cpu = SCHEDULER_CPU
        memory_gb = SCHEDULER_MEMORY
        storage_gb = SCHEDULER_STORAGE
      }
      web_server {
        cpu = WEB_SERVER_CPU
        memory_gb = WEB_SERVER_MEMORY
        storage_gb = WEB_SERVER_STORAGE
      }
      worker {
        cpu = WORKER_CPU
        memory_gb = WORKER_MEMORY
        storage_gb = WORKER_STORAGE
      }
    }

  }
}

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région où se trouve l'environnement.
  • SCHEDULER_CPU par le nombre de processeurs pour un programmeur, en unités de processeur virtuel.
  • SCHEDULER_MEMORY par la quantité de mémoire pour un programmeur, en Go.
  • SCHEDULER_STORAGE par l'espace disque pour un programmeur, en Go
  • WEB_SERVER_CPU par le nombre de processeurs pour le serveur Web, en unités de processeur virtuel.
  • WEB_SERVER_MEMORY par la quantité de mémoire pour le serveur Web, en Go.
  • WEB_SERVER_STORAGE par l'espace disque pour le serveur Web, en Go.
  • WORKER_CPU par le nombre de processeurs pour un nœud de calcul, en unités de processeur virtuel.
  • WORKER_MEMORY par la quantité de mémoire pour un nœud de calcul, en Go.
  • WORKER_STORAGE par l'espace disque pour un nœud de calcul, en Go.

Exemple :

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

  config {

    workloads_config {

      scheduler {
        cpu = 0.5
        memory_gb = 1.875
        storage_gb = 1
      }
      web_server {
        cpu = 0.5
        memory_gb = 1.875
        storage_gb = 1
      }
      worker {
        cpu = 0.5
        memory_gb = 1.875
        storage_gb = 1
      }
    }

  }
}

Ajuster la taille de l'environnement

La taille de l'environnement contrôle les paramètres de performance de l'infrastructure Cloud Composer gérée, qui inclut la base de données Airflow. Envisagez de sélectionner une plus grande taille d'environnement si vous souhaitez exécuter un grand nombre de DAG et de tâches.



Console

  1. Accédez à la page Environnements dans Google Cloud Console:

    Accéder à la page "Environnements"

  2. Sélectionnez votre environnement.

  3. Accédez à l'onglet Configuration de l'environnement.

  4. Dans l'élément Ressources > Infrastructure principale, cliquez sur Modifier.

  5. Indiquez la taille de l'environnement dans le champ Taille de l'environnement de la boîte de dialogue Infrastructure principale.

  6. Cliquez sur Enregistrer.

gcloud

L'argument --environment-size contrôle la taille de l'environnement :

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --environment-size ENVIRONMENT_SIZE

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région où se trouve l'environnement.
  • ENVIRONMENT_SIZE avec small, medium, ou large.

Exemple :

gcloud composer environments update example-environment \
    --location us-central1 \
    --environment-size medium

API

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

  2. Dans cette requête :

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

    2. Dans le corps de la requête, spécifiez la taille de l'environnement.

  "config": {
    "environmentSize": "ENVIRONMENT_SIZE"
  }

Remplacez :

  • ENVIRONMENT_SIZE par la taille de l'environnement, ENVIRONMENT_SIZE_SMALL, ENVIRONMENT_SIZE_MEDIUM ou ENVIRONMENT_SIZE_LARGE.

Exemple :

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

"config": {
  "environmentSize": "ENVIRONMENT_SIZE_MEDIUM"
}

Terraform

Le champ environment_size du bloc config contrôle la taille de l'environnement :

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

  config {

    environment_size = "ENVIRONMENT_SIZE"

  }
}

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région où se trouve l'environnement.
  • ENVIRONMENT_SIZE par la taille de l'environnement, ENVIRONMENT_SIZE_SMALL, ENVIRONMENT_SIZE_MEDIUM ou ENVIRONMENT_SIZE_LARGE.

Exemple :

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

  config {

    environment_size = "ENVIRONMENT_SIZE_SMALL"

    }
  }
}

Étapes suivantes