Usar visualizações regionais para leituras resilientes do plano de controle

As dependências do plano de controle são as APIs e os serviços de metadados que gerenciam definições de recursos nos seus aplicativos. Para criar aplicativos resilientes e de alta disponibilidade e automatizar fluxos de trabalho de implantação no Compute Engine, é fundamental isolar essas dependências. Embora os endpoints de API globais ofereçam consistência forte em todas as regiões, qualquer pico de latência transitório ou interrupção no plano de controle global ou em uma região remota pode atrasar ou bloquear serviços locais.

Para criar aplicativos confiáveis que possam sobreviver a interrupções globais da API e operar de forma independente em cada região, configure seus serviços para consultar visualizações regionais de recursos globais. Ao usar endpoints de API somente leitura regionalizados para ler definições de recursos, o aplicativo se comunica estritamente com o plano de controle de uma região específica. Esse isolamento de falhas regionais garante que seus serviços permaneçam altamente disponíveis e responsivos, mesmo em interrupções globais.

Tipos de recursos compatíveis

Os endpoints de visualização regional estão disponíveis para os seguintes recursos globais:

  • Projetos: o projectViews endpoint oferece acesso regional somente leitura ao recurso global do projeto.
  • Imagens do SO: o imageViews endpoint oferece acesso regional somente leitura a recursos globais de imagem do SO.

Limitações

Os metadados de todos os recursos globais são armazenados em um banco de dados global central. Ao criar, ler, atualizar ou excluir um recurso usando endpoints globais padrão da API, o Compute Engine solicita a leitura e grava diretamente no banco de dados global central, oferecendo consistência forte.

Os endpoints de visualização regional leem metadados de recursos de réplicas regionais somente leitura do banco de dados global central. Como as mudanças são copiadas para essas réplicas regionais de forma assíncrona, você pode ter os seguintes comportamentos ao consultar visualizações regionais:

  • Pequenos atrasos: ao criar, atualizar ou excluir um recurso globalmente, pode levar até 60 segundos para que essa mudança seja copiada para todos os endpoints de visualização regional. Durante esse curto período, a leitura de uma visualização regional pode retornar dados um pouco mais antigos.
  • Failover automático: se você solicitar um recurso de uma visualização regional antes que ele termine de ser copiado para essa região, o Compute Engine vai ler automaticamente diretamente do banco de dados global central para que a sua solicitação ainda seja bem-sucedida.

Diferenças entre a visualização regional e a API global

As guias a seguir resumem as diferenças entre endpoints de visualização regional e endpoints globais padrão da API para cada tipo de recurso:

Projetos

As tabelas a seguir resumem as diferenças entre endpoints de visualização regional e endpoints de API globais padrão para o recurso do projeto:

Recurso API global API de visualização regional
Endpoint Global Regional
URL do recurso /projects/PROJECT_ID /projects/PROJECT_ID/regions/REGION/projectViews
Domínio de falha Global Isolado para a região especificada
Métodos aceitos Leitura e gravação Somente leitura (Get)
Cota de API Consome buckets de cota de leitura e gravação da API global Consome buckets de cota de leitura da API regional
Consistência de leitura após gravação Consistência forte (leituras do banco de dados global central) Consistência posterior (leituras da réplica regional)
Comportamento do campo de cota Retorna a matriz quota, usando fanouts entre regiões para fornecer dados de uso de cota em tempo real em todas as regiões e zonas. A matriz quota é excluída do objeto retornado Project. Como o projectViews endpoint lê estritamente de uma réplica regional e não realiza fanouts entre regiões para coletar métricas de cota, a quota matriz não é retornada. Para limites de configuração de cota e métricas de uso precisas em tempo real, consulte o endpoint global projects.get.

Imagens do SO

As tabelas a seguir resumem as diferenças entre endpoints de visualização regional e endpoints de API globais padrão para o recurso de imagem do SO:

Recurso API global API de visualização regional
Endpoint Global Regional
URL do recurso /projects/PROJECT_ID/global/images /projects/PROJECT_ID/regions/REGION/imageViews
Domínio de falha Global Isolado para a região especificada
Métodos aceitos Leitura e gravação Somente leitura (Get e List)
Cota de API Consome buckets de cota de leitura e gravação da API global Consome buckets de cota de leitura da API regional
Consistência de leitura após gravação Consistência forte (leituras do banco de dados global central) Consistência posterior (leituras da réplica regional)

Preços

O acesso a visualizações regionais por endpoints de API somente leitura regionais não gera cobranças adicionais. Assim como as solicitações globais padrão da API Compute Engine, as solicitações para endpoints de visualização regional consomem as cotas padrão da API do projeto, especificamente as cotas de leitura da API regional, mas não geram taxas adicionais.

Práticas recomendadas para alta disponibilidade

Para maximizar a resiliência do aplicativo, evitar carga desproporcional do plano de controle e evitar a criação de pontos de acesso de região única, siga estas práticas de confiabilidade ao configurar sistemas automatizados e cargas de trabalho do cliente:

  • Consultar regiões locais para reduzir a área afetada: envie solicitações de API projectViews e imageViews para a região exata em que a carga de trabalho do cliente ou o cluster de implantação é executado. Para cargas de trabalho zonais, use a região mãe. A localização de leituras garante que uma interrupção de rede ou falha em outra região não afete o serviço local.
  • Detectar strings de região dinamicamente: não fixe no código strings de região padrão específicas em bibliotecas de clientes compartilhadas ou modelos de implantação. Em vez disso, detecte dinamicamente a região de execução atual da carga de trabalho no ambiente de execução local para que os failovers multirregionais funcionem de forma transparente.
  • Usar o isolamento de cota regional contra cargas de trabalho concorrentes: o Compute Engine aplica limites de taxa de API por região. Picos de tráfego ou scripts descontrolados em uma região consomem a cota de leitura do bucket dessa região específica sem afetar a disponibilidade da API ou acionar limites de taxa (429 Too Many Requests) nas outras regiões críticas.

A seguir