arrow_back

Deployment di app in Google Cloud

Accedi Partecipa
Accedi a oltre 700 lab e corsi

Deployment di app in Google Cloud

Lab 1 ora 30 minuti universal_currency_alt 5 crediti show_chart Introduttivi
info Questo lab potrebbe incorporare strumenti di AI a supporto del tuo apprendimento.
Accedi a oltre 700 lab e corsi

Panoramica

In questo lab, eseguirai il deployment di applicazioni nei servizi App Engine, Kubernetes Engine e Cloud Run di Google Cloud.

Architettura dei servizi App Engine, Kubernetes Engine e Cloud Run di Google Cloud

Obiettivi

In questo lab, imparerai a eseguire le attività seguenti:

  • Scaricare un'app di esempio da GitHub
  • Eseguire il deployment in App Engine
  • Eseguire il deployment in Kubernetes Engine
  • Eseguire il deployment in Cloud Run

Configurare l'ambiente del lab

Per ciascun lab, riceverai un nuovo progetto Google Cloud e un insieme di risorse per un periodo di tempo limitato senza alcun costo aggiuntivo.

  1. Accedi a Qwiklabs utilizzando una finestra di navigazione in incognito.

  2. Tieni presente la durata dell'accesso al lab (ad esempio, 1:15:00) e assicurati di finire entro quell'intervallo di tempo.
    Non è disponibile una funzionalità di pausa. Se necessario, puoi riavviare il lab ma dovrai ricominciare dall'inizio.

  3. Quando è tutto pronto, fai clic su Inizia lab.

  4. Annota le tue credenziali del lab (Nome utente e Password). Le userai per accedere a Google Cloud Console.

  5. Fai clic su Apri console Google.

  6. Fai clic su Utilizza un altro account e copia/incolla le credenziali per questo lab nei prompt.
    Se utilizzi altre credenziali, compariranno errori oppure ti verranno addebitati dei costi.

  7. Accetta i termini e salta la pagina di ripristino delle risorse.

Attività 1: crea un'applicazione Python semplice

Hai bisogno di un codice sorgente da gestire. Quindi, creerai un'applicazione web Python Flask semplice. L'applicazione sarà solo leggermente migliore di "Hello World", ma sarà sufficientemente valida per testare la pipeline che creerai.

  1. Nella console Cloud, fai clic su Attiva Cloud Shell (Icona Attiva Cloud Shell).
  2. Se richiesto, fai clic su Continua.

3.9. Inserisci il comando seguente in Cloud Shell per creare una cartella denominata gcp-course:

mkdir gcp-course
  1. Passa alla cartella appena creata:
cd gcp-course
  1. Crea una cartella denominata deploying-apps-to-gcp:
mkdir deploying-apps-to-gcp
  1. Passa alla cartella appena creata:
cd deploying-apps-to-gcp
  1. In Cloud Shell, fai clic su Apri editor (Icona editor) per aprire l'editor di codice. Se richiesto, fai clic su Apri in una nuova finestra.
  2. Seleziona la cartella gcp-course > deploying-apps-to-gcp nell'albero di esplorazione a sinistra.
  3. Fai clic su deploying-apps-to-gcp.
  4. Fai clic su Nuovo file.
  5. Assegna al file il nome main.py e premi Invio.
  6. Incolla questo codice nel file appena creato:
from flask import Flask, render_template, request app = Flask(__name__) @app.route("/") def main(): model = {"title": "Hello GCP."} return render_template('index.html', model=model) if __name__ == "__main__": app.run(host='0.0.0.0', port=8080, debug=True, threaded=True)
  1. Per salvare le modifiche, premi CTRL + S.
  2. Fai clic sulla cartella deploying-apps-to-gcp.
  3. Fai clic su Nuova cartella.
  4. Assegna alla cartella il nome templates e premi Invio.
  5. Fai clic con il tasto destro sulla cartella templates e crea un nuovo file denominato layout.html.
  6. Aggiungi il seguente codice e salva il file come in precedenza:
<!doctype html> <html lang="en"> <head> <title>{{model.title}}</title> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"> </head> <body> <div class="container"> {% block content %}{% endblock %} <footer></footer> </div> </body> </html>
  1. Sempre nella cartella templates, aggiungi un altro nuovo file denominato index.html.

  2. Aggiungi il seguente codice e salva il file come in precedenza:

{% extends "layout.html" %} {% block content %} <div class="jumbotron"> <div class="container"> <h1>{{model.title}}</h1> </div> </div> {% endblock %}
  1. In Python, i prerequisiti dell'applicazione sono gestiti tramite pip. Ora aggiungerai un file che elenca i requisiti per questa applicazione.

  2. Nella cartella deploying-apps-to-gcp (non la cartella templates), crea un Nuovo file, aggiungi quanto segue al file e salvalo come requirements.txt:

Flask==2.0.3 itsdangerous==2.0.1 Jinja2==3.0.3 werkzeug==2.2.2

Attività 2: definisci una build Docker

Per utilizzare Docker, la prima cosa da fare è creare un file denominato Dockerfile. Questo file definisce il modo in cui viene creato un container Docker, ed è quello che farai ora.

  1. Nella cartella deploying-apps-to-gcp, fai clic su Nuovo file e assegna al nuovo file il nome Dockerfile.

Il file Dockerfile viene utilizzato per definire il modo in cui viene creato il container.

  1. Aggiungi quanto segue:
FROM python:3.9 WORKDIR /app COPY . . RUN pip install gunicorn RUN pip install -r requirements.txt ENV PORT=8080 CMD exec gunicorn --bind :$PORT --workers 1 --threads 8 main:app
  1. Per testare il programma, digita questi comandi per creare un container Docker dell'immagine:
docker build -t test-python .
  1. Per eseguire l'immagine Docker, digita questo comando:
docker run --rm -p 8080:8080 test-python
  1. Per vedere il programma in esecuzione, fai clic su Anteprima web (Icona Anteprima web) nella barra degli strumenti di Google Cloud Shell. Quindi, seleziona Anteprima sulla porta 8080.

Il programma dovrebbe essere visualizzato in una nuova scheda del browser.

  1. In Cloud Shell, premi Ctrl+C per arrestare il programma.

Attività 3: esegui il deployment in App Engine

App Engine è una piattaforma di deployment completamente automatizzata. Supporta molti linguaggi, tra cui Python, Java, JavaScript e Go. Per utilizzarlo, devi creare un file di configurazione ed eseguire il deployment delle tue applicazioni con un paio di semplici comandi. In questa attività, creerai un file denominato app.yaml e ne eseguirai il deployment in App Engine.

  1. In Cloud Shell, fai clic su Apri editor (Icona Editor di Cloud Shell) e, se richiesto, su Apri in una nuova finestra.
  2. Seleziona la cartella gcp-course/deploying-apps-to-gcp nell'albero di esplorazione a sinistra.
  3. Fai clic su Nuovo file, assegna al file il nome app.yaml, quindi premi Invio.
  4. Incolla questo codice nel file appena creato:
runtime: python39
  1. Salva le modifiche.
Nota: puoi aggiungere altre impostazioni al file app.yaml, ma in questo caso è richiesto solo il runtime del linguaggio.
  1. In un progetto, devi creare un'applicazione App Engine. È necessario farlo una sola volta usando il comando gcloud app create e specificando la regione in cui creare l'app. Fai clic su Apri terminale e digita questo comando. Se richiesto, fai clic su Autorizza:
gcloud app create --region={{{project_0.startup_script.app_region| Region}}}
  1. Ora esegui il deployment della tua app con questo comando:
gcloud app deploy --version=one --quiet Nota: il completamento del comando richiederà un paio di minuti.
  1. Nella barra del titolo della console Google Cloud, digita App Engine nel campo di ricerca, quindi fai clic su App Engine nella sezione Risultati di ricerca.

  2. Nell'angolo in alto a destra della dashboard, è presente un link alla tua applicazione, simile a questo:

Esempio di link alla tua applicazione

Nota: per impostazione predefinita, il formato dell'URL di un'applicazione App Engine è https://project-id.appspot.com.
  1. Fai clic sul link per testare il programma.

  2. Apporta una modifica al programma per vedere quanto è facile gestire le versioni con App Engine.

  3. Nell'editor di codice, espandi la cartella /deploying-apps-to-gcp nel riquadro di navigazione a sinistra. Quindi fai clic sul file main.py per aprirlo.

  4. Nella funzione main(), cambia il titolo in Hello App Engine come mostrato di seguito:

@app.route("/") def main(): model = {"title" "Hello App Engine"} return render_template('index.html', model=model)
  1. Per salvare la modifica, fai clic su File > Salva nella barra degli strumenti dell'editor di codice.

  2. Ora esegui il deployment della versione due con il seguente comando:

gcloud app deploy --version=two --no-promote --quiet Nota: il parametro --no-promote indica ad App Engine di continuare a gestire le richieste con la vecchia versione. Ciò consente di testare la nuova versione prima di metterla in produzione.
  1. Una volta completato il comando, torna alla dashboard di App Engine. Facendo di nuovo clic sul link, verrà restituita ancora la versione uno. Dovrebbe essere restituito Hello GCP. Ciò è dovuto al parametro --no-promote nel comando precedente.

  2. Sulla sinistra, fai clic sulla scheda Versioni. Sono elencate due versioni.

Nota: per visualizzare la versione due potrebbe essere necessario fare clic su Aggiorna.
  1. Fai clic sul link alla versione due per testarla. Dovrebbe essere restituito Hello App Engine.

  2. Per eseguire la migrazione del traffico di produzione alla versione due, fai clic su Suddividi traffico in alto. Cambia la versione nella versione due e fai clic su Salva.

  3. Attendi un minuto che l'operazione venga completata. Aggiorna la scheda del browser che in precedenza restituiva Hello GCP. Ora dovrebbe restituire la nuova versione.

Fai clic su Controlla i miei progressi per verificare l'obiettivo. Esegui il deployment in App Engine

Attività 4: esegui il deployment in Kubernetes Engine con Cloud Build e Artifact Registry

Kubernetes Engine ti consente di creare un cluster di macchine e di eseguirvi il deployment di qualunque numero di applicazioni. Kubernetes astrae i dettagli della gestione delle macchine e ti consente di automatizzare il deployment delle tue applicazioni con semplici comandi dell'interfaccia a riga di comando.

Per eseguire il deployment di un'applicazione in Kubernetes, devi prima creare il cluster, quindi devi aggiungere un file di configurazione per ogni applicazione di cui eseguirai il deployment nel cluster.

  1. Nel Menu di navigazione (Icona menu di navigazione), fai clic su Kubernetes Engine. Se compare un messaggio che indica che l'API Kubernetes è in fase di inizializzazione, attendi il completamento.

  2. Fai clic su Crea cluster, poi su Passa al cluster Standard e conferma Passa al cluster Standard.

  3. Fai clic su A livello di zona per Tipo di località, quindi seleziona la zona . Accetta tutte le altre variabili come predefinite e fai clic su Crea. La creazione del cluster Kubernetes Engine richiederà un paio di minuti. Quando il cluster è pronto, viene visualizzato un segno di spunta verde.

  4. Fai clic sui tre puntini a destra del cluster e quindi su Connetti.

  5. Nella schermata Connettiti al cluster, fai clic su Esegui in Cloud Shell. Viene aperto Cloud Shell con il comando di connessione inserito automaticamente.

  6. Premi Invio per connetterti al cluster.

  7. Per testare la tua connessione, digita questo comando:

kubectl get nodes

Questo comando mostra semplicemente le macchine nel tuo cluster. Se funziona, la connessione è attiva.

  1. In Cloud Shell, fai clic su Apri editor (Icona Editor di Cloud Shell).
  2. Espandi la cartella gcp-course/deploying-apps-to-gcp nel riquadro di navigazione a sinistra. Quindi fai clic sul file main.py per aprirlo.
  3. Nella funzione main(), cambia il titolo in Hello Kubernetes Engine come mostrato di seguito:
@app.route("/") def main(): model = {"title" "Hello Kubernetes Engine"} return render_template('index.html', model=model)
  1. Salva la modifica.
  2. Aggiungi un file denominato kubernetes-config.yaml alla cartella gcp-course/deploying-apps-to-gcp.
  3. Incolla il seguente codice nel file per configurare l'applicazione:
--- apiVersion: apps/v1 kind: Deployment metadata: name: devops-deployment labels: app: devops tier: frontend spec: replicas: 3 selector: matchLabels: app: devops tier: frontend template: metadata: labels: app: devops tier: frontend spec: containers: - name: devops-demo image: <YOUR IMAGE PATH HERE> ports: - containerPort: 8080 --- apiVersion: v1 kind: Service metadata: name: devops-deployment-lb labels: app: devops tier: frontend-lb spec: type: LoadBalancer ports: - port: 80 targetPort: 8080 selector: app: devops tier: frontend

Nota: nella prima sezione del file YAML sopra, stai configurando un deployment. In questo caso, stai eseguendo il deployment di 3 istanze della tua app web Python. Osserva l'attributo dell'immagine. Aggiornerai questo valore con la tua immagine in un minuto, dopo averla creata. Nella seconda sezione, stai configurando un servizio di tipo "bilanciatore del carico". Il bilanciatore del carico avrà un indirizzo IP pubblico. Gli utenti avranno accesso alla tua applicazione tramite il bilanciatore del carico.

Per ulteriori informazioni sui deployment e sui servizi Kubernetes, consulta i link seguenti:

  1. In Cloud Shell digita questo comando per creare un repository Artifact Registry denominato devops-demo:
gcloud artifacts repositories create devops-demo \ --repository-format=docker \ --location={{{ project_0.default_region | "REGION" }}}
  1. Per configurare Docker per l'autenticazione nel repository Docker in Artifact Registry, digita questo comando:
gcloud auth configure-docker {{{ project_0.default_region | "REGION" }}}-docker.pkg.dev
  1. Per utilizzare Kubernetes Engine, devi creare un'immagine Docker. Digita questi comandi per creare l'immagine e archiviarla in Artifact Registry mediante Cloud Build:
cd ~/gcp-course/deploying-apps-to-gcp gcloud builds submit --tag {{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/$DEVSHELL_PROJECT_ID/devops-demo/devops-image:v0.2 .
  1. Una volta completato il comando precedente, il nome dell'immagine verrà elencato nell'output. Il formato del nome dell'immagine è -docker.pkg.dev/PROJECT_ID/devops-demo/devops-image:v0.2.

  2. Evidenzia il nome dell'immagine e copialo negli appunti. Incolla questo valore nel file kubernetes-config.yaml, sovrascrivendo la stringa <YOUR IMAGE PATH HERE>.

Il risultato dovrebbe essere simile a questo:

spec: containers: - name: devops-demo image: {{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/PROJECT_ID/devops-demo/devops-image:v0.2 ports:
  1. Digita questo comando Kubernetes per eseguire il deployment della tua applicazione:
kubectl apply -f kubernetes-config.yaml
  1. Nel file di configurazione sono state specificate tre repliche dell'applicazione. Per verificare che siano state create tre istanze, digita il seguente comando:
kubectl get pods

Assicurati che tutti i pod siano pronti. In caso contrario, attendi qualche secondo e riprova.

  1. Nel file di configurazione è stato aggiunto anche un bilanciatore del carico. Per verificare che sia stato creato, digita il seguente comando:
kubectl get services

Il risultato dovrebbe essere simile a questo:

Output

Se l'indirizzo IP esterno del bilanciatore del carico indica "in attesa", attendi qualche secondo e riprova.

  1. Quando disponi di un IP esterno, apri una scheda del browser e inviagli una richiesta. Dovrebbe essere restituito Hello Kubernetes Engine. L'operazione potrebbe richiedere qualche secondo.

Fai clic su Controlla i miei progressi per verificare l'obiettivo. Esegui il deployment in Kubernetes Engine

Attività 5: esegui il deployment in Cloud Run

Cloud Run semplifica e automatizza i deployment in Kubernetes. Quando utilizzi Cloud Run, non hai bisogno di un file di configurazione. Devi solo scegliere un cluster per la tua applicazione. Con Cloud Run, puoi utilizzare un cluster gestito da Google o il tuo cluster Kubernetes.

Per utilizzare Cloud Run, la tua applicazione deve essere sottoposta a deployment mediante un'immagine Docker e deve essere stateless.

  1. Apri l'editor di codice Cloud Shell ed espandi la cartella gcp-course/deploying-apps-to-gcp nel riquadro di navigazione a sinistra. Quindi fai clic sul file main.py per aprirlo.
  2. Nella funzione main(), cambia il titolo in Hello Cloud Run come mostrato di seguito:
@app.route("/") def main(): model = {"title" "Hello Cloud Run"} return render_template('index.html', model=model)
  1. Salva la modifica.

  2. Per utilizzare Cloud Run, devi creare un'immagine Docker. In Cloud Shell, digita questi comandi per creare l'immagine e archiviarla in Artifact Registry mediante Cloud Build:

cd ~/gcp-course/deploying-apps-to-gcp gcloud builds submit --tag {{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/$DEVSHELL_PROJECT_ID/devops-demo/cloud-run-image:v0.1 .
  1. Una volta completata la build, nella barra del titolo della console Google Cloud, digita Cloud Run nel campo di ricerca e fai clic su Cloud Run nella sezione Prodotti e pagine.

  2. Fai clic su Crea servizio. Viene abilitata l'API Cloud Run.

  3. Fai clic sul link Seleziona nella casella di testo Container image URL, quindi fai clic su Artifact Registry. Nella finestra di dialogo visualizzata, espandi Region-docker.pkg.dev/$DEVSHELL_PROJECT_ID/devops-demo > cloud-run-image e seleziona l'immagine elencata. Quindi, fai clic su Seleziona.

  4. In Nome servizio, digita hello-cloud-run e seleziona la regione .

  5. Per Autenticazione, seleziona Consenti chiamate non autenticate.

  6. In Container, volumi, networking, sicurezza, seleziona default nella sezione Ambiente di esecuzione.

  7. In Scalabilità delle revisioni, imposta Numero massimo di istanze su 6. Mantieni tutte le altre impostazioni predefinite.

  8. Infine, fai clic su Crea.

  9. Il deployment del servizio non dovrebbe richiedere molto tempo. Quando viene visualizzato un segno di spunta verde, fai clic sull'URL generato automaticamente per l'applicazione. Dovrebbe essere restituito Hello Cloud Run.

Fai clic su Controlla i miei progressi per verificare l'obiettivo. Eseguire il deployment in Cloud Run

Complimenti!

In questo lab, hai eseguito il deployment di applicazioni nei servizi App Engine, Kubernetes Engine e Cloud Run di Google Cloud.

Termina il lab

Una volta completato il lab, fai clic su Termina lab. Google Cloud Skills Boost rimuove le risorse che hai utilizzato ed esegue la pulizia dell'account.

Avrai la possibilità di inserire una valutazione in merito alla tua esperienza. Seleziona il numero di stelle applicabile, inserisci un commento, quindi fai clic su Invia.

Il numero di stelle corrisponde alle seguenti valutazioni:

  • 1 stella = molto insoddisfatto
  • 2 stelle = insoddisfatto
  • 3 stelle = esperienza neutra
  • 4 stelle = soddisfatto
  • 5 stelle = molto soddisfatto

Se non vuoi lasciare un feedback, chiudi la finestra di dialogo.

Per feedback, suggerimenti o correzioni, utilizza la scheda Assistenza.

Copyright 2025 Google LLC Tutti i diritti riservati. Google e il logo Google sono marchi di Google LLC. Tutti gli altri nomi di società e prodotti sono marchi delle rispettive società a cui sono associati.

Prima di iniziare

  1. I lab creano un progetto e risorse Google Cloud per un periodo di tempo prestabilito
  2. I lab hanno un limite di tempo e non possono essere messi in pausa. Se termini il lab, dovrai ricominciare dall'inizio.
  3. In alto a sinistra dello schermo, fai clic su Inizia il lab per iniziare

Utilizza la navigazione privata

  1. Copia il nome utente e la password forniti per il lab
  2. Fai clic su Apri console in modalità privata

Accedi alla console

  1. Accedi utilizzando le tue credenziali del lab. L'utilizzo di altre credenziali potrebbe causare errori oppure l'addebito di costi.
  2. Accetta i termini e salta la pagina di ripristino delle risorse
  3. Non fare clic su Termina lab a meno che tu non abbia terminato il lab o non voglia riavviarlo, perché il tuo lavoro verrà eliminato e il progetto verrà rimosso

Questi contenuti non sono al momento disponibili

Ti invieremo una notifica via email quando sarà disponibile

Bene.

Ti contatteremo via email non appena sarà disponibile

Un lab alla volta

Conferma per terminare tutti i lab esistenti e iniziare questo

Utilizza la navigazione privata per eseguire il lab

Utilizza una finestra del browser in incognito o privata per eseguire questo lab. In questo modo eviterai eventuali conflitti tra il tuo account personale e l'account Studente, che potrebbero causare addebiti aggiuntivi sul tuo account personale.