Configure ambientes altamente resilientes

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Nesta página, descrevemos como configurar ambientes do Cloud Composer altamente resilientes.

Sobre a resiliência para falhas em zonas no Cloud Composer

Os ambientes do Cloud Composer altamente resilientes usam mecanismos integrados de redundância e failover que reduzem a suscetibilidade do ambiente a falhas zonais e de ponto único de falha.

Por exemplo, uma interrupção de zona interrompe tarefas do Airflow que são executadas em uma zona específica. Em seguida, um ambiente altamente resiliente se recupera, reinicia os componentes afetados em uma zona diferente e alterna o banco de dados dele para uma zona secundária. Assim, as tarefas com falha do Airflow podem ser reprogramadas e reiniciadas pelo Airflow, ao mesmo tempo em que preservam o histórico de execuções de DAGs e outras configurações.

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

Você pode usar ambientes do Cloud Composer altamente resilientes para processos de negócios críticos.

Sobre o banco de dados altamente disponível do seu ambiente

Em ambientes do Cloud Composer altamente disponíveis, a instância do Cloud SQL que armazena o banco de dados do ambiente é executada no modo de alta disponibilidade. Uma instância do Cloud SQL configurada para alta disponibilidade também é chamada de instância regional e está localizada em uma zona primária e secundária dentro da região configurada. Em uma instância regional, a configuração consiste em uma instância primária e uma instância em espera.

Em caso de interrupção, a instância do Cloud SQL do seu ambiente executa o failover automático do banco de dados na instância em espera do Cloud SQL. Nenhuma outra ação é necessária no ambiente do Cloud Composer. Depois que a zona principal estiver operacional de novo, o ambiente voltará a ter duas zonas (principal e secundária). As zonas primária e secundária podem ser trocadas em alguns casos. A instância do Cloud SQL no modo de alta disponibilidade usa o mesmo endereço IP após um failover.

Sobre os componentes altamente disponíveis do Airflow

Os ambientes altamente disponíveis do Cloud Composer executam componentes do Airflow distribuídos entre zonas.

Seu ambiente sempre executa exatamente dois programadores do Airflow, dois servidores da Web e pelo menos dois (mas não mais de dez) acionadores se os acionadores estiverem ativados. Esses pares de componentes são executados em zonas separadas. O número mínimo de workers está definido como dois, e o cluster do ambiente distribui instâncias de workers entre as zonas. No caso de uma interrupção zonal, as instâncias de worker afetadas são reprogramadas em uma zona diferente.

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

Antes de começar

  • Os ambientes altamente resilientes estão disponíveis apenas em ambientes de IP privado.

  • Ambientes altamente resilientes são oferecidos por uma cobrança incremental em comparação com ambientes normais.

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

  • Se você quiser atualizar um ambiente padrão para um altamente resiliente, verifique se ele atende aos requisitos de configuração a seguir. Se o ambiente não atender a esses requisitos, atualize os parâmetros de escalonamento e desempenho.

    • O número mínimo de workers do Airflow é dois ou mais.
    • O número de programadores do Airflow é exatamente dois.
    • Se você usar operadores adiáveis nos DAGs, pelo menos dois acionadores.

Crie um ambiente altamente resiliente

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

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

Console

  1. No console do Google Cloud, acesse a página Ambientes.

    Acessar "Ambientes"

  2. Na lista de ambientes, clique no nome do ambiente. A página Detalhes do ambiente é aberta.

  3. Selecione a guia Configuração do ambiente.

  4. Na seção Resilience mode, clique em Edit.

  5. Selecione Alta resiliência e clique em Salvar.

gcloud

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

Substitua:

  • ENVIRONMENT_NAME: o nome do ambiente;
  • LOCATION: a região em que o ambiente está localizado.

API

  1. Crie uma solicitação de API environments.patch.

  2. Nesta solicitação:

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

    2. No corpo da solicitação, especifique HIGH_RESILIENCE para alternar 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 alta resiliência, defina esse valor como HIGH_RESILIENCE.

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

  config {

    resilience_mode = "HIGH_RESILIENCE"

  }
}

Substitua:

  • ENVIRONMENT_NAME: o nome do ambiente;
  • LOCATION: a região em que o ambiente está localizado.

Exemplo:

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

  config {

    resilience_mode = "HIGH_RESILIENCE"

}

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

É possível mudar o ambiente para o modo de resiliência padrão a qualquer momento. Essa operação:

  • reduz para um o número de servidores da Web no seu ambiente;
  • Desativa o modo de alta disponibilidade do banco de dados do Airflow do ambiente.
  • Não altera as configurações do número mínimo de workers, programadores ou gatilhos do Airflow.

Console

  1. No console do Google Cloud, acesse a página Ambientes.

    Acessar "Ambientes"

  2. Na lista de ambientes, clique no nome do ambiente. A página Detalhes do ambiente é aberta.

  3. Selecione a guia Configuração do ambiente.

  4. Na seção Resilience mode, clique em Edit.

  5. Selecione Resiliência padrão (padrão) e clique em Salvar.

gcloud

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

Substitua:

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

API

  1. Crie uma solicitação de API environments.patch.

  2. Nesta solicitação:

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

    2. No corpo da solicitação, especifique RESILIENCE_MODE_UNSPECIFIED para alternar 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 esse valor como STANDARD_RESILIENCE.

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

  config {

    resilience_mode = "STANDARD_RESILIENCE"

  }
}

Substitua:

  • ENVIRONMENT_NAME: o nome do ambiente;
  • LOCATION: a região em que o ambiente está localizado.

Exemplo:

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

  config {

    resilience_mode = "STANDARD_RESILIENCE"

}

Verificar se o ambiente é executado no modo de alta resiliência

Console

  1. No console do Google Cloud, acesse a página Ambientes.

    Acessar "Ambientes"

  2. Na lista de ambientes, clique no nome do ambiente. A página Detalhes do ambiente é aberta.

  3. Selecione a guia Configuração do ambiente.

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

gcloud

Para verificar se o modo de alta resiliência está ativado no seu ambiente, execute o seguinte comando da Google Cloud CLI. 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:

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

A seguir