O Service Extensions permite que os usuários de Google Cloud produtos, como o Cloud Load Balancing e o Media CDN, insiram código personalizado diretamente no caminho de dados. Isso ajuda a personalizar o comportamento desses produtos para atender às necessidades da sua empresa. Esta página oferece uma visão geral de alto nível sobre o Service Extensions.
Tipos de extensões
O caminho de dados em produtos de rede, como o Cloud Load Balancing e o Media CDN, pode ser visualizado como um pipeline de etapas de processamento de dados. O Service Extensions permite inserir lógica personalizada em uma ou mais dessas etapas.
O Service Extensions oferece duas maneiras de inserir lógica personalizada: plug-ins e chamadas.
Plug-ins
Os plug-ins permitem inserir código personalizado em linha no caminho de dados de rede. Crie esses plug-ins usando o WebAssembly (Wasm) e a ABI Proxy-Wasm.
Os plug-ins são executados como módulos Wasm em uma infraestrutura de sandbox gerenciada pelo Google, semelhante a uma infraestrutura sem servidor. Os plug-ins são executados na computação gerenciada pelo Google. Eles têm capacidade restrita e requisitos de execução rigorosos. Eles são executados perto do plano de dados e a otimização de latência é gerenciada. A figura a seguir mostra como os plug-ins funcionam.
Para mais informações sobre plug-ins, consulte Visão geral dos plug-ins.
Chamadas
As chamadas permitem usar o Cloud Load Balancing para fazer chamadas gRPC do Envoy para serviços do Google e serviços gerenciados pelo usuário durante o processamento de dados.
As chamadas são executadas como servidores gRPC de uso geral em VMs de computação gerenciadas pelo usuário, em pods do Google Kubernetes Engine (GKE) no GKE Multi-Cloud ou em ambientes locais. A figura a seguir mostra como as chamadas para serviços funcionam.
As chamadas não têm restrições de execução e podem reutilizar o software atual, conforme necessário. Com as chamadas, você pode aproveitar os benefícios de serviços totalmente gerenciados que também são personalizáveis para atender às necessidades exclusivas de cargas de trabalho específicas. Só é necessário confirmar a escalonabilidade e a disponibilidade do serviço de chamada.
Para mais informações sobre chamadas, consulte Visão geral das chamadas do Cloud Load Balancing.
Extensões do Cloud Load Balancing
O Service Extensions para Cloud Load Balancing permite que os usuários adicionem personalização avançada aos caminhos de processamento de solicitações e respostas de balanceamento de carga para balanceadores de carga de aplicativo compatíveis.
Para mais informações, consulte Visão geral das extensões do Cloud Load Balancing.
Plug-ins
O Service Extensions ajuda você a usar plug-ins pré-publicados para suas necessidades personalizadas, adicionando-os ao caminho de processamento do Cloud Load Balancing.
Use plug-ins com o Cloud Load Balancing nos seguintes cenários de exemplo:
- Tratamento de exceções
- Redirecione os clientes para uma página de erro personalizada em determinadas classes de resposta.
- Geração de registros personalizada
- Registre cabeçalhos definidos pelo usuário ou dados personalizados no Cloud Logging.
- Adição de cabeçalho
- Crie cabeçalhos relevantes para seus aplicativos ou clientes específicos.
- Insira novos cabeçalhos para solicitação e resposta.
- Manipulação de cabeçalho
- Reescreva cabeçalhos de solicitação e resposta ou substitua cabeçalhos do cliente no caminho para o back-end ou ao responder a um cliente.
- Segurança
- Escreva políticas de segurança personalizadas com base em cabeçalhos de solicitação ou resposta do cliente e tome decisões de restrição no seu plug-in.
- Injeção de script
- Reescreva o HTML da origem para integração do Google reCAPTCHA ou tag do Google Analytics.
- Influenciar o Cloud CDN
- Manipule as características da solicitação HTTP para influenciar a dinâmica de armazenamento em cache personalizada e determinar qual conteúdo é disponibilizado pelo cache do Cloud CDN.
- Roteamento
- Reescreva solicitações HTTP para influenciar a seleção de serviço de back-end, permitindo decisões de roteamento mais avançadas na borda.
Chamadas para serviços gerenciados pelo usuário
O Service Extensions permite que balanceadores de carga de aplicativo compatíveis enviem uma chamada do caminho de processamento de dados para serviços de back-end gerenciados pelo usuário.
Use chamadas com o Cloud Load Balancing para o seguinte:
- Quando a quantidade de computação ou armazenamento é arbitrária
- Quando você quer manter o estado
- Quando você quer usar serviços externos, como o BigQuery ou aplicativos de terceiros hospedados em qualquer lugar
As chamadas são altamente flexíveis e oferecem suporte a várias personalizações. Confira alguns exemplos de casos de uso comuns:
- Roteamento e gerenciamento de tráfego personalizados
- Realize redirecionamentos de HTTP ou URL.
- Modifique atributos de solicitação, como cabeçalhos ou URLs, com base na lógica específica do aplicativo para forçar o mapa de URL a escolher um serviço de back-end diferente do originalmente segmentado pela solicitação.
- Adicione, remova ou modifique cabeçalhos ou reescreva URLs com base em uma lógica complexa específica do aplicativo antes de encaminhar o tráfego para o serviço de back-end.
- Implemente a afinidade da sessão ou a persistência personalizada com base nos atributos específicos de uma solicitação.
- Na versão prévia, implemente o encaminhamento dinâmico, que mapeia locatários para endpoints de maneira programática.
- Segurança e geração de registros
- Registre informações personalizadas de payloads ou cabeçalhos personalizados no Logging ou em uma solução de geração de registros personalizada.
- Use ferramentas ou serviços de segurança, incluindo suporte para autenticação e autorização de usuários personalizados.
- Valide cabeçalhos e parâmetros de consulta arbitrários, como IDs de dispositivos.
- Registre solicitações e respostas em soluções de geração de registros de terceiros.
- Implemente a autenticação e autorização de usuários personalizadas.
- Integração de parceiros
- Integre produtos de segurança, como segurança do gateway de API, gerenciamento de bots ou firewall de aplicativos da Web (WAF).
- Autorização
- Enriqueça o processo de tomada de decisão de autorização ou restrinja ainda mais as decisões de autorização dos mecanismos de autorização integrados fornecidos pelo Google.
- Combine decisões de autorização de vários sistemas de autorização.
- Integre perfeitamente os mecanismos de autorização do Google com ecossistemas e infraestruturas de autorização mais amplos, incluindo mecanismos de políticas externas.
Para mais informações, consulte Visão geral das extensões do Cloud Load Balancing e do Cloud CDN.
Chamadas para serviços do Google
O Service Extensions permite que os balanceadores de carga de aplicativo compatíveis enviem uma chamada do caminho de processamento de dados para serviços selecionados do Google.
É possível configurar uma extensão para chamar o Model Armor e aplicar políticas de segurança de maneira uniforme no tráfego de inferência em balanceadores de carga de aplicativo, incluindo o GKE Inference Gateway.
Para mais informações, consulte Integração com serviços do Google.
Extensões do GKE
O Gateway do Google Kubernetes Engine (GKE) oferece suporte ao uso de extensões para adicionar código personalizado ao caminho de processamento de balanceamento de carga. É possível usar essas extensões para personalizar o roteamento, modificar payloads de solicitação ou resposta e integrar com serviços externos.
Para mais informações, consulte Personalizar o roteamento de tráfego do Gateway do GKE usando o Service Extensions.
Extensões do Media CDN
O Media CDN oferece muitos recursos principais integrados para atender aos casos de uso mais comuns de redes de fornecimento de conteúdo (CDNs). O Service Extensions ajuda a atender a vários requisitos que estão além dessas capacidades.
Para mais informações, consulte Visão geral das extensões do Media CDN.
Plug-ins para o Media CDN
O Service Extensions ajuda você a usar plug-ins pré-publicados para suas necessidades personalizadas, adicionando-os ao caminho de processamento do Media CDN.
Confira alguns casos de uso principais em que é possível usar plug-ins com o Media CDN:
- Personalização
- Reescreva URLs de solicitação.
- Normalize os valores de cabeçalho para melhorar o desempenho do cache.
- Segurança e geração de registros
- Durante eventos ao vivo, bloqueie usuários com tokens pirateados.
- Ofereça suporte para autenticação e autorização de usuários personalizadas.
- Traduza e implemente a assinatura de URL personalizada.
- Personalize chaves de cache, cabeçalhos específicos do aplicativo ou tipos de dispositivos.
- Registre variáveis personalizadas no Cloud Logging.
- Segmentação e monetização
- Melhore as conversões com testes A/B.
- Implemente a segmentação de anúncios personalizada.
- Ofereça modelos de uso de teste sem custo extra.
- Integração de parceiros
- Implemente a marca-d'água de vídeo.
- Otimize vídeos e imagens.