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:
Exatamente dois programadores do Airflow
Pelo menos, dois acionadores (se o número de acionadores não estiver definido como zero)
Pelo menos, dois processadores DAG
Dois servidores Web
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 3, a elevada resiliência está disponível para ambientes de IP privado e IP público.
Os ambientes altamente resilientes executam componentes de ambiente adicionais. Isto resulta em aumento dos custos em comparação com ambientes normais.
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.
Pelo menos, dois processadores DAG.
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
Na Google Cloud consola, aceda à página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.
Selecione o separador Configuração do ambiente.
Na secção Modo de resiliência, clique em Editar.
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
Construa um pedido de API
environments.patch
.Neste pedido:
No parâmetro
updateMask
, especifique a máscaraconfig.resilienceMode
.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
Na Google Cloud consola, aceda à página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.
Selecione o separador Configuração do ambiente.
Na secção Modo de resiliência, clique em Editar.
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 ComposerLOCATION
: a região onde o ambiente está localizado.
API
Construa um pedido de API
environments.patch
.Neste pedido:
No parâmetro
updateMask
, especifique a máscaraconfig.resilienceMode
.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
Na Google Cloud consola, aceda à página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.
Selecione o separador Configuração do ambiente.
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 ComposerLOCATION
: a região onde o ambiente está localizado.
O que se segue?
- Faça testes de comutação por falha para o seu ambiente altamente resiliente.
- Recuperação de desastres com instantâneos do ambiente