Visão geral das extensões do Cloud Load Balancing e do Cloud CDN

Com as extensões de serviço, é possível usar extensões para instruir os balanceadores de carga de aplicativo compatíveis a usar plug-ins ou enviar destaques do caminho de dados de balanceamento de carga para chamar serviços de back-end ou do Google. Nesta página, você encontra uma visão geral das extensões do Cloud Load Balancing.

É possível configurar balanceadores de carga de aplicativo para usar os seguintes tipos de extensões:

  • As extensões de borda ajudam a manipular cabeçalhos de solicitação para influenciar a seleção de serviços de back-end e o conteúdo que o Cloud CDN disponibiliza do cache. Essas extensões são configuradas para serem executadas no início do ciclo de vida de processamento de solicitações para influenciar as decisões de cache e roteamento, respectivamente, na borda.

  • As extensões de rota ajudam você a influenciar a seleção serviço de back-end. Essas extensões são configuradas para serem executadas no início do ciclo de vida de processamento de solicitações.

  • As extensões de autorização ajudam você a enviar solicitações de autorização para seu mecanismo de autorização personalizado. Essas configurações são feitas no final do ciclo de processamento, pouco antes de o balanceador de carga enviar solicitações aos back-ends.

  • As extensões de tráfego ajudam a oferecer suporte a mais lógica de segurança personalizada e recursos de gerenciamento de tráfego. Você configura isso depois das extensões de autorização mas antes que o balanceador de carga envie solicitações aos back-ends ou receba respostas deles.

Balanceadores de carga de aplicativo compatíveis com extensões gerenciadas pelo usuário

As extensões de serviço são compatíveis com extensões gerenciadas pelo usuário para os seguintes balanceadores de carga de aplicativo:

Balanceadores de carga de aplicativos Extensões
Edge Rota Autorização Tráfego
Plug-ins Plug-ins Chamadas Chamadas Plug-ins Chamadas
Balanceador de carga de aplicativo externo global
Balanceador de carga de aplicativo externo regional Prévia Prévia
Balanceador de carga de aplicativo interno regional Prévia Prévia
Balanceador de carga de aplicativo interno entre regiões

Pontos de extensibilidade no caminho de dados de balanceamento de carga

As extensões de serviço oferecem suporte a extensões em diferentes estágios do caminho de dados de balanceamento de carga.

A Figura 1 mostra como as extensões de serviço oferecem suporte a extensões nas etapas de segurança de aplicativos e gerenciamento de tráfego para balanceadores de carga de aplicativo externos globais.

Figura 1. Os balanceadores de carga de aplicativo externos globais oferecem suporte a extensões nas etapas de roteamento de borda, segurança de aplicativos e gerenciamento de tráfego (clique para ampliar).

A Figura 2 mostra como as extensões de serviço oferecem suporte a extensões nas etapas de roteamento, segurança de aplicativos e gerenciamento de tráfego para estes tipos de balanceadores de carga: balanceador de carga de aplicativo externo regional, balanceador de carga de aplicativo interno regional e balanceador de carga de aplicativo interno entre regiões.

Figura 2. Os balanceadores de carga de aplicativo externos regionais, os balanceadores de carga de aplicativo internos regionais e os balanceadores de carga de aplicativo internos entre regiões aceitam extensões nas etapas de roteamento e gerenciamento de tráfego (clique para ampliar).

Como as extensões do Edge funcionam

As extensões de borda são executadas primeiro no caminho de tratamento de solicitações e permitem usar cabeçalhos de solicitação para influenciar a seleção de serviço de back-end e o conteúdo que o Cloud CDN veicula do cache.

Depois que um balanceador de carga chama uma extensão de borda, ele faz o seguinte:

  • Seleciona o serviço de back-end avaliando o mapa de URL
  • Aplica políticas de segurança do Google Cloud Armor
  • Faz uma pesquisa no cache e disponibiliza o conteúdo do cache se houver uma ocorrência em cache.
  • Aplica políticas do Cloud Armor ao serviço de back-end selecionado.
  • Aplica políticas de CORS
  • Aplica a política afinidade da sessão com estado.
  • Aplica políticas do Identity-Aware Proxy (IAP) ao serviço de back-end selecionado.
  • Chama extensões de autorização, se alguma estiver configurada no caminho de processamento do serviço de back-end selecionado.
  • Realiza injeção de falhas
  • Extensões de tráfego de chamadas, se houver
  • Realiza regravações de URL
  • Realiza a manipulação de cabeçalhos de acordo com o mapa de URL e adiciona variáveis de cabeçalho de solicitação personalizadas.
  • Realiza redirecionamentos ou roteamento para o serviço de back-end selecionado ao aplicar tempos limite e políticas de nova tentativa no mapa de URL e nas configurações de balanceamento de carga para o serviço de back-end.
  • Realiza o espelhamento de solicitações

Como as extensões de autorização funcionam

No caminho da solicitação, as extensões de autorização são chamadas depois que as extensões de rota são chamadas e um back-end para a solicitação é selecionado. Essas extensões não podem influenciar a seleção do serviço de back-end.

As extensões de autorização só podem processar cabeçalhos de solicitação, não corpos de solicitação ou qualquer parte das respostas.

Como as extensões de rotas funcionam

As extensões de rota são executadas primeiro no caminho de processamento de solicitações quando o balanceador de carga recebe cabeçalhos de solicitação e antes de avaliar o mapa de URL.

Depois que um balanceador de carga chama uma extensão de rota para uma solicitação, ele faz o seguinte:

  • Seleciona o serviço de back-end avaliando o mapa de URL
  • Aplica políticas do Cloud Armor ao serviço de back-end selecionado.
  • Aplica políticas do IAP ao serviço de back-end selecionado.
  • Realiza injeção de falhas
  • Realiza transformações de cabeçalho de solicitação e resolve variáveis de cabeçalho de solicitação personalizadas.
  • Chama extensões de tráfego, se elas existirem no caminho de processamento do serviço de back-end selecionado
  • Realiza regravações de URL
  • Executa redirecionamentos ou roteamento para o serviço de back-end selecionado e aplica tempos limite e políticas de nova tentativa no mapa de URL e outras configurações de balanceamento de carga para o serviço de back-end.

Como as extensões de tráfego funcionam

Os balanceadores de carga executam as extensões de tráfego por último no caminho de processamento de solicitações e primeiro no caminho de processamento de respostas.

Essas extensões permitem modificar os cabeçalhos e payloads de solicitações e respostas sem afetar a escolha do serviço de back-end. Você também pode usar extensões de tráfego para registros personalizados especificando as informações que quer registrar, o formato e o provedor externo.

Antes de um balanceador de carga chamar uma extensão de tráfego no caminho de solicitação de uma solicitação, ele faz o seguinte:

  • Realiza injeção de falhas
  • Seleciona um serviço de back-end para a solicitação.
  • Aplica políticas do Cloud Armor ao serviço de back-end selecionado.
  • Aplica políticas do IAP ao serviço de back-end selecionado.
  • Aplica políticas de armazenamento em cache do Cloud CDN ao serviço de back-end selecionado no caso de balanceadores de carga de aplicativo externos globais.

Depois que um balanceador de carga chama uma extensão de tráfego no caminho de solicitação de uma solicitação, ele faz o seguinte:

  • Realiza regravações de URL
  • Realiza a manipulação de cabeçalhos de acordo com o mapa de URL e adiciona variáveis de cabeçalho de solicitação personalizadas.
  • Realiza redirecionamentos ou roteamento para o serviço de back-end selecionado ao aplicar tempos limite e políticas de nova tentativa no mapa de URL e nas configurações de balanceamento de carga para o serviço de back-end.
  • Realiza o espelhamento de solicitações

Depois que um balanceador de carga chama uma extensão de tráfego no caminho de resposta de uma solicitação, ele faz o seguinte:

  • Realiza transformações de cabeçalho de resposta e resolve variáveis personalizadas de cabeçalho de resposta.
  • Realiza a geração de registros usando o Cloud Logging
  • Realiza o armazenamento em cache do Cloud CDN no caso de balanceadores de carga de aplicativo externos globais.

Limitações para extensões

  • Uma regra de encaminhamento pode ter apenas um recurso LbEdgeExtension, um recurso LbTrafficExtension e um recurso LbRouteExtension.
  • Para callouts, o serviço de back-end precisa estar no mesmo projeto que a regra de encaminhamento.
  • Não há suporte para referências entre projetos entre extensões e regras de encaminhamento.

A seguir