Infraestrutura para um aplicativo de IA generativa com capacidade de RAG usando a Vertex AI e a Pesquisa de vetor

Neste documento, apresentamos uma arquitetura de referência que pode ser usada para projetar a infraestrutura de um aplicativo de IA generativa com geração aumentada de recuperação (RAG, na sigla em inglês) usando a Pesquisa Vetorial. A Pesquisa Vetorial é um serviço Google Cloud totalmente gerenciado que oferece uma infraestrutura de exibição otimizada para correspondência de similaridade vetorial em muito grande escala.

O público-alvo deste documento inclui arquitetos, desenvolvedores e administradores de aplicativos de IA generativa. Este documento considera uma compreensão básica dos conceitos de IA, machine learning (ML) e modelo de linguagem grande (LLM). Neste documento, não fornecemos orientações sobre como projetar e desenvolver um aplicativo de IA generativa.

Arquitetura

O diagrama a seguir mostra uma visualização de alto nível da arquitetura que este documento apresenta:

Uma visão de alto nível dos fluxos de ingestão e disponibilização de dados na arquitetura.

A arquitetura no diagrama anterior tem dois subsistemas: ingestão e disponibilização de dados.

  • O subsistema de ingestão de dados ingere dados que são enviados de fontes externas. O subsistema prepara os dados para o RAG e interage com a Vertex AI para gerar embeddings para os dados ingeridos e criar e atualizar o índice de vetores.
  • O subsistema de veiculação contém os serviços de front-end e back-end do aplicativo de IA generativa.
    • O serviço de front-end lida com o fluxo de consulta/resposta com os usuários do aplicativo e encaminha as consultas para o serviço de back-end.
    • O serviço de back-end usa a Vertex AI para gerar embeddings de consultas, realizar pesquisas de similaridade vetorial e aplicar filtros de segurança da IA responsável e instruções do sistema.

O diagrama a seguir mostra uma visão detalhada da arquitetura:

Uma visão detalhada dos fluxos de ingestão e disponibilização de dados na arquitetura.

As seções a seguir descrevem o fluxo de dados dentro de cada subsistema do diagrama de arquitetura anterior.

Subsistema de ingestão de dados

O subsistema de ingestão de dados ingere dados de fontes externas e os prepara para a RAG. Estas são as etapas no fluxo de ingestão e preparação de dados:

  1. O upload de dados é feito de fontes externas para um bucket do Cloud Storage. As fontes externas podem ser aplicativos, bancos de dados ou serviços de streaming.
  2. Quando os dados são enviados para o Cloud Storage, uma mensagem é publicada em um tópico do Pub/Sub.
  3. Quando o tópico do Pub/Sub recebe uma mensagem, ele aciona uma função do Cloud Run.
  4. A função do Cloud Run analisa os dados brutos, formata-os conforme necessário e os divide em blocos.
  5. A função usa a API Vertex AI Embeddings para criar embeddings dos blocos usando um modelo de embedding que você especificar. A Vertex AI oferece suporte a modelos de embedding de texto e multimodais.
  6. Em seguida, a função cria um índice de pesquisa de vetor dos embeddings e, em seguida, implanta o índice.

Quando novos dados são ingeridos, as etapas anteriores são executadas para os novos dados, e o índice é atualizado usando atualizações de streaming.

Quando o subsistema de exibição processa solicitações de usuários, ele usa o índice da Pesquisa Vetorial para a pesquisa de similaridade vetorial. A próxima seção descreve o fluxo de disponibilização.

Subsistema de veiculação

O subsistema de disponibilização processa o fluxo de consulta-resposta entre o aplicativo de IA generativa e os usuários. Estas são as etapas no fluxo de exibição:

  1. Um usuário envia uma consulta em linguagem natural para um serviço do Cloud Run que fornece uma interface de front-end (como um bot de bate-papo) para o aplicativo de IA generativa.
  2. O serviço de front-end encaminha a consulta do usuário para um serviço de back-end do Cloud Run.
  3. Para processar a consulta, o serviço de back-end faz o seguinte:
    1. Converte a consulta em embeddings usando o mesmo modelo e parâmetros de embedding que o subsistema de ingestão de dados usa para gerar embeddings dos dados ingeridos.
    2. Recupera dados de embasamento relevantes realizando uma pesquisa de similaridade vetorial para os embeddings de consulta no índice da Pesquisa Vetorial.
    3. Cria um comando aprimorado combinando a consulta original com os dados empíricos.
    4. Envia o comando aumentado para um LLM implantado na Vertex AI.
  4. O LLM gera uma resposta.
  5. Para cada comando, a Vertex AI aplica os filtros de segurança de IA responsável configurados e envia a resposta filtrada e as pontuações de segurança de IA para o serviço de back-end do Cloud Run.
  6. O aplicativo envia a resposta ao usuário por meio do serviço de front-end do Cloud Run.

É possível armazenar e visualizar registros da atividade de consulta-resposta no Cloud Logging e configurar o monitoramento com base em registros usando o Cloud Monitoring. Também é possível carregar as respostas geradas no BigQuery para análise off-line.

O otimizador de comandos da Vertex AI ajuda a melhorar os comandos em grande escala, tanto durante a criação do comando inicial quanto para o ajuste contínuo. O otimizador de comandos avalia a resposta do modelo para um conjunto de exemplos de comandos fornecidos pelos engenheiros de ML. A saída da avaliação inclui as respostas do modelo aos comandos de amostra, as pontuações das métricas especificadas pelos engenheiros de ML e um conjunto de instruções otimizadas do sistema que podem ser usadas.

Produtos usados

Esta arquitetura de referência usa estes Google Cloud produtos:

  • Vertex AI: uma plataforma de ML que permite treinar e implantar modelos de ML e aplicativos de IA, além de personalizar LLMs para uso em aplicativos com tecnologia de IA.
  • Pesquisa de vetores: um serviço de correspondência por similaridade vetorial que permite armazenar, indexar e pesquisar dados semanticamente semelhantes ou relacionados.
  • Cloud Run: uma plataforma de computação sem servidor que permite executar contêineres diretamente na infraestrutura escalonável do Google.
  • Funções do Cloud Run: um ambiente de execução sem servidor para criar e conectar serviços em nuvem.
  • Cloud Storage: um armazenamento de objetos de baixo custo e sem limite para diversos tipos de dados. Os dados podem ser acessados de dentro e fora de Google Cloude são replicados em vários locais para redundância.
  • Pub/Sub: um serviço de mensagens assíncrono e escalonável que separa os serviços que produzem mensagens daqueles que processam essas mensagens.
  • Cloud Logging: um sistema de gerenciamento de registros em tempo real com armazenamento, pesquisa, análise e alertas.
  • Cloud Monitoring: um serviço que fornece visibilidade do desempenho, da disponibilidade e da integridade dos aplicativos e da infraestrutura.
  • BigQuery: um data warehouse corporativo que ajuda a gerenciar e analisar seus dados com recursos integrados, como análise geoespacial de machine learning e Business Intelligence.

Casos de uso

A RAG é uma técnica eficaz para melhorar a qualidade da saída gerada por um LLM. Nesta seção, apresentamos exemplos de casos de uso em que é possível usar aplicativos de IA generativa com capacidade de RAG.

Recomendações de produtos personalizada

Um site de compras on-line pode usar um chatbot com tecnologia de LLM para ajudar os clientes a encontrar produtos ou receber ajuda relacionada a compras. As perguntas de um usuário podem ser aumentadas usando dados históricos sobre os padrões de interação no site e o comportamento de compra do usuário. Os dados podem incluir avaliações e feedback de usuários armazenados em um repositório de dados não estruturados ou métricas relacionadas à pesquisa que são armazenadas em um data warehouse de análise da Web. A pergunta aumentada pode ser processada pelo LLM para gerar respostas personalizadas que o usuário pode achar mais relevantes e convincentes.

Sistemas de assistência clínica

Médicos em hospitais precisam analisar e diagnosticar rapidamente a condição de saúde de um paciente para tomar decisões sobre tratamentos e medicamentos apropriados. Um aplicativo de IA generativa que usa um LLM médico, como o Med-PaLM, pode ser usado para ajudar médicos no processo de diagnóstico clínico. As respostas que o aplicativo gera podem ser fundamentadas por históricos dos pacientes contextualizando os comandos dos médicos com dados do banco de dados dos históricos de saúde eletrônicos (EHR, na sigla em inglês) do hospital ou de uma base de conhecimento externa, como o PubMed:

A pesquisa jurídica com tecnologia de IA generativa permite que advogados consultem rapidamente grandes volumes de estatutos e jurisprudência para identificar precedentes legais relevantes ou resumir conceitos jurídicos complexos. O resultado dessa pesquisa pode ser aprimorado aumentando os comandos de um advogado com dados extraídos das comunicações legais anteriores, dos registros de casos internos e do corpus reservado de contratos do escritório de advocacia. Essa abordagem de desenvolvimento garante que as respostas geradas sejam relevantes para o domínio jurídico em que o advogado é especializado.

Alternativas de design

Esta seção apresenta abordagens de design alternativas que podem ser consideradas para seu aplicativo de IA generativa compatível com RAG em Google Cloud.

Alternativas para a infraestrutura de IA

Se você quiser aproveitar os recursos de armazenamento vetorial de um banco de dados Google Cloud totalmente gerenciado, como AlloyDB para PostgreSQL ou Cloud SQL, para seu aplicativo RAG, consulte Infraestrutura para um aplicativo de IA generativa com recurso de RAG usando Vertex AI e AlloyDB para PostgreSQL.

Se você quiser criar e implantar rapidamente aplicativos de IA generativa com recursos de RAG usando ferramentas e modelos de código aberto Ray, Hugging Face e LangChain, consulte Infraestrutura para um aplicativo de IA generativa compatível com RAG usando o Google Kubernetes Engine (GKE).

Opções de hospedagem de aplicativos

Na arquitetura mostrada neste documento, o Cloud Run é o host do aplicativo de IA generativa e do processamento de dados. O Cloud Run é uma plataforma de aplicativos totalmente gerenciada e focada no desenvolvedor. Se você precisar de maior flexibilidade de configuração e controle sobre a infraestrutura de computação, implante o aplicativo nos clusters do GKE ou nas VMs do Compute Engine.

A decisão de usar o Cloud Run, o GKE ou o Compute Engine como host do aplicativo envolve compensações entre flexibilidade de configuração e esforço de gerenciamento. Com a opção sem servidor do Cloud Run, você implanta seu aplicativo em um ambiente pré-configurado que requer um esforço mínimo de gerenciamento. Com as VMs do Compute Engine e os contêineres do GKE, você é responsável por gerenciar os recursos de computação subjacentes, mas tem maior flexibilidade e controle de configuração. Para mais informações sobre como escolher um serviço de hospedagem de aplicativo apropriado, consulte os seguintes documentos:

Outras opções

Para informações sobre outras opções de infraestrutura, modelos com suporte e técnicas de embasamento que podem ser usadas para aplicativos de IA generativa em Google Cloud, consulte Escolher modelos e infraestrutura para seu aplicativo de IA generativa.

Considerações sobre o design

Esta seção descreve fatores de design, práticas recomendadas e recomendações de design que você precisa considerar ao usar essa arquitetura de referência para desenvolver uma topologia que atenda aos seus requisitos específicos de segurança, confiabilidade, custo e desempenho.

As orientações desta seção não são completas. Dependendo dos requisitos específicos do aplicativo e dos produtos e recursos de Google Cloud e terceiros que você usar, talvez haja outros fatores de design e compensações a serem considerados.

Segurança, compliance e privacidade

Nesta seção, descrevemos considerações e recomendações de design para criar uma topologia no Google Cloud que atenda aos requisitos de segurança e conformidade das cargas de trabalho.

Produto Considerações e recomendações de design
Vertex AI

Controles de segurança: a Vertex AI oferece suporte a Google Cloud controles de segurança que podem ser usados para atender aos seus requisitos de residência, criptografia de dados, segurança de rede e transparência no acesso. Para mais informações, consulte Controles de segurança para Vertex AI e Controles de segurança para IA generativa.

Acesso ao modelo: é possível configurar políticas da organização para limitar o tipo e as versões dos LLMs que podem ser usados em um Google Cloud projeto. Para mais informações, consulte Controlar o acesso a modelos do Model Garden.

Responsabilidade compartilhada: a Vertex AI protege a infraestrutura subjacente e fornece ferramentas e controles de segurança para ajudar você a proteger dados, códigos e modelos. Para mais informações, consulte Responsabilidade compartilhada da Vertex AI.

Proteção de dados: use a API Cloud Data Loss Prevention para descobrir e desidentificar dados confidenciais, como informações de identificação pessoal (PII), em comandos, respostas e dados de registro. Para mais informações, assista este vídeo: Como proteger dados sensíveis em apps de IA.

Cloud Run

Segurança de entrada (serviço de front-end): para controlar o acesso externo ao aplicativo, desative o URL run.app padrão do serviço de front-end do Cloud Run e configure um balanceador de carga de aplicativo externo regional. Além do tráfego de entrada do balanceamento de carga para o aplicativo, o balanceador de carga processa o gerenciamento de certificados SSL. Para maior proteção, use as políticas de segurança do Google Cloud Armor para fornecer filtragem de solicitações, proteção contra DDoS e limitação de taxa para o serviço.

Segurança de entrada (serviço de back-end): o serviço do Cloud Run para o back-end do aplicativo nessa arquitetura não precisa de acesso da Internet. Para garantir que apenas clientes internos possam acessar o serviço, defina o parâmetro ingress como internal. Para mais informações, consulte Restringir a entrada de rede no Cloud Run.

Criptografia de dados: por padrão, o Cloud Run criptografa dados usando um Google-owned and Google-managed encryption key. Para proteger os contêineres usando uma chave controlada por você, use chaves de criptografia gerenciadas pelo cliente (CMEK). Para mais informações, consulte Como usar chaves de criptografia gerenciadas pelo cliente.

Segurança da imagem do contêiner: para garantir que apenas imagens de contêiner autorizadas sejam implantadas nos serviços do Cloud Run, use a autorização binária.

Residência de dados: o Cloud Run ajuda você a atender aos requisitos de residência de dados. As instâncias de contêiner do Cloud Run são executadas na região selecionada.

Para mais orientações sobre segurança de contêineres, consulte Dicas gerais de desenvolvimento do Cloud Run.

Cloud Storage

Criptografia de dados: por padrão, os dados armazenados no Cloud Storage são criptografados usando Google-owned and Google-managed encryption keys. Se necessário, é possível usar CMEKs ou suas próprias chaves gerenciadas por um método de gerenciamento externo, como chaves de criptografia fornecidas pelo cliente (CSEKs). Para mais informações, consulte Opções de criptografia de dados.

Controle de acesso: o Cloud Storage é compatível com dois métodos de controle de acesso do usuário a buckets e objetos: Identity and Access Management (IAM) e listas de controle de acesso (ACLs). Na maioria dos casos, recomendamos usar o IAM, que permite conceder permissões nos níveis do bucket e do projeto. Para mais informações, consulte Visão geral do controle de acesso.

Proteção de dados: os dados carregados no subsistema de ingestão de dados pelo Cloud Storage podem incluir dados confidenciais. Para proteger esses dados, use a Proteção de Dados Sensíveis para descobrir, classificar e desidentificar os dados. Para mais informações, consulte Como usar a proteção de dados sensíveis com o Cloud Storage.

Controle de rede: para reduzir o risco de exfiltração de dados do Cloud Storage, crie um perímetro de serviço usando o VPC Service Controls.

Residência dos dados: o Cloud Storage ajuda você a atender aos requisitos de residência de dados. Os dados são armazenados ou replicados nas regiões que você especificar.

Pub/Sub

Criptografia de dados: por padrão, o Pub/Sub criptografa todas as mensagens, tanto em repouso quanto em trânsito, usando Google-owned and Google-managed encryption keys. O Pub/Sub pode usar CMEKs para criptografia de mensagens na camada do aplicativo. Saiba mais em Configurar a criptografia de mensagens.

Residência dos dados: se você tiver requisitos de residência de dados, configure políticas de armazenamento de mensagens para garantir que essas informações sejam armazenadas em locais específicos.

Cloud Logging

Auditoria de atividade administrativa: o registro de atividade administrativa é ativado por padrão para todos os Google Cloud serviços usados nesta arquitetura de referência. É possível acessar os registros pelo Cloud Logging e usá-los para monitorar chamadas de API ou outras ações que modificam a configuração ou os metadados de recursos Google Cloud .

Auditoria de acesso a dados: o registro de eventos de acesso a dados é ativado por padrão no BigQuery. Para os outros serviços usados nessa arquitetura, é possível ativar os registros de auditoria de acesso a dados. É possível usar esses registros para monitorar o seguinte:

  • Chamadas de API que leem a configuração ou os metadados dos recursos.
  • Solicitações do usuário para criar, modificar ou ler dados de recursos fornecidos pelo usuário.

Segurança dos dados de registro: o Google não acessa nem usa os dados no Cloud Logging.

Residência dos dados: para ajudar a atender aos requisitos de residência de dados, configure o Cloud Logging para armazenar dados de registro na região especificada. Para mais informações, consulte Regionalizar os registros.

Todos os produtos da arquitetura

Mitigar o risco de exfiltração de dados: para reduzir o risco de exfiltração de dados, crie um perímetro do VPC Service Controls ao redor da infraestrutura. O VPC Service Controls é compatível com todos os serviços usados nesta arquitetura de referência.

Otimização pós-implantação: depois de implantar o aplicativo no Google Cloud, use o serviço Active Assist para receber recomendações que podem ajudar a otimizar ainda mais a segurança dos seus recursos de nuvem. Revise as recomendações e aplique-as conforme apropriado para seu ambiente. Para mais informações, consulte Encontrar recomendações no Hub de recomendações.

Controle de acesso: siga o princípio de privilégio mínimo para todos os serviços de nuvem.

Para orientações gerais sobre segurança para implantações de IA e ML em Google Cloud, consulte os seguintes recursos:

Confiabilidade

Esta seção descreve considerações de design e recomendações para criar e operar infraestruturas confiáveis para sua implantação em Google Cloud.

Produto Considerações e recomendações de design
Vector Search

Escalonamento de consulta: para garantir que o índice da Pesquisa Vetorial possa lidar com aumentos na carga de consulta, configure o escalonamento automático para o endpoint do índice. Quando a carga de consulta aumenta, o número de nós aumenta automaticamente até o máximo que você especificar. Para mais informações, consulte Ativar escalonamento automático.

Cloud Run

Robustez para interrupções de infraestrutura: o Cloud Run é um serviço regional. Os dados são armazenados de forma síncrona em várias zonas dentro de uma região. É feito o balanceamento de carga automático no tráfego entre as zonas. Se ocorrer uma interrupção da zona, o Cloud Run continuará em execução e os dados não serão perdidos. Se ocorrer uma interrupção na região, o Cloud Run vai parar de ser executado até que o Google resolva a interrupção.

Cloud Storage Disponibilidade de dados: é possível criar buckets do Cloud Storage em um destes três tipos de local: regional, birregional ou multirregional. Os dados armazenados em buckets regionais são replicados de maneira síncrona em várias zonas de uma região. Para maior disponibilidade, use buckets birregionais ou multirregionais, em que os dados são replicados de forma assíncrona entre regiões.
Pub/Sub

Controle de taxa: para evitar erros durante períodos de picos temporários no tráfego de mensagens, limite a taxa de solicitações de publicação configurando o controle de fluxo nas configurações do editor.

Tratamento de falhas: para lidar com tentativas de publicação com falha, ajuste as variáveis da solicitação de repetição conforme necessário. Para mais informações, consulte Repetir solicitações.

BigQuery Robustez em relação a interrupções de infraestrutura: os dados carregados no BigQuery são armazenados de maneira síncrona em duas zonas na região especificada. Essa redundância ajuda a garantir que os dados não sejam perdidos quando ocorrer uma interrupção do serviço de zona. Para mais informações sobre recursos de confiabilidade no BigQuery, consulte Noções básicas sobre confiabilidade.
Todos os produtos da arquitetura Otimização pós-implantação: depois de implantar o aplicativo no Google Cloud, use o serviço Active Assist para receber recomendações e otimizar ainda mais a confiabilidade dos seus recursos de nuvem. Revise as recomendações e aplique-as conforme apropriado para seu ambiente. Para mais informações, consulte Encontrar recomendações no Hub de recomendações.

Para ver princípios e recomendações de confiabilidade específicos para cargas de trabalho de IA e ML, consulte Perspectiva de IA e ML: confiabilidade no framework bem-arquitetado.

Otimização de custos

Nesta seção, fornecemos orientações para otimizar o custo de configuração e operação de uma Google Cloud topologia que você cria usando esta arquitetura de referência.

Produto Considerações e recomendações de design
Vector Search

O faturamento da Pesquisa Vetorial depende do tamanho do seu índice, das consultas por segundo (QPS) e do número e tipo de máquina dos nós que você usa para o endpoint do índice. Para cargas de trabalho com QPS elevado, o agrupamento de consultas em lote pode ajudar a reduzir os custos. Para saber como estimar o custo da Pesquisa Vetorial, consulte Exemplos de preços da Pesquisa Vetorial.

Para melhorar a utilização dos nós de computação em que o índice da Pesquisa Vetorial é implantado, configure o escalonamento automático para o endpoint do índice. Quando a demanda é baixa, o número de nós é reduzido automaticamente para o mínimo especificado. Para mais informações, consulte Ativar escalonamento automático.

Cloud Run

Ao criar serviços do Cloud Run, você especifica a quantidade de memória e CPU a serem alocadas para a instância do contêiner. Para controlar os custos, comece com as alocações de CPU e memória padrão. Para melhorar o desempenho, é possível aumentar a alocação configurando os limites de CPU e de memória. Para mais informações, consulte a documentação a seguir:

Se for possível prever os requisitos de CPU e memória dos serviços do Cloud Run, você vai economizar com descontos por compromisso de uso. Para mais informações, consulte Descontos por uso contínuo do Cloud Run.

Cloud Storage Para o bucket do Cloud Storage usado para carregar dados no subsistema de ingestão de dados, escolha uma classe de armazenamento adequada. Ao escolher a classe de armazenamento, considere os requisitos de retenção de dados e frequência de acesso das cargas de trabalho. Por exemplo, para controlar os custos de armazenamento, escolha a classe Standard e use o Gerenciamento do ciclo de vida de objetos. Isso ativa o downgrade automático de objetos para uma classe de armazenamento de custo menor ou a exclusão de objetos com base nas condições definidas.
Cloud Logging

Para controlar o custo de armazenamento de registros, faça isto:

BigQuery Com o BigQuery, é possível estimar o custo das consultas antes de executá-las. Para otimizar os custos de consulta, é preciso otimizar o armazenamento e a computação em consultas. Para mais informações, consulte Estimar e controlar custos.
Todos os produtos da arquitetura Depois de implantar o aplicativo no Google Cloud, use o serviço Active Assist para receber recomendações e otimizar ainda mais o custo dos recursos de nuvem. Revise as recomendações e aplique-as conforme apropriado para seu ambiente. Para mais informações, consulte Encontrar recomendações no Hub de recomendações.

Para estimar o custo dos Google Cloud recursos, use a Google Cloud Calculadora de preços.

Para princípios e recomendações de otimização de custos específicos para cargas de trabalho de IA e ML, consulte Perspectiva de IA e ML: otimização de custos no framework bem arquitetado.

Otimização de desempenho

Esta seção descreve considerações e recomendações de design para projetar uma topologia no Google Cloud que atenda aos requisitos de desempenho das cargas de trabalho.

Produto Considerações e recomendações de design
Vector Search

Ao criar o índice, defina o tamanho do fragmento, o tipo de medida de distância e o número de embeddings para cada nó de folha com base nos requisitos de desempenho. Por exemplo, se o aplicativo for extremamente sensível à variabilidade de latência, recomendamos um tamanho de fragmento grande. Para mais informações, consulte Parâmetros de configuração que afetam o desempenho.

Ao configurar a capacidade de computação dos nós em que o índice da Pesquisa Vetorial é implantado, considere seus requisitos de desempenho. Escolha um tipo de máquina apropriado e defina o número máximo de nós com base na carga de consulta esperada. Para mais informações, consulte Configurações de implantação que afetam o desempenho.

Configure os parâmetros de consulta para o índice da Vertex Search com base nos seus requisitos de desempenho, disponibilidade e custo da consulta. Por exemplo, o parâmetro approximateNeighborsCount especifica o número de vizinhos que precisam ser recuperados antes que a reordenação exata seja realizada. A redução do valor desse parâmetro ajuda a reduzir a latência e o custo. Para mais informações, acesse Configurações de tempo de consulta que afetam o desempenho.

Um índice atualizado ajuda a melhorar a precisão das respostas geradas. Você pode atualizar seu índice da Pesquisa Vetorial usando atualizações em lote ou por streaming. Com as atualizações de streaming, é possível realizar consultas quase em tempo real nos dados atualizados. Para mais informações, consulte Atualizar e recriar um índice ativo.

Cloud Run

Por padrão, cada instância de contêiner do Cloud Run recebe uma CPU e 512 MiB de memória. Dependendo dos requisitos de desempenho, é possível configurar os limites de CPU e de memória. Para mais informações, consulte a seguinte documentação:

Para garantir a latência ideal mesmo após um período sem tráfego, configure um número mínimo de instâncias. Quando essas instâncias estão inativas, a CPU e a memória alocadas para elas são faturadas a um preço menor.

Para mais orientações sobre otimização de desempenho, consulte Dicas gerais de desenvolvimento do Cloud Run.

Cloud Storage Para fazer o upload de arquivos grandes, use um método chamado de uploads compostos paralelos. Com essa estratégia, o arquivo grande é dividido em partes. Os blocos são enviados ao Cloud Storage em paralelo e, em seguida, os dados são recompostos na nuvem. Quando a largura de banda da rede e a velocidade do disco não são fatores limitantes, os uploads compostos paralelos podem ser mais rápidos do que as operações normais de upload. No entanto, essa estratégia tem algumas limitações e implicações de custo. Para mais informações, consulte Uploads compostos paralelos.
BigQuery

O BigQuery fornece um gráfico de execução de consulta que pode ser usado para analisar o desempenho da consulta e receber insights de desempenho para problemas como contenção de slots e cota de embaralhamento insuficiente. Para mais informações, acesse Receber insights de desempenho da consulta.

Depois de resolver os problemas identificados com os insights de desempenho de consulta, otimizar ainda mais as consultas usando técnicas como a redução do volume de dados de entrada e saída. Para mais informações, consulte Otimizar a computação em consultas.

Todos os produtos da arquitetura Depois de implantar o aplicativo no Google Cloud, use o serviço Active Assist para receber recomendações e otimizar ainda mais o desempenho dos seus recursos de nuvem. Revise as recomendações e aplique-as conforme apropriado para seu ambiente. Para mais informações, consulte Encontrar recomendações no Hub de recomendações.

Para ver princípios e recomendações de otimização de desempenho específicos para cargas de trabalho de IA e ML, consulte Perspectiva de IA e ML: otimização de desempenho no framework bem arquitetado.

Implantação

Para implantar uma topologia baseada nessa arquitetura de referência, faça o download e use a configuração de amostra do Terraform disponível em um repositório no GitHub (em inglês). Siga as instruções no README no repositório. O exemplo de código não se destina a casos de uso de produção.

A seguir

Colaboradores

Autor: Kumar Dhanagopal | Desenvolvedor de soluções de vários produtos

Outros colaboradores:

  • Assaf Namer | Arquiteto principal de segurança de nuvem
  • Deepak Michael | Engenheiro de clientes especialista em rede
  • Divam Anand, líder de operações e estratégia de produtos
  • Eran Lewis, gerente sênior de produtos
  • Jerome Simms | Diretor, gerenciamento de produtos
  • Katie McLaughlin | Engenheiro sênior de relações com desenvolvedores
  • Mark Schlagenhauf | Redator técnico, Rede
  • Megan O'Keefe | Diretor de concorrência do setor, equipe de avaliações do Cloud Platform
  • Nicholas McNamara, diretor de estratégia de produto e comercialização
  • Preston Holmes, gerente de produtos externos: aceleração de apps
  • Rob Edwards | Líder da prática de tecnologia, DevOps
  • Victor Moreno | Gerente de produtos, Cloud Networking
  • Wietse Venema | Engenheiro de relações com desenvolvedores