Configure ambientes altamente resilientes

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Esta página descreve como configurar ambientes do Cloud Composer altamente resilientes.

Acerca da resiliência para falhas zonais no Cloud Composer

Os ambientes do Cloud Composer altamente resilientes (altamente disponíveis) usam mecanismos de redundância e comutação por falha incorporados que reduzem a suscetibilidade do ambiente a falhas zonais e interrupções de ponto único de falha.

Por exemplo, uma indisponibilidade zonal interrompe as tarefas do Airflow executadas numa zona específica. Posteriormente, um ambiente altamente resiliente recupera, reinicia os respetivos componentes afetados numa zona diferente e muda a respetiva base de dados para uma zona secundária. Deste modo, as tarefas do Airflow com falhas podem ser reagendadas e reiniciadas pelo Airflow, ao mesmo tempo que preservam o histórico de execuções de DAGs e outras definições.

Um ambiente altamente resiliente é multizonal e é executado em, pelo menos, duas zonas de uma região selecionada. O Cloud Composer distribui automaticamente os componentes do seu ambiente entre zonas.

Pode usar ambientes do Cloud Composer altamente resilientes para processos empresariais críticos.

Acerca da base de dados de alta disponibilidade do seu ambiente

Em ambientes do Cloud Composer de elevada disponibilidade, o componente do Cloud SQL que armazena a base de dados do seu ambiente é executado no modo de elevada disponibilidade. Uma instância principal e uma instância de reserva do Cloud SQL são distribuídas entre zonas.

Em caso de indisponibilidade, a instância do Cloud SQL do seu ambiente executa a comutação por falha automática da base de dados para a instância do Cloud SQL em espera. Não tem de realizar ações adicionais no seu ambiente do Cloud Composer. Assim que a zona principal estiver novamente operacional, o ambiente volta a ter duas zonas (principal e secundária). Em alguns casos, é possível trocar as zonas primárias e secundárias. A instância do Cloud SQL no modo de alta disponibilidade usa o mesmo endereço IP após uma comutação por falha.

Acerca dos componentes do Airflow altamente disponíveis

Um ambiente altamente resiliente é multizonal e é executado em, pelo menos, duas zonas de uma região selecionada. Os seguintes componentes são executados em zonas separadas:

O número mínimo de trabalhadores está definido como dois e o cluster do seu ambiente distribui instâncias de trabalhadores entre zonas. Em caso de uma indisponibilidade zonal, as instâncias de trabalho afetadas são reagendadas numa zona diferente.

Para mais informações sobre a arquitetura de ambientes altamente resilientes, consulte o artigo Arquitetura de ambiente altamente resiliente.

Antes de começar

  • No Cloud Composer 2, a elevada resiliência está disponível apenas em ambientes de IP privado.

  • Os ambientes altamente resilientes são oferecidos mediante uma taxa incremental em comparação com os ambientes normais.

  • Os ambientes altamente resilientes estão disponíveis no Cloud Composer versão 2.2.0 e versões posteriores.

  • Se quiser atualizar um ambiente padrão para um ambiente altamente resiliente, certifique-se de que cumpre os seguintes requisitos de configuração. Se o seu ambiente não cumprir estes requisitos, pode atualizar os respetivos parâmetros de escala e desempenho.

    • O número mínimo de trabalhadores do Airflow é dois ou mais.
    • O número de programadores do Airflow é exatamente dois.

    • Se usar operadores adiáveis nos seus DAGs, então, pelo menos, dois acionadores.

Crie um ambiente altamente resiliente

Para criar um ambiente altamente resiliente, ative o modo de alta resiliência quando criar um ambiente.

Atualize um ambiente padrão para o modo de alta resiliência

Consola

  1. Na Google Cloud consola, aceda à página Ambientes.

    Aceder a Ambientes

  2. Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.

  3. Selecione o separador Configuração do ambiente.

  4. Na secção Modo de resiliência, clique em Editar.

  5. Selecione Resiliência elevada e clique em Guardar.

gcloud

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

Substitua o seguinte:

  • ENVIRONMENT_NAME: o nome do seu ambiente.
  • LOCATION: a região onde o ambiente está localizado.

API

  1. Construa um pedido de API environments.patch.

  2. Neste pedido:

    1. No parâmetro updateMask, especifique a máscara config.resilienceMode.

    2. No corpo do pedido, especifique HIGH_RESILIENCE para mudar para o modo de alta resiliência.

Exemplo:

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

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

Terraform

O campo resilience_mode no bloco config especifica o modo de resiliência. Para usar o modo de elevada resiliência, defina este valor como HIGH_RESILIENCE.

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

  config {

    resilience_mode = "HIGH_RESILIENCE"

  }
}

Substitua o seguinte:

  • ENVIRONMENT_NAME: o nome do seu ambiente.
  • LOCATION: a região onde o ambiente está localizado.

Exemplo:

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

  config {

    resilience_mode = "HIGH_RESILIENCE"

}

Altere um ambiente altamente resiliente para o modo de resiliência padrão

Pode alterar o seu ambiente para o modo de resiliência padrão em qualquer altura. Esta operação:

  • Reduz o número de servidores Web no seu ambiente para um.
  • Desativa o modo de alta disponibilidade da base de dados do Airflow do seu ambiente.
  • Não altera as definições do número mínimo de trabalhadores do Airflow, programadores ou acionadores.

Consola

  1. Na Google Cloud consola, aceda à página Ambientes.

    Aceder a Ambientes

  2. Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.

  3. Selecione o separador Configuração do ambiente.

  4. Na secção Modo de resiliência, clique em Editar.

  5. Selecione Resiliência padrão (predefinição) e clique em Guardar.

gcloud

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

Substitua o seguinte:

  • ENVIRONMENT_NAME: o nome do seu ambiente do Cloud Composer
  • LOCATION: a região onde o ambiente está localizado.

API

  1. Construa um pedido de API environments.patch.

  2. Neste pedido:

    1. No parâmetro updateMask, especifique a máscara config.resilienceMode.

    2. No corpo do pedido, especifique RESILIENCE_MODE_UNSPECIFIED para mudar para o modo de resiliência padrão.

Exemplo:

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

O campo resilience_mode no bloco config especifica o modo de resiliência. Para usar o modo de resiliência padrão, defina este valor como STANDARD_RESILIENCE.

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

  config {

    resilience_mode = "STANDARD_RESILIENCE"

  }
}

Substitua o seguinte:

  • ENVIRONMENT_NAME: o nome do seu ambiente.
  • LOCATION: a região onde o ambiente está localizado.

Exemplo:

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

  config {

    resilience_mode = "STANDARD_RESILIENCE"

}

Verifique se o seu ambiente é executado no modo de elevada resiliência

Consola

  1. Na Google Cloud consola, aceda à página Ambientes.

    Aceder a Ambientes

  2. Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.

  3. Selecione o separador Configuração do ambiente.

  4. Na secção Modo de resiliência, veja o modo de resiliência do seu ambiente.

gcloud

Para verificar se o modo de elevada resiliência está ativado no seu ambiente, execute o seguinte comando da CLI gcloud do Google Cloud. O valor de True significa que o modo de alta resiliência está ativado no seu ambiente.

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

Substitua o seguinte:

  • ENVIRONMENT_NAME: o nome do seu ambiente do Cloud Composer
  • LOCATION: a região onde o ambiente está localizado.

O que se segue?