Configurar ambientes do Cloud Composer altamente resilientes

Cloud Composer 1 | Cloud Composer 2

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

Sobre a resiliência para falhas zonais no Cloud Composer

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

Por exemplo, uma falha temporária zonal interrompe as 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 para uma zona secundária. Assim, as tarefas com falha do Airflow podem ser reprogramadas e reiniciadas por ele, preservando, ao mesmo tempo, o histórico de execuções de DAG 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.

É possível usar ambientes do Cloud Composer altamente resilientes em processos críticos da empresa.

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

Em ambientes altamente disponíveis do Cloud Composer, 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 é composta de uma instância principal e uma de espera.

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

Sobre os componentes do Airflow altamente disponíveis

Os ambientes do Cloud Composer altamente disponíveis executam componentes do Airflow distribuídos entre as 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 é definido como dois e o cluster do ambiente distribui instâncias de worker entre 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

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

  • Ambientes altamente resilientes estão disponíveis apenas em ambientes de IP privado com o Cloud Composer 2.

  • Os ambientes do Cloud Composer altamente resilientes são oferecidos por uma cobrança incremental em comparação com os ambientes normais.

  • Se você quiser atualizar um ambiente padrão para um altamente resiliente, verifique se ele atende à seguinte configuração:

    • Número mínimo de workers do Airflow definido como 2 ou mais
    • exatamente dois programadores do Airflow
    • se você precisar usar operadores adiáveis nos DAGs, pelo menos dois (e no máximo 10) gatilhos

    Se o ambiente não atender a esses requisitos, atualize as configurações primeiro. Consulte Como escalonar ambientes.

Criar um ambiente do Cloud Composer 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 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 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 do Cloud Composer
  • LOCATION: a região onde o ambiente está localizado.

API

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

  • Use a string de consulta updateMask=config.resilienceMode no URL para marcar o campo que é atualizado pela solicitação.

  • Use um arquivo JSON no corpo da solicitação para definir o campo resilienceMode como HIGH_RESILIENCE no recurso Environment.

Exemplo:

// PATCH https://composer.googleapis.com/v1/{name=projects/*/locations/*/environments/*}?updateMask=config.resilienceMode

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

Terraform

Definir o campo resilience_mode no bloco de configuração ativa o modo de alta resiliência.

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

  config {

    resilience_mode = "HIGH_RESILIENCE"

  }
}

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. Esta operação:

  • Reduz o número de servidores da Web no seu ambiente para 1.
  • Desativa o modo de alta disponibilidade do banco de dados 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 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 ambiente do Cloud Composer
  • LOCATION: a região onde o ambiente está localizado.

API

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

  • Use a string de consulta updateMask=config.resilienceMode no URL para marcar o campo que é atualizado pela solicitação.

  • Use um arquivo JSON no corpo da solicitação para definir o campo resilienceMode como RESILIENCE_MODE_UNSPECIFIED no recurso Environment.

Exemplo:

// PATCH https://composer.googleapis.com/v1/{name=projects/*/locations/*/environments/*}?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"

  }
}

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 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 ambiente.

gcloud

Para verificar se o modo de alta resiliência está ativado no seu ambiente, execute o comando a seguir da Google Cloud CLI. O valor de True significa que o modo de alta resiliência está ativado no 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 onde o ambiente está localizado.

A seguir