arrow_back

Build a Website on Google Cloud: Challenge Lab

Partecipa Accedi
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Build a Website on Google Cloud: Challenge Lab

Lab 1 ora 30 minuti universal_currency_alt 5 crediti show_chart Intermedio
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP319

Laboratori autogestiti Google Cloud

Introduzione

In un Challenge Lab ti vengono presentati uno scenario e un insieme di attività. Anziché seguire le istruzioni dettagliate, utilizzerai le competenze apprese dai lab nella Quest per capire come completare le attività autonomamente. Tramite un sistema di valutazione automatico (visibile in questa pagina), riceverai un feedback che ti consentirà di capire se hai completato le attività in modo corretto.

Quando partecipi a un Challenge Lab non ricevi alcuna formazione sui concetti di Google Cloud. Dovrai estendere le competenze che hai appreso, ad esempio modificare i valori predefiniti e leggere ed esaminare i messaggi di errore per correggere i tuoi errori.

Per ottenere un punteggio del 100% devi completare tutte le attività correttamente nel tempo stabilito.

Questo lab è consigliato per le studentesse e gli studenti che si sono iscritti alla Quest Build a Website on Google Cloud. Accetti la sfida?

Configurazione

Prima di fare clic sul pulsante Avvia lab

Leggi le seguenti istruzioni. I lab sono a tempo e non possono essere messi in pausa. Il timer si avvia quando fai clic su Avvia lab e ti mostra per quanto tempo avrai a disposizione le risorse Google Cloud.

Con questo lab pratico avrai la possibilità di completare le attività in prima persona, in un ambiente cloud reale e non di simulazione o demo. Riceverai delle nuove credenziali temporanee che potrai utilizzare per accedere a Google Cloud per la durata del lab.

Per completare il lab, avrai bisogno di:

  • Accesso a un browser internet standard (Chrome è il browser consigliato).
Nota: utilizza una finestra del browser in incognito o privata per eseguire questo lab. Ciò evita eventuali conflitti tra il tuo account personale e l'account Studente, che potrebbero causare addebiti aggiuntivi sul tuo account personale.
  • È ora di completare il lab: ricorda che, una volta iniziato, non puoi metterlo in pausa.
Nota: se hai già un account o un progetto Google Cloud personale, non utilizzarlo per questo lab per evitare addebiti aggiuntivi al tuo account.

Scenario della sfida

Hai appena assunto un nuovo ruolo in FancyStore, Inc.

L'attività che ti è stata assegnata consiste nel suddividere il sito web monolitico di e-commerce dell'azienda in una serie di microservizi separati logicamente. Il codice del monolite esistente risiede in un repository GitHub e tu dovrai containerizzare l'app e quindi eseguirne il refactoring.

Si presume che tu abbia le competenze e le conoscenze necessarie per svolgere queste attività, quindi non ti verrà fornita una guida passo passo.

Ti è stato chiesto di assumere la leadership di questa attività dopo che l'ultimo team, sofferente per il burnout dovuto al monolite, ha abbandonato il progetto per dedicarsi a qualcosa di più rilassante (ovvero una coltivazione di lavanda). Dovrai recuperare il codice sorgente, creare un container (uno dei coltivatori di lavanda ti ha lasciato un Dockerfile) e poi eseguirne il push in GKE.

Prima di tutto dovrai creare il monolite, eseguirne il deployment e testarlo, per assicurarti che il codice sorgente sia corretto. A quel punto, dovrai suddividere i servizi che lo compongono in specifici deployment di microservizi.

Ecco alcuni standard di FancyStore, Inc. che devi rispettare:

  • Crea il tuo cluster in .

  • Il formato del nome solitamente è team-risorsa; un'istanza potrebbe chiamarsi ad esempio fancystore-orderservice1.

  • Alloca risorse di dimensioni economicamente convenienti. I progetti sono monitorati e un utilizzo eccessivo di risorse potrebbe comportare l'interruzione del progetto contenitore.

  • Salvo diversa indicazione, usa il tipo di macchina e2-medium.

La sfida

Non appena ti siedi alla scrivania e apri il tuo nuovo laptop, ricevi la richiesta di completamento delle seguenti attività. In bocca al lupo!

Attività 1: scarica il codice del monolite e crea un container

  1. Accedi al tuo nuovo progetto e apri Cloud Shell.

  2. Per prima cosa dovrai clonare il repository Git del tuo team. Nella directory root del progetto è presente uno script setup.sh che dovrai eseguire per completare la creazione del container del monolite.

  3. Dopo avere eseguito lo script setup.sh, assicurati che Cloud Shell stia eseguendo l'ultima versione di nodeJS:

nvm install --lts

Potrai creare diversi progetti ed eseguirne il push.

  1. Esegui il push della build del monolite (comodamente a disposizione nella directory monolith) fino a Google Container Registry. Nella cartella ~/monotlith-to-microservices/monolith è presente un Dockerfile che puoi utilizzare per creare il container dell'applicazione.

  2. Dovrai eseguire Cloud Build (nella cartella del monolite) per crearlo ed eseguirne il push in GCR.

  3. Assegna all'artefatto il nome seguente:

  • GCR Repo: gcr.io/${GOOGLE_CLOUD_PROJECT}
  • Image name:
  • Image version: 1.0.0

Suggerimento:

Assicurati di inviare una build denominata con numero di versione "1.0.0".

Fai clic su Controlla i miei progressi per verificare l'obiettivo. Scarica il codice del monolite e crea un container

Attività 2: crea un cluster Kubernetes ed esegui il deployment dell'applicazione

Ora che l'immagine è stata creata e inserita nel Container Registry, occorre creare un cluster in cui eseguirne il deployment.

Ti è stato chiesto di eseguire il deployment di tutte le risorse nella zona , quindi dovrai prima di tutto creare un apposito cluster GKE. Inizia con un cluster a 3 nodi.

  1. Crea il cluster in questo modo:
  • Cluster name:

  • Regione:

  • Conteggio dei nodi: 3

Suggerimento:

Assicurati che il cluster sia denominato e che sia in esecuzione in .

Ora che hai creato un'immagine e disponi di un cluster operativo, devi eseguire il deployment dell'applicazione.

Dovrai eseguire il deployment dell'immagine che hai creato nel cluster. In questo modo l'applicazione sarà pronta all'uso, ma non sarà accessibile finché non verrà esposta al mondo esterno. Il tuo team ti ha detto che l'applicazione è in esecuzione sulla porta 8080, ma sarà necessario esporla sulla più comune porta 80.

  1. Crea ed esponi il deployment nel modo seguente:
  • Cluster name:
  • Container name:
  • Container version: 1.0.0
  • Application port: 8080
  • Externally accessible port: 80
Nota: per questo lab, l'esposizione del servizio è stata semplificata. Normalmente si userebbe un gateway API per proteggere gli endpoint pubblici. Scopri di più nella guida Best practice per i microservizi.
  1. Prendi nota dell'indirizzo IP assegnato nell'operazione di esposizione del deployment. Ora dovresti essere in grado di visitare l'indirizzo IP dal tuo browser.

Dovresti visualizzare quanto segue:

Pagina web di Fancy Store

Suggerimento:

Assicurati che il deployment sia denominato e che il servizio sia stato esposto sulla porta 80 e mappato alla porta 8080.

Fai clic su Controlla i miei progressi per verificare l'obiettivo. Crea un cluster Kubernetes ed esegui il deployment dell'applicazione

Ora che puoi creare la tua applicazione monolitica Fancy Store ed eseguirne il deployment, tutto è pronto per iniziare a suddividerla in microservizi.

Esegui la migrazione del monolite a microservizi

Ora che il sito web monolitico esistente è in esecuzione su GKE, puoi iniziare a suddividere ogni servizio in microservizi. In genere sarebbe opportuno eseguire una pianificazione per valutare quali servizi suddividere in parti più piccole, soprattutto per quanto riguarda specifiche parti dell'applicazione come il dominio aziendale.

Per le finalità di questo Challenge Lab, anticipa un po' i tempi e supponi di avere già suddiviso il monolite in una serie di microservizi: Orders, Products e Frontend. Il codice è pronto, quindi devi eseguire il deployment dei servizi.

Attività 3: crea nuovi microservizi

Ci sono 3 servizi da suddividere nei container corrispondenti. Dato che sposterai tutti i servizi in container, per ogni servizio dovrai tenere traccia delle informazioni seguenti:

  • La cartella root del servizio (in cui creerai il container)
  • Il repository in cui caricherai il container
  • Il nome e la versione dell'artefatto container

Crea una versione containerizzata dei tuoi microservizi

Di seguito è riportato un set di servizi che devono essere containerizzati.

  1. Accedi alle cartelle root di origine citate in precedenza e carica gli artefatti creati in Google Container Registry con i metadati indicati:

Microservizio Orders

Service root folder: ~/monolith-to-microservices/microservices/src/orders

GCR Repo: gcr.io/${GOOGLE_CLOUD_PROJECT}

Image name:

Image version: 1.0.0

Microservizio Products

Service root folder: ~/monolith-to-microservices/microservices/src/products

GCR Repo: gcr.io/${GOOGLE_CLOUD_PROJECT}

Image name:

Image version: 1.0.0

  1. Dopo aver containerizzato questi microservizi e aver caricato le relative immagini in GCR, devi eseguire il deployment di questi servizi ed esporli.

Suggerimento: assicurati di inviare una build denominata con versione "1.0.0" E una build denominata con versione "1.0.0".

Fai clic su Controlla i miei progressi per verificare l'obiettivo. Crea una versione containerizzata dei microservizi Orders e Products

Attività 4: esegui il deployment dei nuovi microservizi

Esegui il deployment di questi nuovi container seguendo la stessa procedura utilizzata per il monolite . Tieni presente che questi servizi rimarranno in ascolto su porte diverse, quindi prendi nota della mappatura delle porte nella tabella sottostante.

  1. Crea ed esponi i deployment nel modo seguente:

Microservizio Orders

Cluster name:

Container name:

Container version: 1.0.0

Application port: 8081

Externally accessible port: 80

Microservizio Products

Cluster name:

Container name:

Container version: 1.0.0

Application port: 8082

Externally accessible port: 80

NOTA: prendi nota degli indirizzi IP dei servizi Orders e Products dopo averli esposti; ti serviranno nei passaggi successivi.

  1. Per controllare che i deployment siano andati a buon fine e che i servizi siano stati esposti, visita gli URL seguenti nel browser:

http://ORDERS_EXTERNAL_IP/api/orders

http://PRODUCTS_EXTERNAL_IP/api/products

Ogni servizio restituirà una stringa JSON se i deployment sono andati a buon fine.

Suggerimento: assicurati che i tuoi deployment siano denominati e , nonché di vedere i servizi esposti sulla porta 80.

Fai clic su Controlla i miei progressi per verificare l'obiettivo. Esegui il deployment dei nuovi microservizi

Attività 5: configura ed esegui il deployment del microservizio Frontend

Ora che hai estratto i microservizi Orders e Products, devi configurare il servizio Frontend in modo che punti a quei microservizi ed eseguirne il deployment.

Riconfigura Frontend

  1. Usa l'editor nano per sostituire l'URL locale con l'indirizzo IP dei nuovi microservizi Products:
cd ~/monolith-to-microservices/react-app nano .env

All'apertura dell'editor, il file dovrebbe avere l'aspetto seguente:

REACT_APP_ORDERS_URL=http://localhost:8081/api/orders REACT_APP_PRODUCTS_URL=http://localhost:8082/api/products
  1. Sostituisci REACT_APP_PRODUCTS_URL con il nuovo formato durante la sostituzione con gli indirizzi IP dei microservizi Orders e Products, in modo che corrisponda a quanto segue:
REACT_APP_ORDERS_URL=http://<ORDERS_IP_ADDRESS>/api/orders REACT_APP_PRODUCTS_URL=http://<PRODUCTS_IP_ADDRESS>/api/products
  1. Premi Ctrl + O, poi Invio e infine Ctrl + X per salvare il file nell'editor nano.

  2. A questo punto, ricrea l'app frontend prima di containerizzarla:

npm run build

Attività 6: crea una versione containerizzata del microservizio Frontend

Dopo avere containerizzato i microservizi Orders e Products e averne eseguito il deployment, e dopo avere configurato il servizio Frontend in modo che punti a questi microservizi, il passaggio finale consiste nella containerizzazione e nel deployment di Frontend.

Usa Cloud Build per creare un pacchetto con i contenuti del servizio Frontend ed eseguirne il push in Google Container Registry.

  • Service root folder: ~/monolith-to-microservices/microservices/src/frontend
  • GCR Repo: gcr.io/${GOOGLE_CLOUD_PROJECT}
  • Image name:
  • Image version: 1.0.0

Il processo potrebbe richiedere alcuni minuti.

Suggerimento: assicurati di inviare una build denominata con numero di versione "1.0.0".

Fai clic su Controlla i miei progressi per verificare l'obiettivo. Crea una versione containerizzata del microservizio Frontend

Attività 7: esegui il deployment del microservizio Frontend

Per il deployment di questo container, segui la stessa procedura utilizzata per i microservizi Orders e Products.

  1. Crea ed esponi il deployment nel modo seguente:
  • Cluster name:
  • Container name:
  • Container version: 1.0.0
  • Application port: 8080
  • Externally accessible port: 80
  1. Puoi verificare che il deployment sia andato a buon fine e che i microservizi siano stati esposti correttamente usando il seguente indirizzo IP del servizio frontend nel browser:?.

Verrà visualizzata la home page Fancy Store, con i link alle pagine Products e Orders basate sui tuoi nuovi microservizi.

Fai clic su Controlla i miei progressi per verificare l'obiettivo. Esegui il deployment del microservizio Frontend

Complimenti!

Build_a_Website_on_Google_Cloud_Skill_WBG.png

Guadagna il tuo prossimo badge delle competenze

Questo self-paced lab fa parte della Quest con badge delle competenze Build a Website on Google Cloud. Il completamento di questa Quest con badge delle competenze ti permette di ottenere il badge qui sopra come riconoscimento per l'obiettivo raggiunto. Condividi il badge sul tuo CV e sulle piattaforme social e annuncia il risultato che hai raggiunto utilizzando #GoogleCloudBadge.

Questo badge delle competenze fa parte del portafoglio Modernizzazione dell'infrastruttura di Google Cloud. Continua il tuo percorso di apprendimento cercando nel catalogo tra oltre 20 altre Quest con badge delle competenze a cui puoi iscriverti.

Formazione e certificazione Google Cloud

… per utilizzare al meglio le tecnologie Google Cloud. I nostri corsi ti consentono di sviluppare competenze tecniche e best practice per aiutarti a metterti subito al passo e avanzare nel tuo percorso di apprendimento. Offriamo vari livelli di formazione, dal livello base a quello avanzato, con opzioni di corsi on demand, dal vivo e virtuali, in modo da poter scegliere il più adatto in base ai tuoi impegni. Le certificazioni ti permettono di confermare e dimostrare le tue abilità e competenze relative alle tecnologie Google Cloud.

Ultimo aggiornamento del manuale: 5 dicembre 2023

Ultimo test del lab: 5 dicembre 2023

Copyright 2024 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.