Sviluppo con Cloud Code

1. Obiettivi

In questo lab imparerai a:

  • Esplora i plug-in Cloud Code
  • Esegui il deployment nel cluster Kubernetes
  • Trasmetti log Kubernetes
  • Utilizza il ricaricamento a caldo delle modifiche
  • Debug delle app Kubernetes pubblicate

2. Preparazione dell'area di lavoro

Clonare l'app

Per clonare il repository e aprirlo nel tuo ambiente di sviluppo:

  1. Apri l'editor di Cloud Shell visitando il seguente URL

https://ide.cloud.google.com

  1. Nella finestra del terminale, clona il codice sorgente dell'applicazione con il seguente comando:

git clone https://github.com/viglesiasce/sample-app.git -b golden-path

  1. Passa alla directory e imposta l'area di lavoro IDE sulla directory radice del repository

cd sample-app && cloudshell workspace .

Avvia Minikube

In questa sezione, creerai, testerai, eseguirai il deployment della tua applicazione e ne eseguirai l'accesso utilizzando una versione locale di Kubernetes chiamata Minikube.

  1. Nel terminale, avvia minikube eseguendo:

minikube start

Minikube configura un cluster Kubernetes locale in Cloud Shell. Questa configurazione richiederà alcuni minuti. Durante l'avvio, dedica un momento a esaminare le varie interfacce fornite da Cloud Code nel passaggio successivo.

3. Esplorazione del plug-in di Cloud Code

Cloud Code fornisce il supporto IDE per l'intero ciclo di sviluppo delle applicazioni Kubernetes e Cloud Run, dalla creazione di un'applicazione da un modello esistente al monitoraggio delle risorse dell'app di cui hai eseguito il deployment. Utilizzerai diversi comandi e viste forniti da Cloud Code. In questo passaggio acquisirai familiarità con le interfacce di base.

Esamina le visualizzazioni degli esploratori dalla barra delle attività

Dalla barra delle attività sono accessibili più riquadri dell'interfaccia utente. Per familiarizzare brevemente con le varie visualizzazioni, fai clic sulle icone di ciascuna visualizzazione.

Explorer API:

  • Fai clic sull'icona Cloud Code - API Cloud Cloud Code src dalla barra delle attività. Ulteriori dettagli sull'utilizzo di questa vista sono disponibili nella documentazione.

ded1723c524edd72.png

Explorer di Secret Manager:

  • Fai clic sulla visualizzazione di Secret Manager }.{/ nella barra delle attività. Ulteriori dettagli sull'utilizzo di questa vista sono disponibili nella documentazione

89f88159bcf79fa9.png

Explorer di Cloud Run:

  • Passa a Explorer di Cloud Run utilizzando l'icona di Cloud Run nella barra delle attività a sinistra }.{/. Ulteriori dettagli sull'utilizzo di questa vista sono disponibili nella documentazione

a1d583fd06413011.png

Explorer Kubernetes:

  • Passa a Kubernetes Explorer utilizzando l'icona nella barra delle attività a sinistra src. Ulteriori dettagli sull'utilizzo di questa vista sono disponibili nella documentazione

b2b8ab3975c5b0c9.png

Esamina i comandi della barra di stato

È possibile accedere rapidamente ai comandi utilizzati di frequente tramite l'indicatore nella barra di stato.

  • Individua l'indicatore dell'estensione Cloud Code nella barra di stato d61e85cf23a32a40.png ⁠ e fai clic sopra.
  • Rivedi i vari comandi disponibili per l'esecuzione e il debug su CloudRun e Kubernetes
  • Fai clic su Apri pagina di benvenuto per ulteriori dettagli e attività di esempio.

Comandi della tavolozza dei comandi di revisione

Nella tavolozza dei comandi sono disponibili altri comandi. Esamina l'elenco dei comandi a cui puoi accedere.

  • Apri la tavolozza dei comandi (premi Ctrl/Cmd+Maiusc+P) e digita Cloud Code per filtrare i comandi disponibili.
  • Utilizza i tasti freccia per scorrere l'elenco di comandi.

4. Deployment nel cluster Kubernetes

In questa sezione imparerai a creare, testare, eseguire il deployment e accedere alla tua applicazione.

I passaggi riportati di seguito avviano una build del codice sorgente ed eseguono i test. L'esecuzione della build e dei test richiederà alcuni minuti. Questi test includono i test delle unità e una fase di convalida che controlla le regole impostate per l'ambiente di deployment. Questo passaggio di convalida è già configurato e garantisce che tu riceva avvisi relativi a problemi di deployment anche mentre stai utilizzando l'ambiente di sviluppo.

  1. Nel riquadro nella parte inferiore dell'editor di Cloud Shell, seleziona Cloud Code d61e85cf23a32a40.png.
  2. Seleziona Esegui su Kubernetes nel riquadro in alto. Se richiesto, seleziona Sì per utilizzare il contesto Kubernetes minikube.
  3. Seleziona la scheda Output nel riquadro inferiore 4866761cb9c691e2.png per visualizzare l'avanzamento e le notifiche
  4. Seleziona "Kubernetes: Esegui/Debug - Dettagliato" nel menu a discesa del canale verso il basso c5e31091d464dbcf.png per visualizzare ulteriori dettagli e i log trasmessi in live streaming dai container

Una volta completati la build e i test, la scheda Output mostra il messaggio Resource deployment/sample-app-dev status completed successfully e vengono elencati due URL.

  1. Nel terminale Cloud Code, passa il mouse sopra il primo URL nell'output (http://localhost:8080), quindi nella descrizione comando visualizzata seleziona Apri anteprima web.

La versione locale dell'applicazione si apre nel browser. Questa versione dell'app è in esecuzione nel cluster Kubernetes di minikube.

  1. Aggiorna la pagina nel browser. Il numero accanto a Contatore aumenta per indicare che l'app sta rispondendo all'aggiornamento.

Tieni aperta questa pagina nel browser in modo da poter visualizzare l'applicazione mentre apporti modifiche nell'ambiente locale.

5. Utilizza il ricaricamento a caldo delle modifiche

In questa sezione modificherai l'applicazione e la vedrai mentre l'app viene eseguita nel cluster Kubernetes locale. Nella scheda dell'output per il canale Kubernetes: Run/Debug, oltre agli URL dell'applicazione, l'output riporta anche il messaggio Watching for changes.. Ciò significa che è attivata la modalità di visualizzazione. Mentre Cloud Code è in modalità di visualizzazione, Cloud Code rileva eventuali modifiche salvate nel repository e ricrea automaticamente l'app e ne esegue il deployment con le ultime modifiche.

  1. Nell'editor di Cloud Shell, vai al file main.go.
  2. In questo file main.go, alla riga 23, modifica il colore da verde a blu.
  3. Salva il file.

Cloud Code rileva che la modifica all'app è stata salvata ed esegue nuovamente il deployment della modifica automaticamente. La scheda Output mostra l'aggiornamento avviato. L'esecuzione di questo nuovo deployment richiederà alcuni minuti.

Questa ricompilazione automatica è simile al ricaricamento a caldo del codice, una funzionalità disponibile per alcuni tipi di framework e tipi di applicazioni.

  1. Al termine della creazione, apri il browser su cui è aperta l'app e aggiorna la pagina.

Quando aggiorni la tabella, il colore nella parte superiore della tabella passa dal blu al verde.

Questa configurazione ti consente di ricaricare automaticamente qualsiasi architettura, con qualsiasi componente. Quando utilizzi Cloud Code e minikube, tutto ciò che viene eseguito in Kubernetes ha questa funzionalità di ricaricamento a caldo del codice.

6. Debug delle app Kubernetes pubblicate

Hai eseguito l'applicazione, apportato una modifica e visualizzato l'applicazione in esecuzione. In questa sezione eseguirai il debug dell'applicazione per accertarti che sia pronta per il commit nel repository principale.

Per questo esempio di debug, ci concentreremo sulla sezione del codice relativa al contatore di pagine.

  1. Nell'editor di Cloud Shell, apri il file main.go
  2. Imposta un punto di interruzione nell'applicazione facendo clic sul numero sinistro della riga 82 (if err != nil {)
  3. Nel riquadro blu nella parte inferiore dell'editor di Cloud Shell, seleziona Cloud Code d61e85cf23a32a40.png src.
  4. Nel riquadro visualizzato in alto, seleziona Debug su Kubernetes.

Cloud Code esegue e collega i debugger per consentirti di accedere allo stato in memoria dell'applicazione, non solo al comportamento dell'utente rivolto agli utenti.

  1. Al termine del processo di deployment, nella parte superiore della finestra verrà visualizzato un prompt che chiede di confermare la directory nel container in cui è stato eseguito il deployment dell'applicazione. f96e9a814edb44f4.png

Verifica che il valore sia impostato su /go/src/app e premi Invio per accettarlo

  1. Attendi che il debugger termini il deployment. Saprai che il completamento è stato completato quando la barra di stato diventa arancione e l'output riporta "Attached debugger to container "sample-app-dev-..." successfully."
  2. Nel terminale Cloud Code, passa il mouse sopra il primo URL nell'output (http://localhost:8081), quindi nella descrizione comando visualizzata seleziona Apri anteprima web. Il caricamento della pagina non verrà completato, come previsto.
  3. Torna all'IDE, dove è ora visualizzato il debugger. Il codice viene visualizzato nella scheda e vengono visualizzati lo stack di chiamate e le variabili disponibili in quella parte del codice. Puoi espandere Variabili - Locale per visualizzare qui il valore della variabile contatore corrente.
  4. Per consentire alla pagina di continuare il caricamento, seleziona "Continua" nella finestra di debug 8f395391c4828528.png
  5. Al termine del debug, fai clic sul pulsante Interrompi per terminare ciascuno dei thread in esecuzione. 81d142a9e1a2c01b.png