arrow_back

Creare una pipeline DevOps

Accedi Partecipa
Accedi a oltre 700 lab e corsi

Creare una pipeline DevOps

Lab 2 ore 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 creerai una pipeline di integrazione continua utilizzando GitHub, Cloud Build, trigger di build e Artifact Registry.

Architettura della pipeline di integrazione continua

Obiettivi

In questo lab imparerai a:

  • Creare un repository Git su GitHub
  • Creare un'applicazione Python semplice
  • Testare la tua applicazione web in Cloud Shell
  • Definire una build Docker
  • Gestire le immagini Docker con Cloud Build e Artifact Registry
  • Automatizzare le build con i trigger
  • Testare le modifiche alla build

Prerequisiti

Se non hai già un account GitHub, dovrai crearne uno

Suggerimenti

  1. Utilizza un account GitHub esistente, se ne hai uno. I nuovi account hanno maggiori probabilità di essere bloccati da GitHub come spam.
  2. Configura l'autenticazione a due fattori sul tuo account GitHub per ridurre il rischio che il tuo account venga contrassegnato come spam. R

Configura 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 repository Git

Innanzitutto, creerai un repository Git utilizzando GitHub. Il repository Git verrà utilizzato per archiviare il codice sorgente. Infine, creerai un trigger di build che avvia una pipeline di integrazione continua quando viene eseguito il push del codice.

  1. Fai clic su Console Cloud e nella nuova scheda fai clic su Attiva Cloud Shell (Icona di Cloud Shell).
  2. Se richiesto, fai clic su Continua.
  3. Esegui il comando seguente per installare l'interfaccia a riga di comando di GitHub:
curl -sS https://webi.sh/gh | sh
  1. Accedi all'interfaccia a riga di comando di GitHub
gh auth login

Premi Invio per accettare le opzioni predefinite. Leggi le istruzioni nello strumento dell'interfaccia a riga di comando per accedere tramite il sito web di GitHub.

  1. Verifica di aver eseguito l'accesso:
gh api user -q ".login"

Se hai eseguito correttamente l'accesso, dovresti visualizzare il tuo nome utente GitHub.

  1. Crea una variabile GITHUB_USERNAME
GITHUB_USERNAME=$(gh api user -q ".login")
  1. Verifica di aver creato la variabile di ambiente:
echo ${GITHUB_USERNAME}

Se hai creato correttamente la variabile, dovresti visualizzare il tuo nome utente GitHub.

  1. Imposta le tue credenziali Git globali:
git config --global user.name "${GITHUB_USERNAME}" git config --global user.email "${USER_EMAIL}"

Questo comando crea un utente Git per il terminale Cloud Shell.

  1. Crea un repository GitHub vuoto denominato devops-repo:
gh repo create devops-repo --private
  1. 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. Ora clona il repository vuoto appena creato. Se richiesto, fai clic su Autorizza:
gh repo clone devops-repo Nota: potrebbe essere visualizzato un avviso che indica che hai clonato un repository vuoto. Si tratta del comportamento previsto in questa fase.
  1. Il comando precedente ha creato una cartella vuota denominata devops-repo. Passa a questa cartella:
cd devops-repo

Attività 2: 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. In Cloud Shell, fai clic su Apri editor (Icona editor) per aprire l'editor di codice.
  2. Seleziona la cartella gcp-course > devops-repo nell'albero di esplorazione a sinistra.
  3. Fai clic su devops-repo.
  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 DevOps Fans."} 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 devops-repo.
  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 devops-repo (non la cartella templates), crea un Nuovo file, aggiungi quanto segue al file e salvalo come requirements.txt:

Flask>=2.0.3
  1. A questo punto hai diversi file, quindi salvali nel repository. Per prima cosa, devi aggiungere tutti i file creati al tuo repository Git locale. Fai clic su Apri terminale e in Cloud Shell inserisci questo codice:
cd ~/gcp-course/devops-repo git add --all
  1. Per eseguire il commit delle modifiche nel repository, devi identificarti. Inserisci i seguenti comandi, ma con i tuoi dati (puoi semplicemente utilizzare il tuo indirizzo Gmail o qualsiasi altro indirizzo email):
git config --global user.email "you@example.com" git config --global user.name "Your Name"
  1. A questo punto, esegui il commit delle modifiche localmente:
git commit -a -m "Initial Commit"
  1. Hai eseguito il commit delle modifiche localmente, ma non hai aggiornato il repository Git che hai creato in Cloud Source Repositories. Inserisci il comando seguente per eseguire il push delle modifiche al cloud:
git push origin main
  1. Aggiorna la pagina web di GitHub. Dovresti visualizzare i file appena creati.

Attività 3: 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. Fai clic su Apri editor ed espandi la cartella gcp-course/devops-repo. Con la cartella devops-repo selezionata, 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. All'inizio del file, inserisci quanto segue:
FROM python:3.9

Questa è l'immagine di base. Puoi scegliere tra molte immagini di base. In questo caso, ne stai utilizzando una in cui è già installato Python.

  1. Inserisci quanto segue:
WORKDIR /app COPY . .

Queste righe copiano il codice sorgente dalla cartella corrente alla cartella /app nell'immagine container.

  1. Inserisci quanto segue:
RUN pip install gunicorn RUN pip install -r requirements.txt

Questo comando utilizza pip per installare i requisiti dell'applicazione Python nel container. Gunicorn è un server web Python che verrà utilizzato per eseguire l'app web.

  1. Inserisci quanto segue:
ENV PORT=80 CMD exec gunicorn --bind :$PORT --workers 1 --threads 8 main:app

La variabile di ambiente imposta la porta su cui verrà eseguita l'applicazione (in questo caso 80). L'ultima riga esegue l'app web utilizzando il server web gunicorn.

  1. Verifica che il file completato abbia il seguente aspetto e salvalo:
FROM python:3.9 WORKDIR /app COPY . . RUN pip install gunicorn RUN pip install -r requirements.txt ENV PORT=80 CMD exec gunicorn --bind :$PORT --workers 1 --threads 8 main:app

Attività 4: gestisci le immagini Docker con Cloud Build e Artifact Registry

L'immagine Docker deve essere creata e quindi archiviata da qualche parte. Utilizzerai Cloud Build e Artifact Registry.

  1. Fai clic su Apri terminale per tornare a Cloud Shell. Assicurati di essere nella cartella giusta:
cd ~/gcp-course/devops-repo
  1. La variabile di ambiente di Cloud Shell DEVSHELL_PROJECT_ID archivia automaticamente il tuo ID progetto corrente. L'ID progetto è necessario per archiviare le immagini in Artifact Registry. Inserisci il comando seguente per visualizzare il tuo ID progetto:
echo $DEVSHELL_PROJECT_ID
  1. Per creare un repository Artifact Registry denominato "devops-repo", inserisci il seguente comando:
gcloud artifacts repositories create devops-repo \ --repository-format=docker \ --location={{{ project_0.default_region | "REGION" }}}
  1. Per configurare Docker per l'autenticazione nel repository Docker in Artifact Registry, inserisci il seguente comando:
gcloud auth configure-docker {{{ project_0.default_region | "REGION" }}}-docker.pkg.dev
  1. Per utilizzare Cloud Build per creare l'immagine e archiviarla in Artifact Registry, digita il seguente comando:
gcloud builds submit --tag {{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/$DEVSHELL_PROJECT_ID/devops-repo/devops-image:v0.1 .

Osserva la variabile di ambiente nel comando. L'immagine verrà archiviata in Artifact Registry.

  1. Nella barra del titolo della console Google Cloud, digita Artifact Registry nel campo Cerca, quindi fai clic su Artifact Registry nei risultati di ricerca.

  2. Fai clic sull'icona a forma di puntina accanto ad Artifact Registry.

  3. Fai clic su devops-repo.

  4. Fai clic su devops-image. La tua immagine dovrebbe comparire nell'elenco.

  5. Nella barra del titolo della console Google Cloud, digita Cloud Build nel campo Cerca, quindi fai clic su Cloud Build nei risultati di ricerca.

  6. Fai clic sull'icona a forma di puntina accanto a Cloud Build.

  7. La tua build dovrebbe comparire nella cronologia.

A questo punto, proverai a eseguire questa immagine da una macchina virtuale Compute Engine.

  1. Nel menu di navigazione, fai clic su Compute Engine > Istanze VM.

  2. Fai clic su Crea istanza per creare una VM.

  3. Nella pagina Crea un'istanza, specifica quanto segue, senza modificare le altre impostazioni predefinite:

Proprietà Valore
Sistema operativo e spazio di archiviazione > Container Fai clic su ESEGUI IL DEPLOYMENT DEL CONTAINER
Immagine container '-docker.pkg.dev//devops-repo/devops-image:v0.1` e fai clic su SELEZIONA
Networking > Firewall Consenti traffico HTTP
  1. Fai clic su Crea.

  2. Una volta avviata la VM, fai clic sul relativo indirizzo IP esterno. Si aprirà una scheda del browser in cui sarà visualizzato Hello DevOps Fans.

Nota: l'avvio del container Docker dovrebbe richiedere circa un minuto in seguito alla creazione della VM.
  1. Ora salverai le modifiche nel tuo repository Git. In Cloud Shell, inserisci quanto segue per assicurarti di essere nella cartella giusta e aggiungi il tuo nuovo Dockerfile al repository Git:
cd ~/gcp-course/devops-repo git add --all
  1. Esegui il commit delle modifiche localmente:
git commit -am "Added Docker Support"
  1. Esegui il push delle modifiche a Cloud Source Repositories:
git push origin main

Fai clic su Controlla i miei progressi per verificare l'obiettivo. Gestisci le immagini Docker con Cloud Build e Artifact Registry.

Attività 5: automatizza le build con i trigger

  1. Nel menu di navigazione, fai clic su Cloud Build. Si apre la pagina Cronologia di build, dove dovrebbero comparire una o più build.

  2. Fai clic su Impostazioni.

  3. Dal menu a discesa Service account, seleziona @.iam.gserviceaccount.com

  4. Attiva l'opzione Imposta come service account preferito. Imposta lo stato del servizio Cloud Build su Abilitato.

  5. Nel menu di navigazione a sinistra, vai su Trigger e fai clic su Crea trigger .

  6. Specifica quanto segue:

    Nome: devops-trigger

    Regione:

    In Repository, fai clic su Connetti nuovo repository

    • Nel riquadro Connetti repository, seleziona GitHub (App GitHub di Cloud Build) e fai clic su Continua.
    • Seleziona {il tuo nome utente github}/devops-repo come Repository, fai clic su Ok, quindi seleziona {il tuo nome utente github}/devops-repo (App GitHub).
    • Accetta i termini e le condizioni e fai clic su Connetti.

    Branch: .* (qualsiasi branch)

    Tipo di configurazione: file di configurazione di Cloud Build (yaml o json)

    Posizione: in linea

  7. Fai clic su Apri editor, sostituisci il codice con quello indicato di seguito e fai clic su Fine.

steps: - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', '{{{project_0.default_region|REGION}}}-docker.pkg.dev/{{{project_0.project_id|Project ID}}}/devops-repo/devops-image:$COMMIT_SHA', '.'] images: - '{{{project_0.default_region|REGION}}}-docker.pkg.dev/{{{project_0.project_id|Project ID}}}/devops-repo/devops-image:$COMMIT_SHA' options: logging: CLOUD_LOGGING_ONLY
  1. Per Service account, seleziona il service account che inizia con il tuo ID progetto e dall'aspetto simile a (@.iam.gserviceaccount.com) e fai clic su Crea.

  2. Per testare il trigger, fai clic su Esegui e poi su Esegui trigger.

  3. Fai clic sul link Cronologia. Dovresti vedere una build in esecuzione. Attendi il completamento della build, quindi fai clic sul link per visualizzarne i dettagli.

  4. Scorri verso il basso ed esamina i log. L'output della build qui corrisponde a quello che avresti visto se l'avessi eseguita sulla tua macchina.

  5. Torna al servizio Artifact Registry. Dovresti vedere una nuova immagine nella cartella devops-repo > devops-image.

  6. Torna all'editor di codice Cloud Shell. Individua il file main.py nella cartella gcp-course/devops-repo.

  7. Nella funzione main(), modifica la proprietà del titolo in "Hello Build Trigger." come mostrato di seguito:

@app.route("/") def main(): model = {"title": "Hello Build Trigger."} return render_template("index.html", model=model)
  1. Esegui il commit della modifica con il comando seguente:
cd ~/gcp-course/devops-repo git commit -a -m "Testing Build Trigger"
  1. Inserisci quanto segue per eseguire il push delle modifiche a Cloud Source Repositories:
git push origin main
  1. Torna alla console Cloud e al servizio Cloud Build. Dovresti vedere un'altra build in esecuzione.

Fai clic su Controlla i miei progressi per verificare l'obiettivo. Automatizza le build con i trigger.

Attività 6: testa le modifiche alla build

  1. Una volta completata, fai clic sulla build per visualizzarne i dettagli.

  2. Fai clic su Dettagli esecuzione.

  3. Fai clic su Nome immagine. Questo ti reindirizza alla pagina delle immagini in Artifact Registry.

  4. Nella parte superiore del riquadro, fai clic su Copia percorso accanto al nome dell'immagine. Ne avrai bisogno per i passaggi successivi. Il formato sarà il seguente.

{{{project_0.default_region | Lab Region }}}-docker.pkg.dev/{{{project_0.project_id|Project ID}}}/devops-demo/devops-image@sha256:8aede81a8b6ba1a90d4d808f509d05ddbb1cee60a50ebcf0cee46e1df9a54810 Nota: non utilizzare il nome dell'immagine che si trova in Digest.
  1. Vai al servizio Compute Engine. Come hai fatto in precedenza, crea una nuova macchina virtuale per testare questa immagine. Fai clic su ESEGUI IL DEPLOYMENT DEL CONTAINER e incolla l'immagine appena copiata.

  2. Seleziona Consenti traffico HTTP.

  3. Una volta creata la macchina, testa la modifica effettuando una richiesta all'indirizzo IP esterno della VM nel tuo browser. Dovrebbe essere visualizzato il tuo nuovo messaggio.

Nota: l'avvio del container Docker dovrebbe richiedere alcuni minuti in seguito alla creazione della VM.

Fai clic su Controlla i miei progressi per verificare l'obiettivo. Testa le modifiche alla build.

Complimenti!

In questo lab hai creato una pipeline di integrazione continua utilizzando GitHub, Cloud Build, trigger di build e Artifact Registry.

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.