Architettare un'app multi-livello con l'assistenza Gemini per Google Cloud

Questo tutorial mostra come utilizzare Gemini per Google Cloud, un collaboratore basato sull'AI in Google Cloud, per progettare un web multi-livello utilizzando servizi completamente gestiti, ove possibile.

Obiettivi

  • Esplora i vari servizi Google che puoi utilizzare per gestire il traffico tramite la rete internet pubblica.
  • Esplora i vari servizi Google che puoi usare per memorizzare i dati nella cache per velocizzare recupero.
  • Esplora i vari servizi Google che puoi utilizzare per rendere persistenti i dati stateful.
  • Architettare l'interazione tra i vari servizi Google.

Prodotti Google Cloud utilizzati

  • Cloud Run. Cloud Run è una piattaforma di computing gestita che ti consente di eseguire i container direttamente sul database scalabile di Google dell'infrastruttura. Puoi eseguire il deployment di codice scritto in qualsiasi linguaggio di programmazione su in Cloud Run, se puoi creare un'immagine container da lì.
  • Cloud Memorystore. Cloud Memorystore è un servizio completamente gestito servizio datastore in memoria per Redis e Memcached. Crea applicazione che forniscono l'accesso ai dati in meno di un millisecondo.
  • Cloud SQL. Cloud SQL è un servizio che offre servizi relazionali nel cloud. Offre MySQL, PostgreSQL e SQL Motori di database server.

Prima di iniziare

  1. Assicurati che Gemini sia configurato per il tuo account utente e progetto Google Cloud.

Esplora la pubblicazione web in Google Cloud

Nell'esempio seguente, supponiamo che tu sia un architetto che vuole utilizzare Gemini può aiutarti a prendere decisioni sulla strada giusta per tutta l'organizzazione agli sviluppatori che vogliono creare rapidamente un'app web in Google Cloud. Il tuo obiettivo è utilizzare l'assistenza di Gemini per capire le opzioni a tua disposizione, le loro caratteristiche e la loro interoperabilità.

Nella console Google Cloud, puoi chattare con Gemini per ottenere guida. Nel riquadro Gemini, inserisci i prompt, ovvero domande o che descrivono l'aiuto che vuoi, e Gemini restituisce diverse.

Per iniziare, chiedi a Gemini di aiutarti a prendere una decisione relativa al livello di computing dove verrà eseguita la pubblicazione web. Procedi nel seguente modo:

  1. Nella barra degli strumenti della console Google Cloud, fai clic su Apri Gemini.

  2. Nel riquadro Gemini, inserisci il seguente prompt in base a i tuoi requisiti e le tue preferenze, quindi fai clic su Invia:

    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.
    

    La risposta di Gemini dovrebbe essere simile alla seguente:

    Esistono alcune opzioni per eseguire un'app in modo da gestire il traffico su a internet pubblico su Google Cloud. Puoi utilizzare Cloud Run, in App Engine o Compute Engine.
    Cloud Run è un ambiente una piattaforma serverless gestita che ti consente di eseguire container stateless possono essere richiamati tramite richieste HTTP. App Engine è una piattaforma completamente gestita che fornisce un ambiente di programmazione per lo sviluppo e l'esecuzione diverse applicazioni. Compute Engine è un servizio di macchina virtuale (VM) che consente per la creazione e la gestione di macchine virtuali.
    Per decidere qual è l'opzione migliore per te, devi considerare i seguenti fattori:
    Le dimensioni e complessità dell'app
    La quantità di traffico che prevedi di ricevere
    Il livello di controllo di cui hai bisogno sull'app
    Il costo
    Se disponi di un un'app piccola e semplice che prevedi di ricevere una piccola quantità di traffico allora Cloud Run è una buona opzione. Se hai un modello più grande, complessa che prevede di ricevere una grande quantità di traffico, App Engine o Compute Engine potrebbero essere un'opzione migliore. Se hai bisogno di molto di controllo sull'app, Compute Engine è una buona opzione. Se hanno un budget ridotto, Cloud Run è una buona opzione.

  3. Dato che stai progettando il percorso più veloce per eseguire app web più piccole nella tua organizzazione, la descrizione di Cloud Run di Gemini sembra al fine di soddisfare al meglio le tue esigenze. Prima, però, vuoi verificare alcuni dei caratteristiche della piattaforma. Inserisci il seguente prompt e fai clic su Invia:

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

    La risposta di Gemini dovrebbe essere simile alla seguente:

    Cloud Run utilizza il numero di richieste o eventi in entrata la scalabilità automatica. Quando una revisione non riceve traffico, per per impostazione predefinita viene scalato a zero istanze. Trova ulteriori informazioni per il tuo domanda qui: Informazioni sulla scalabilità automatica delle istanze.

  4. Con la scalabilità automatica di Cloud Run basata sulle richieste in entrata, ora per comprendere come il traffico penetra nelle applicazioni che ospita. Inserisci il seguente prompt:

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

    La risposta di Gemini dovrebbe essere simile alla seguente:

    Cloud Run accetta il traffico in entrata in entrata dai seguenti Fonti:
    Internet pubblico: le richieste vengono instradate direttamente dalle reti pubbliche ai servizi Cloud Run con l'opzione di routing attraverso un bilanciatore del carico HTTP(S) esterno.
    API di Google e di Google Cloud: le richieste dalle API e dai servizi Google vengono instradate al tuo Servizi Cloud Run senza bisogno di un carico HTTP(S) esterno con il bilanciatore del carico di rete passthrough esterno regionale.
    reti VPC: le richieste dalle reti VPC vengono instradate al tuo ai servizi Cloud Run tramite un connettore VPC.
    Puoi controllare il modo in cui il tuo servizio Cloud Run è esposto agli utenti utilizzando impostazioni di traffico in entrata.

  5. Sebbene per questa classe sia ammesso un bilanciatore del carico pubblico esterno di applicazioni, vuoi che Gemini ti aiuti a capire se la piattaforma può esporre questa applicazione solo agli utenti autenticati con diritti autorizzazioni aggiuntive. Digita il seguente prompt:

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

    La risposta di Gemini dovrebbe essere simile alla seguente:

    Sì, esiste un meccanismo per garantire che solo gli utenti autenticati possano per accedere a un'applicazione Cloud Run. Puoi farlo specificando l'opzione no-allow-unauthenticated durante il deployment di un servizio. Ciò farà sì che al tuo servizio di rifiutare le richieste non autenticate con un errore HTTP 403 . Puoi trovare ulteriori informazioni sulla tua domanda qui: Consentire l'accesso pubblico (non autenticato).

  6. Infine, per configurare questa funzionalità per gli sviluppatori della tua organizzazione, è preferibile è non far scrivere loro nessuna configurazione relativa all'infrastruttura, come Dockerfile.

    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?
    

    La risposta di Gemini dovrebbe essere simile alla seguente:

    Sì, puoi eseguire il deployment di un'app Python in Cloud Run direttamente codice sorgente. Puoi utilizzare il buildpack Python di Cloud Run per creare ed eseguire il deployment della tua app Python. Puoi trovare ulteriori informazioni sulla tua domanda qui: Deployment da codice sorgente.

Esplora la memorizzazione nella cache in Google Cloud

Ora vuoi procedere con la scelta di un servizio per il livello successivo: la memorizzazione nella cache. R comune necessità di questo livello da parte del tuo team, ti richiede di chiedere a Gemini di aiutarti comprendi le offerte di Google Cloud in quest'area. Prendi le seguenti passaggi per chiedere assistenza a Gemini:

  1. Nella barra degli strumenti della console Google Cloud, fai clic su Apri Gemini.

  2. Inserisci il seguente prompt e fai clic su Invia:

    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.
    

    La risposta di Gemini dovrebbe essere simile alla seguente:

    Esistono alcuni modi per introdurre un livello di memorizzazione nella cache nella tua app web. Uno. è usare un servizio completamente gestito come Cloud Memorystore. Cloud Memorystore è un servizio di datastore in memoria completamente gestito Redis. Offre una memorizzazione nella cache ad alte prestazioni, scalabile e affidabile che può aiutarti a migliorare le prestazioni della tua app web. Tu puoi anche usare Cloud Memorystore per memorizzare nella cache contenuti statici, immagini e file JavaScript. Puoi trovare ulteriori informazioni sulla tua domanda qui: Presentazione di Memorystore: un servizio di datastore in memoria completamente gestito per Redis.

  3. Prima di procedere con l'utilizzo di Cloud Memorystore for Redis, devi assicura che la comunicazione tra Cloud Run e Cloud Memorystore è privato. Digita il seguente prompt:

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

    La risposta di Gemini dovrebbe essere simile alla seguente:

    garantire la comunicazione tra Cloud Run e Cloud. Memorystore è privato, devi creare Connettore di accesso VPC serverless. Ciò consentirà la connettività tra Cloud Run e il VPC dove il tuo Memorystore dell'istanza. Puoi trovare ulteriori informazioni sulla tua domanda qui: Utilizzo di Memorystore for Redis per memorizzare nella cache le applicazioni Django.

Esplora i database relazionali in Google Cloud

Infine, devi scegliere un archivio di database relazionali. Tu chiedi Gemini per Google Cloud per aiutarti a esplorare le opzioni disponibili:

  1. Digita il seguente prompt:

    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.
    

    Gemini dovrebbe rispondere con qualcosa di simile al seguente:

    Esistono alcune opzioni per mantenere i dati in un servizio completamente gestito. Un'opzione è utilizzare Cloud SQL. Cloud SQL è una piattaforma che offre un servizio di database relazionale semplice, affidabile e sicuro per l'esecuzione di carichi di lavoro SQL Server, MySQL e PostgreSQL su in Google Cloud. È progettato per aiutarti a iniziare rapidamente con il serverless tramite Database Migration Service. Cloud SQL per SQL Server garantisce automaticamente che i database SQL Server siano affidabili, sicuri e la scalabilità, in modo che la tua attività prosegua senza interruzioni. Trova ulteriori informazioni sulla tua domanda qui: Panoramica di Cloud SQL.

Deployment di un'architettura di esempio

Infine, devi scegliere un archivio di database relazionali. Tu chiedi Gemini per Google Cloud per aiutarti naviga tra le opzioni:

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?

Gemini dovrebbe rispondere con qualcosa di simile al seguente:

Ecco una soluzione che usa Cloud Run, Memorystore e Cloud SQL insieme per un'applicazione web:
Soluzione di avvio rapido: app web a tre livelli.
Questa soluzione è un'applicazione web a tre livelli che utilizza Cloud Run, Cloud Memorystore for Redis e Cloud SQL per PostgreSQL. L'applicazione usa Cloud Memorystore per memorizzare nella cache e Cloud SQL per archiviare dati permanenti.

Per testare la nuova architettura, decidete di seguire le istruzioni nella pagina web fornita ed esegui il deployment di questa soluzione di esempio e testare l'architettura del tuo percorso aureo.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate. In questo tutorial puoi eliminare il progetto Google Cloud che hai creato questo tutorial. In alternativa, puoi eliminare le singole risorse.

  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.

Passaggi successivi