Configura ambienti a elevata resilienza

Airflow gestito (terza generazione) | Airflow gestito (seconda generazione) | Airflow gestito (prima generazione legacy)

Questa pagina descrive come configurare ambienti Airflow gestiti ad alta resilienza (alta disponibilità).

Informazioni sugli ambienti ad alta resilienza (alta disponibilità)

Un ambiente ad alta resilienza è multizona e viene eseguito in almeno due zone di una regione selezionata. Airflow gestito distribuisce automaticamente i componenti del tuo ambiente tra le zone.

Ad esempio, un'interruzione a livello di zona interrompe le attività Airflow eseguite in una zona specifica. Successivamente, un ambiente ad alta resilienza recupera, riavvia i componenti interessati in un'altra zona e passa il database a una zona secondaria. In questo modo, le attività Airflow non riuscite possono essere riprogrammate e riavviate da Airflow, preservando al contempo la cronologia delle esecuzioni DAG e altre impostazioni.

Informazioni sul database ad alta disponibilità dell'ambiente

Negli ambienti Airflow gestiti ad alta disponibilità, il componente Cloud SQL che archivia il database dell'ambiente viene eseguito in modalità ad alta disponibilità. Un'istanza principale e un'istanza in standby di Cloud SQL vengono distribuite tra le zone.

In caso di interruzione, l'istanza Cloud SQL dell'ambiente esegue il failover automatico del database all'istanza Cloud SQL in standby. Non è necessario eseguire altre azioni nell'ambiente Airflow gestito. Una volta che la zona principale è di nuovo operativa, l'ambiente torna ad avere due zone (principale e secondaria). In alcuni casi, le zone principali e secondarie possono essere scambiate. L'istanza Cloud SQL in modalità ad alta disponibilità utilizza lo stesso indirizzo IP dopo un failover.

Informazioni sui componenti Airflow ad alta disponibilità

Un ambiente ad alta resilienza è multizona e viene eseguito in almeno due zone di una regione selezionata. I seguenti componenti vengono eseguiti in zone separate:

Il numero minimo di worker è impostato su due e il cluster dell'ambiente distribuisce le istanze worker tra le zone. In caso di interruzione a livello di zona, le istanze worker interessate vengono riprogrammate in un'altra zona.

Per saperne di più sull'architettura degli ambienti ad alta resilienza, consulta Architettura dell'ambiente ad alta resilienza.

Prima di iniziare

  • In Airflow gestito (terza generazione), l'alta resilienza è disponibile sia per gli ambienti IP privati sia per quelli IP pubblici.

  • In Airflow gestito (terza generazione), gli ambienti ad alta resilienza sono disponibili a partire dalle build Airflow composer-3-airflow-2.10.2-build.13 e composer-3-airflow-2.9.3-build.20.

  • Gli ambienti ad alta resilienza eseguono componenti dell'ambiente aggiuntivi. Ciò comporta un aumento dei costi rispetto agli ambienti normali.

  • Se vuoi aggiornare un ambiente standard a uno ad alta resilienza, assicurati che soddisfi i seguenti requisiti di configurazione. Se l'ambiente non soddisfa questi requisiti, puoi aggiornarne i parametri di scalabilità e prestazioni.

    • Il numero minimo di worker Airflow è pari o superiore a due.
    • Il numero di scheduler Airflow è esattamente due.

    • Almeno due processori DAG.

    • Se utilizzi operatori decriptabili nei DAG, almeno due triggerer.

Creare un ambiente ad alta resilienza

Per creare un ambiente ad alta resilienza, attiva la modalità ad alta resilienza quando crei un ambiente.

Aggiornare un ambiente standard alla modalità ad alta resilienza

Console

  1. Nella Google Cloud console, vai alla pagina Ambienti.

    Vai ad Ambienti

  2. Nell'elenco degli ambienti, fai clic sul nome dell'ambiente. Si apre la pagina Dettagli ambiente.

  3. Seleziona la scheda Configurazione ambiente.

  4. Nella sezione Modalità resilienza, fai clic su Modifica.

  5. Seleziona Alta resilienza e fai clic su Salva.

gcloud

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

Sostituisci quanto segue:

  • ENVIRONMENT_NAME: il nome dell'ambiente.
  • LOCATION: la regione in cui si trova l'ambiente.

API

  1. Crea una richiesta API environments.patch.

  2. In questa richiesta:

    1. Nel parametro updateMask, specifica la maschera config.resilienceMode.

    2. Nel corpo della richiesta, specifica HIGH_RESILIENCE per passare alla modalità ad alta resilienza.

Esempio:

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

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

Terraform

Il campo resilience_mode nel blocco config specifica la modalità di resilienza. Per utilizzare la modalità ad alta resilienza, imposta questo valore su HIGH_RESILIENCE.

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

  config {

    resilience_mode = "HIGH_RESILIENCE"

  }
}

Sostituisci quanto segue:

  • ENVIRONMENT_NAME: il nome dell'ambiente.
  • LOCATION: la regione in cui si trova l'ambiente.

Esempio:

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

  config {

    resilience_mode = "HIGH_RESILIENCE"

}

Modificare un ambiente ad alta resilienza in modalità di resilienza standard

Puoi modificare la modalità di resilienza dell'ambiente in standard in qualsiasi momento. Questa operazione:

  • Riduce a uno il numero di server web nell'ambiente.
  • Disattiva la modalità ad alta disponibilità del database Airflow dell'ambiente.
  • Non modifica le impostazioni per il numero minimo di worker, scheduler o triggerer Airflow.

Console

  1. Nella Google Cloud console, vai alla pagina Ambienti.

    Vai ad Ambienti

  2. Nell'elenco degli ambienti, fai clic sul nome dell'ambiente. Si apre la pagina Dettagli ambiente.

  3. Seleziona la scheda Configurazione ambiente.

  4. Nella sezione Modalità resilienza, fai clic su Modifica.

  5. Seleziona Resilienza standard (impostazione predefinita) e fai clic su Salva.

gcloud

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

Sostituisci quanto segue:

  • ENVIRONMENT_NAME: il nome dell'ambiente Cloud Composer
  • LOCATION: la regione in cui si trova l'ambiente.

API

  1. Crea una richiesta API environments.patch.

  2. In questa richiesta:

    1. Nel parametro updateMask, specifica la maschera config.resilienceMode.

    2. Nel corpo della richiesta, specifica RESILIENCE_MODE_UNSPECIFIED per passare alla modalità di resilienza standard.

Esempio:

// 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

Il campo resilience_mode nel blocco config specifica la modalità di resilienza. Per utilizzare la modalità di resilienza standard, imposta questo valore su STANDARD_RESILIENCE.

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

  config {

    resilience_mode = "STANDARD_RESILIENCE"

  }
}

Sostituisci quanto segue:

  • ENVIRONMENT_NAME: il nome dell'ambiente.
  • LOCATION: la regione in cui si trova l'ambiente.

Esempio:

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

  config {

    resilience_mode = "STANDARD_RESILIENCE"

}

Verificare se l'ambiente è in esecuzione in modalità ad alta resilienza

Console

  1. Nella Google Cloud console, vai alla pagina Ambienti.

    Vai ad Ambienti

  2. Nell'elenco degli ambienti, fai clic sul nome dell'ambiente. Si apre la pagina Dettagli ambiente.

  3. Seleziona la scheda Configurazione ambiente.

  4. Nella sezione Modalità resilienza, visualizza la modalità di resilienza dell'ambiente.

gcloud

Per verificare se la modalità ad alta resilienza è attivata nell'ambiente, esegui il seguente comando Google Cloud CLI. Il valore True indica che la modalità ad alta resilienza è attivata nell'ambiente.

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

Sostituisci quanto segue:

  • ENVIRONMENT_NAME: il nome dell'ambiente Cloud Composer
  • LOCATION: la regione in cui si trova l'ambiente.

Passaggi successivi