Arquitete um aplicativo de vários níveis com o Gemini para assistência do Google Cloud

Neste tutorial, mostramos como usar o Gemini para Google Cloud, um colaborador com tecnologia de IA no Google Cloud, para arquitetar um Web de vários níveis aplicativos usando serviços totalmente gerenciados sempre que possível.

Objetivos

  • Explore vários serviços do Google que você pode usar para veicular tráfego pela Internet pública.
  • Conheça os vários Serviços do Google que você pode usar para armazenar dados em cache recuperação.
  • Conheça os vários Serviços do Google que podem ser usados para manter dados com estado.
  • Arquitetar a interoperabilidade de vários serviços do Google.

Produtos do Google Cloud usados

  • Cloud Run. O Cloud Run é uma plataforma de computação gerenciada que permite executar contêineres diretamente na infraestrutura do Google Cloud. Você pode implantar código escrito em qualquer linguagem de programação no o Cloud Run, se for possível criar uma imagem de contêiner com base nele.
  • Cloud Memorystore: O Cloud Memorystore é um serviço gerenciado serviço de repositório de dados na memória para Redis e Memcached. Criar aplicativo e caches que oferecem acesso a dados em menos de um milissegundo.
  • Cloud SQL: O Cloud SQL é um serviço que oferece serviços totalmente relacionais na nuvem. Ele inclui MySQL, PostgreSQL e SQL Mecanismos de banco de dados do servidor.

Antes de começar

  1. Verifique se o Gemini está configurado para sua conta de usuário e seu projeto do Google Cloud.

Conheça a exibição na Web no Google Cloud

No exemplo a seguir, considere que você é arquiteto e quer usar Gemini para ajudar a tomar decisões na jornada de ouro de toda a organização desenvolvedores que querem criar rapidamente um app da Web no Google Cloud. Seu objetivo é usar O Gemini ajuda a entender as opções à sua disposição, e a interoperabilidade.

No console do Google Cloud, você pode conversar com o Gemini para ajudar. Usando o painel Gemini, você insere comandos, que são perguntas ou declarações que descrevem a ajuda que você quer, e o Gemini retorna de resposta.

Comece pedindo ao Gemini para tomar uma decisão sobre o nível de computação onde a veiculação da Web será executada. Siga estas etapas:

  1. Na barra de ferramentas do console do Google Cloud, clique em Abrir o Gemini.

  2. No painel Gemini, insira o comando abaixo com base em seus requisitos e preferências e, em seguida, clique em enviar:

    I am designing a multi-tier web app in Google Cloud. First, I would
    like help on deciding what to use for the compute tier. What are my
    options for running an app to serve traffic over the public internet?
    I would like to prioritize fully-managed services.
    

    A resposta do Gemini vai ser semelhante a esta:

    Há algumas opções para executar um aplicativo para exibir o tráfego durante Internet pública no Google Cloud. É possível usar o Cloud Run, App Engine ou Compute Engine.
    O Cloud Run é um ambiente plataforma gerenciada e sem servidor que permite executar contêineres sem estado podem ser invocados usando solicitações HTTP. O App Engine é uma plataforma totalmente gerenciada que fornece um ambiente de programação para desenvolver e executar aplicativos conteinerizados. O Compute Engine é um serviço de máquina virtual (VM) que permite a criação e o gerenciamento de máquinas virtuais.
    Para decidir qual é a melhor opção você precisa considerar os seguintes fatores:
    O tamanho e complexidade do seu app
    A quantidade de tráfego que você espera receber
    O nível de controle que você precisa sobre seu app
    Custo
    Se você tem um aplicativo pequeno e simples que espera receber uma pequena quantidade de tráfego, o Cloud Run é uma boa opção. Se você tiver um modelo um app complexo que você espera receber um grande volume de tráfego, O App Engine ou o Compute Engine podem ser uma opção melhor. Se você precisar de muito de controle sobre seu aplicativo, o Compute Engine é uma boa opção. Se você estiverem dentro do orçamento, o Cloud Run é uma boa opção.

  3. Considerando que você está projetando o caminho mais rápido para executar apps da Web menores, na organização, a descrição do Cloud Run feita pelo Gemini atender melhor às suas necessidades. Mas, primeiro, você deve confirmar características da plataforma. Digite o comando a seguir e clique em "Enviar":

    Okay, I think I will move forward with Cloud Run. What metric does
    Cloud Run use to perform autoscaling?
    

    A resposta do Gemini vai ser semelhante a esta:

    O Cloud Run usa o número de solicitações ou eventos recebidos para para realizar o escalonamento automático. Quando uma revisão não recebe tráfego, por padrão, ela é dimensionada para zero instância. Encontre mais informações para sua pergunta aqui: Sobre o escalonamento automático de instâncias.

  4. Com o escalonamento automático do Cloud Run baseado nas solicitações recebidas, agora você quer para entender como o tráfego entra nos aplicativos que ele hospeda. Digite o seguinte comando:

    How is a Cloud Run application exposed to users over the internet?
    

    A resposta do Gemini vai ser semelhante a esta:

    O Cloud Run aceita o tráfego de entrada proveniente dos origens:
    Internet pública: as solicitações são roteadas diretamente da Internet pública origens aos serviços do Cloud Run com a opção de roteamento usando um balanceador de carga HTTP(S) externo.
    APIs do Google e serviços: as solicitações de APIs e serviços do Google são encaminhadas para o Serviços do Cloud Run sem a necessidade de uma carga HTTP(S) externa de carga.Redes VPC
    : as solicitações de redes VPC são roteadas para sua Serviços do Cloud Run por um conector VPC.
    Você pode controlar como o serviço do Cloud Run é exposto aos usuários usando o configurações de entrada.

  5. Embora um balanceador de carga público externo seja adequado para essa classe de aplicativos, você precisa da ajuda do Gemini para entender se a plataforma pode expor esse aplicativo apenas a usuários autenticados com os permissões. Insira o seguinte comando:

    Is there an easy mechanism in Cloud Run that allows only
    authenticated users to access an application?
    

    A resposta do Gemini vai ser semelhante a esta:

    Sim, existe um mecanismo para garantir que apenas usuários autenticados acessar um aplicativo do Cloud Run. Você pode fazer isso especificando o a opção no-allow-unauthenticated ao implantar um serviço. Isso fará com que que o serviço rejeite solicitações não autenticadas com um erro HTTP 403 Forbidden erro. Encontre mais informações para sua pergunta aqui: Permissão de acesso público (não autenticado).

  6. Por fim, para configurar isso para desenvolvedores da sua organização, é não escrever configurações relacionadas à infraestrutura, como como Dockerfiles.

    We have standardized on using Django as a web framework. Can I deploy
    a Python app to Cloud Run directly from source code? Or do we need to
    implement a way to containerize this ourselves?
    

    A resposta do Gemini vai ser semelhante a esta:

    Sim, é possível implantar um app Python no Cloud Run diretamente de o código-fonte. É possível usar o buildpack do Python do Cloud Run para criar e implantar seu app Python. Encontre mais informações para sua pergunta aqui: Implantar a partir do código-fonte.

Conhecer o armazenamento em cache no Google Cloud

Agora você quer prosseguir com a escolha de um serviço para o próximo nível: armazenamento em cache. Um uma necessidade comum dessa camada por parte da sua equipe leva você a pedir para o Gemini ajudar você entende as ofertas do Google Cloud nessa área. Pegue o seguinte etapas para pedir ajuda ao Gemini:

  1. Na barra de ferramentas do console do Google Cloud, clique em Abrir o Gemini.

  2. Digite o comando a seguir e clique em "Enviar":

    Okay! Thank you. Now let's move on to the caching tier. How can I
    introduce a caching layer to my web app? I would like to prioritize
    fully-managed services.
    

    A resposta do Gemini vai ser semelhante a esta:

    Há algumas maneiras de introduzir uma camada de armazenamento em cache no seu app da Web. Uma é usar um serviço totalmente gerenciado, como o Cloud Memorystore. O Cloud Memorystore é um serviço de armazenamento de dados na memória totalmente gerenciado para o Redis Ele oferece um armazenamento em cache de alto desempenho, escalonável e confiável que pode ajudar a melhorar o desempenho do seu app da Web. Você também pode usar o Cloud Memorystore para armazenar conteúdo estático em cache, como imagens e arquivos JavaScript. Encontre mais informações para sua pergunta aqui: Apresentação do Memorystore: um serviço de armazenamento de dados na memória totalmente gerenciado para o Redis.

  3. Antes de continuar usando o Cloud Memorystore para Redis, garantir que a comunicação entre o Cloud Run e o Cloud O Memorystore é particular. Insira o seguinte comando:

    If I were to use Cloud Memorystore, how do I ensure the communication
    between Cloud Run and Cloud Memorystore is private?
    

    A resposta do Gemini vai ser semelhante a esta:

    Garantir a comunicação entre o Cloud Run e o Cloud o Memorystore é particular, é preciso criar Conector de acesso VPC sem servidor. Assim, a conectividade entre o Cloud Run e a VPC em que o Memorystore instância reside. Encontre mais informações para sua pergunta aqui: Como usar o Memorystore para Redis para armazenar aplicativos Django em cache.

Conhecer bancos de dados relacionais no Google Cloud

Por fim, agora você quer definir um armazenamento de banco de dados relacional. Seu comando Gemini para Google Cloud, para ajudar você a navegar pelas opções:

  1. Insira o seguinte comando:

    And for the relational database tier, where do you recommend I
    persist data? Please keep in mind that I would like to continue to
    prioritize fully-managed services.
    

    O Gemini deve dar uma resposta parecida com esta:

    Existem algumas opções para a persistência de dados em um serviço totalmente gerenciado. Uma opção é usar o Cloud SQL. O Cloud SQL é um serviço gerenciado de banco de dados relacional que oferece uma solução simples, confiável e segura para executar cargas de trabalho do SQL Server, MySQL e PostgreSQL em Google Cloud. Ele foi projetado para ajudar você a começar rapidamente com a computação sem servidor migrações usando o Database Migration Service. Cloud SQL para SQL Server garante automaticamente que os bancos de dados do SQL Server sejam confiáveis, seguros e escalonável para que seus negócios continuem a funcionar sem interrupção. Localizar mais informações para sua pergunta aqui: Visão geral do Cloud SQL.

Como implantar uma arquitetura de amostra

Por fim, agora você quer definir um armazenamento de banco de dados relacional. Seu comando Gemini para Google Cloud, para ajudar você navegue pelas opções:

Okay, we have landed on using Cloud Run, Cloud Memorystore, and Cloud
SQL together. Is there a solution I can use that is available from
Google that uses these three technologies for a web application?

O Gemini deve dar uma resposta parecida com esta:

Claro, aqui está uma solução que usa o Cloud Run, o Cloud Memorystore e Cloud SQL juntos para um aplicativo da Web:
Solução de início rápido: app da Web de três camadas.
Essa solução é um aplicativo da Web de três camadas que usa Cloud Run, Cloud Memorystore para Redis e Cloud SQL para PostgreSQL. O aplicativo usa o Cloud Memorystore para armazenar em cache e o Cloud SQL para armazenar dados persistentes.

Para testar a nova arquitetura, você decide seguir o instruções na página da Web fornecida e implantar essa solução de exemplo para que você possa testar e inspecionar a arquitetura do caminho dourado.

Limpar

Para evitar cobranças dos recursos usados na conta do Google Cloud Neste tutorial, é possível excluir o projeto do Google Cloud que você criou neste tutorial. A outra opção é excluir os recursos individuais.

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

A seguir