In questo lab realizzerai una pipeline CI/CD che crea automaticamente un'immagine container dal codice dopo il commit, archivia l'immagine in Container Registry, aggiorna un manifest Kubernetes in un repository Git ed esegue il deployment dell'applicazione in Google Kubernetes Engine utilizzando questo manifest.
Per questo lab creerai 2 repository Git:
Repository app: contiene il codice sorgente dell'applicazione stessa
Repository env: contiene i file manifest per il deployment in Kubernetes
Quando esegui il push di una modifica nel repository app, la pipeline di Cloud Build esegue i test, crea un'immagine container e la invia ad Artifact Registry. Dopo aver eseguito il push dell'immagine, Cloud Build aggiorna il manifest del deployment e lo invia al repository env. Questo attiva un'altra pipeline di Cloud Build che applica il manifest al cluster GKE e, se l'operazione ha esito positivo, lo archivia in un altro ramo del repository env.
Manteniamo separati i repository app ed env perché hanno cicli di vita e utilizzi diversi. Gli utenti principali del repository app sono persone reali e questo repository è dedicato a un'applicazione specifica. Gli utenti principali del repository env sono sistemi automatici (come Cloud Build) e questo repository potrebbe essere condiviso da diverse applicazioni. Il repository env può avere vari rami, ciascuno con mappatura su un ambiente specifico (in questo lab utilizzi solo l'ambiente di produzione) e con riferimento a una specifica immagine container, al contrario del repository app.
Al termine del lab avrai un sistema in cui è facile:
distinguere i deployment non riusciti e quelli riusciti esaminando la cronologia di Cloud Build;
accedere al manifest attualmente in uso esaminando il ramo production del repository env;
eseguire il rollback a qualsiasi versione precedente mediante una nuova esecuzione della build di Cloud Build corrispondente.
Nota: questo lab utilizza Cloud Build per eseguire le pipeline, ma esistono altri strumenti di automazione diffusi che potrebbero servire come alternative, come Spinnaker e Jenkins. Al momento, alcuni di questi altri strumenti offrono un supporto superiore per deployment blu/verde, analisi canary e funzionalità simili che potrebbero essere necessarie nelle implementazioni CI/CD più avanzate.
Obiettivi
In questo lab imparerai a:
creare cluster Kubernetes Engine;
creare Cloud Source Repositories;
attivare Cloud Build da Cloud Source Repositories;
automatizzare i test e pubblicare un'immagine container di cui è possibile eseguire il deployment tramite Cloud Build;
gestire le risorse di cui è stato eseguito il deployment in un cluster Kubernetes Engine mediante Cloud Build.
Configurazione e requisiti
Accedi a Qwiklabs
Per ciascun lab, riceverai un nuovo progetto Google Cloud e un insieme di risorse per un periodo di tempo limitato senza alcun costo aggiuntivo.
Accedi a Qwiklabs utilizzando una finestra di navigazione in incognito.
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.
Quando è tutto pronto, fai clic su Inizia lab.
Annota le tue credenziali del lab (Nome utente e Password). Le userai per accedere a Google Cloud Console.
Fai clic su Apri console Google.
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.
Accetta i termini e salta la pagina di ripristino delle risorse.
Una volta completati i passaggi di accesso iniziali, viene visualizzata la dashboard del progetto.
Attiva Google Cloud Shell
Google Cloud Shell è una macchina virtuale in cui sono caricati strumenti per sviluppatori. Offre una home directory permanente da 5 GB e viene eseguita su Google Cloud.
Google Cloud Shell fornisce l'accesso da riga di comando alle risorse Google Cloud.
Nella barra degli strumenti in alto a destra della console Cloud, fai clic sul pulsante Apri Cloud Shell.
Fai clic su Continua.
Bastano pochi istanti per eseguire il provisioning e connettersi all'ambiente. Quando la connessione è attiva, l'autenticazione è già avvenuta e il progetto è impostato sul tuo PROJECT_ID. Ad esempio:
gcloud è lo strumento a riga di comando di Google Cloud. È preinstallato su Cloud Shell e supporta il completamento.
Puoi visualizzare il nome dell'account attivo con questo comando:
In questa attività preparerai il progetto Google Cloud per l'utilizzo. Dovrai abilitare le API richieste, inizializzare la configurazione Git in Cloud Shell e scaricare il codice campione utilizzato nel lab in un secondo momento.
In Cloud Shell, esegui questo comando per abilitare le API per GKE, Cloud Build, Cloud Source Repositories e Container Analysis:
Git li utilizzerà per identificarti come autore dei commit che creerai in Cloud Shell.
Fai clic su Controlla i miei progressi per verificare l'obiettivo.
Inizializza il lab
Attività 2: crea i repository Git in Cloud Source Repositories
In questa attività creerai i due repository Git (hello-cloudbuild-app e hello-cloudbuild-env) utilizzati nel lab e inizializzerai hello-cloudbuild-app con del codice campione.
Quando esegui questo comando, Cloud Build trasmette il flusso dei log generati dalla creazione dell'immagine container al tuo terminale.
Al termine della build, nella console Google Cloud vai ad Artifact Registry > Repository e verifica che la nuova immagine container sia effettivamente disponibile in Artifact Registry.
Fai clic su Il mio repository.
Fai clic su Controlla i miei progressi per verificare l'obiettivo.
Crea un'immagine container con Cloud Build
Attività 4: crea la pipeline di integrazione continua (CI)
In questa attività configurerai Cloud Build in modo che esegua automaticamente un piccolo test delle unità, crei l'immagine container e quindi ne esegua il push in Container Registry. Il push di un nuovo commit in Cloud Source Repositories avvia automaticamente questa pipeline. Il file cloudbuild.yaml già incluso nel codice è la configurazione della pipeline.
Nella console Google Cloud, vai a Cloud Build > Trigger.
Fai clic su Crea trigger.
Nel campo Nome, digita hello-cloudbuild.
In Evento, seleziona Push al ramo.
In Origine, seleziona hello-cloudbuild-app come Repository e digita ^master$ come Ramo.
In Configurazione build, seleziona File di configurazione di Cloud Build.
Nel campo Posizione file di configurazione Cloud Build, digita cloudbuild.yaml dopo il carattere /.
Per Service account, seleziona il service account che inizia con il tuo ID progetto e dall'aspetto simile a (@.iam.gserviceaccount.com).
Fai clic su Crea.
Dopo aver creato il trigger, torna a Cloud Shell. Ora devi eseguire il push del codice dell'applicazione in Cloud Source Repositories per attivare la pipeline CI in Cloud Build.
Per avviare il trigger, esegui questo comando:
cd ~/hello-cloudbuild-app
git push google master
Nella console Google Cloud, vai a Cloud Build > Dashboard.
Dovresti vedere una build in esecuzione o completata di recente.
Puoi fare clic sulla build per seguirne l'esecuzione ed esaminare i relativi log.
Fai clic su Controlla i miei progressi per verificare l'obiettivo.
Crea la pipeline di integrazione continua (CI)
Attività 5: crea l'ambiente di test e la pipeline CD
Cloud Build viene utilizzato anche per la pipeline di distribuzione continua. La pipeline viene eseguita per ogni push di un commit al ramo candidate del repository __hello-cloudbuild-env__. La pipeline applica la nuova versione del manifest al cluster Kubernetes e, in caso di esito positivo, copia il manifest nel ramo production. Questo processo ha le seguenti proprietà:
Il ramo candidate rappresenta una cronologia dei tentativi di deployment.
Il ramo production rappresenta una cronologia dei deployment riusciti.
Puoi visualizzare i deployment riusciti e non riusciti in Cloud Build.
Puoi eseguire il rollback a qualsiasi deployment precedente eseguendo di nuovo la build corrispondente in Cloud Build. Un rollback aggiorna anche il ramo production in modo che riporti fedelmente la cronologia dei deployment.
Dovrai modificare la pipeline di integrazione continua per aggiornare il ramo candidate del repository hello-cloudbuild-env e attivare così la pipeline di distribuzione continua.
Concedi a Cloud Build l'accesso a GKE
Per eseguire il deployment dell'applicazione nel cluster Kubernetes, Cloud Build deve disporre del ruolo Kubernetes Engine Developer di Identity and Access Management.
Devi inizializzare il repository hello-cloudbuild-env con due rami (production e candidate) e un file di configurazione di Cloud Build che descrive il processo di deployment.
Il primo passaggio consiste nel clonare il repository hello-cloudbuild-env e creare il ramo production. È ancora vuoto.
In Cloud Shell, esegui questo comando:
cd ~
gcloud source repos clone hello-cloudbuild-env
cd ~/hello-cloudbuild-env
git checkout -b production
Successivamente, devi copiare il file cloudbuild-delivery.yaml disponibile nel repository hello-cloudbuild-app ed eseguire il commit della modifica:
cd ~/hello-cloudbuild-env
cp ~/hello-cloudbuild-app/cloudbuild-delivery.yaml ~/hello-cloudbuild-env/cloudbuild.yaml
git add .
git commit -m "Create cloudbuild.yaml for deployment"
Nota: il file cloudbuild-delivery.yaml descrive il processo di deployment da eseguire in Cloud Build.
Prevede due passaggi:
Cloud Build applica il manifest al cluster GKE.
In caso di esito positivo, Cloud Build copia il manifest nel ramo production.
Crea un ramo candidate ed esegui il push di entrambi i rami per renderli disponibili in Cloud Source Repositories:
Fai clic su Controlla i miei progressi per verificare l'obiettivo.
Concedi i ruoli IAM Kubernetes Engine Developer e Source Repository Writer a Cloud Build
Crea il trigger per la pipeline di distribuzione continua
Nella console Google Cloud, vai a Cloud Build > Trigger.
Fai clic su Crea trigger.
Nel campo Nome, digita hello-cloudbuild-deploy.
In Evento, seleziona Push al ramo.
In Origine, seleziona hello-cloudbuild-env come Repository e ^candidate$ come Ramo.
In Configurazione build, seleziona File di configurazione di Cloud Build.
Nel campo Posizione file di configurazione Cloud Build, digita cloudbuild.yaml dopo il carattere /.
Per Service account, seleziona il service account che inizia con il tuo ID progetto e dall'aspetto simile a (@.iam.gserviceaccount.com).
Fai clic su Crea.
Modifica la pipeline di integrazione continua per attivare la pipeline di distribuzione continua
In questa sezione aggiungerai alla pipeline di integrazione continua alcuni passaggi che genereranno una nuova versione del manifest Kubernetes e ne eseguiranno il push al repository __hello-cloudbuild-env__ per attivare la pipeline di distribuzione continua.
Copia la versione estesa del file cloudbuild.yaml per il repository app:
cd ~/hello-cloudbuild-app
cp cloudbuild-trigger-cd.yaml cloudbuild.yaml
cloudbuild-trigger-cd.yaml è una versione estesa del file cloudbuild.yaml. Aggiunge i passaggi seguenti, che generano il nuovo manifest Kubernetes e attivano la pipeline di distribuzione continua.
Nota: questa pipeline utilizza un semplice comando sed per eseguire il rendering del template di manifest. In realtà, potrai trarre vantaggio dall'utilizzo di uno strumento dedicato, come kustomize o skaffold, che offre un maggiore controllo sul rendering dei template di manifest.
Esegui il commit delle modifiche e inviale a Cloud Source Repositories:
cd ~/hello-cloudbuild-app
git add cloudbuild.yaml
git commit -m "Trigger CD pipeline"
git push google master
In questo modo viene attivata la pipeline di integrazione continua in Cloud Build.
Fai clic su Controlla i miei progressi per verificare l'obiettivo.
Crea il trigger per la pipeline di distribuzione continua
Attività 6: esamina la pipeline di Cloud Build
Nella console Google Cloud, vai a Cloud Build > Dashboard.
Fai clic sul trigger hello-cloudbuild-app per seguirne l'esecuzione ed esaminare i relativi log.
L'ultimo passaggio di questa pipeline esegue il push del nuovo manifest al repository hello-cloudbuild-env, attivando la pipeline di distribuzione continua.
Torna alla Dashboard principale.
Dovresti vedere una build in esecuzione o terminata di recente per il repository hello-cloudbuild-env. Puoi fare clic sulla build per seguirne l'esecuzione ed esaminare i relativi log.
Attività 7: testa la pipeline completa
La pipeline CI/CD completa è ora configurata. In questa sezione, dovrai eseguirne il test dall'inizio alla fine.
Nella console Google Cloud, vai a Kubernetes Engine > Gateway, servizi e Ingress.
Seleziona Servizi nel menu in alto
Nell'elenco dovrebbe essere presente un solo servizio chiamato hello-cloudbuild. È stato creato dalla build di distribuzione continua appena eseguita.
Fai clic sull'endpoint per il servizio hello-cloudbuild.
Dovrebbe essere visualizzato "Hello World!". In assenza di un endpoint o se visualizzi un errore del bilanciatore del carico, potresti dover attendere qualche minuto per l'inizializzazione completa del bilanciatore del carico. Se necessario, fai clic su Aggiorna per aggiornare la pagina.
In Cloud Shell, sostituisci "Hello World" con "Hello Cloud Build", sia nell'applicazione sia nel test delle unità:
cd ~/hello-cloudbuild-app
sed -i 's/Hello World/Hello Cloud Build/g' app.py
sed -i 's/Hello World/Hello Cloud Build/g' test_app.py
Esegui il commit e il push della modifica in Cloud Source Repositories:
Dopo qualche minuto, ricarica l'applicazione nel browser. A questo punto dovresti vedere "Hello Cloud Build!".
Fai clic su Controlla i miei progressi per verificare l'obiettivo.
Testa la pipeline completa
Attività 8: testa il rollback
In questa attività eseguirai il rollback alla versione dell'applicazione che visualizzava "Hello World!".
Nella console Google Cloud, vai a Cloud Build > Dashboard.
Fai clic sul link Visualizza tutto in Cronologia build per il repository hello-cloudbuild-env.
Fai clic sulla penultima delle build disponibili.
Fai clic su Riprova a eseguire la build.
Al termine della build, ricarica l'applicazione nel browser.
Ora dovresti vedere di nuovo "Hello World!".
Fai clic su Controlla i miei progressi per verificare l'obiettivo.
Testa il rollback
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.
I lab creano un progetto e risorse Google Cloud per un periodo di tempo prestabilito
I lab hanno un limite di tempo e non possono essere messi in pausa. Se termini il lab, dovrai ricominciare dall'inizio.
In alto a sinistra dello schermo, fai clic su Inizia il lab per iniziare
Utilizza la navigazione privata
Copia il nome utente e la password forniti per il lab
Fai clic su Apri console in modalità privata
Accedi alla console
Accedi utilizzando le tue credenziali del lab. L'utilizzo di altre credenziali potrebbe causare errori oppure l'addebito di costi.
Accetta i termini e salta la pagina di ripristino delle risorse
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.
In questo lab esplorerai il concetto di GitOps nel contesto delle pipeline di integrazione continua/deployment continuo (CI/CD) implementate con Cloud Build per applicazioni in esecuzione su Google Kubernetes Engine.
Durata:
Configurazione in 0 m
·
Accesso da 90 m
·
Completamento in 60 m