Configurar ambientes altamente resilientes

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

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

Sobre a capacidade de recuperação para falhas zonais no Cloud Composer

Os ambientes do Cloud Composer altamente resilientes (altamente disponíveis) usam mecanismos de redundância e failover integrados que reduzem a suscetibilidade do ambiente a falhas de zona e interrupções de ponto único de falha.

Por exemplo, uma interrupção zonal interrompe as tarefas do Airflow que são executadas em uma zona específica. Depois disso, um ambiente altamente resiliente se recupera, reinicia os componentes afetados em uma zona diferente e muda o banco de dados para uma zona secundária. Assim, as tarefas com falha podem ser reprogramadas e reiniciadas pelo Airflow, preservando o histórico de execuções de DAG e outras configuraçõ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 as zonas.

É possível usar ambientes do Cloud Composer altamente resilientes para processos comerciais críticos.

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

Em ambientes do Cloud Composer de alta disponibilidade, o componente do Cloud SQL que armazena o banco de dados do ambiente é executado no modo de alta disponibilidade. Uma instância principal e uma instância em espera do Cloud SQL são distribuídas entre zonas.

Em caso de interrupção, a instância do Cloud SQL do seu ambiente realiza o failover automático do banco de dados para a instância do Cloud SQL em espera. Não é necessário realizar outras ações no ambiente do Cloud Composer. Quando a zona principal volta a operar, o ambiente volta a ter duas zonas (principal e secundária). Em alguns casos, as zonas primária e secundária podem ser trocadas. A instância do Cloud SQL no modo de alta disponibilidade usa o mesmo endereço IP após um failover.

Sobre os componentes do Airflow de alta disponibilidade

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 workers é definido como dois, e o cluster do ambiente distribui instâncias de worker entre as zonas. Em caso de uma interrupção de zona, as instâncias de worker afetadas são reagendadas 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

  • No Cloud Composer 3, a alta capacidade de recuperação está disponível para ambientes de IP privado e IP público.

  • Ambientes altamente resilientes executam componentes extras. Isso resulta em custos maiores em comparação com ambientes regulares.

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

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

    • Pelo menos dois processadores de DAG.

    • Se você usar operadores adiáveis nos seus DAGs, pelo menos dois acionadores.

Criar 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 capacidade de recuperação

Console

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

    Acessar "Ambientes"

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

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

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

  5. Selecione Alta capacidade de recuperação 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 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 alta capacidade de recuperação, 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 capacidade de recuperação padrão a qualquer momento. Esta operação:

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

Console

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

    Acessar "Ambientes"

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

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

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

  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 seu 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 mudar para o modo de capacidade de recuperação 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 capacidade de resposta 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 capacidade de resposta

Console

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

    Acessar "Ambientes"

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

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

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

gcloud

Para verificar se o modo de alta capacidade de resposta está ativado no seu ambiente, execute o seguinte comando da Google Cloud CLI. O valor 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 seu ambiente do Cloud Composer
  • LOCATION: a região em que o ambiente está localizado.

A seguir