Sviluppo con Cloud Code

1. Obiettivi

In questo lab imparerai a:

  • Esplora i plug-in Cloud Code
  • Esegui il deployment nel cluster Kubernetes
  • Trasmetti in streaming i log di Kubernetes
  • Utilizzare il ricaricamento rapido delle modifiche
  • Esegui il debug delle app Kubernetes live

2. Preparazione del workspace

Clona l'app

Per clonare il repository e aprirlo nell'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 l'origine dell'applicazione con il comando seguente:

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

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

cd sample-app && cloudshell workspace .

Avvia minikube

In questa sezione, crei, testi, esegui il deployment e accedi alla tua applicazione 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 richiede alcuni minuti. Mentre viene avviato, prenditi un momento per esaminare le varie interfacce fornite da Cloud Code nel passaggio successivo.

3. Esplorare il plug-in 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 è stato eseguito il deployment. Utilizzerai comandi e visualizzazioni diversi forniti da Cloud Code. In questo passaggio acquisirai familiarità con le interfacce di base.

Esaminare le visualizzazioni dell'explorer dalla barra delle attività

Dalla barra delle attività è possibile accedere a 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 - Cloud API Cloud Code  dalla barra delle attività. Ulteriori dettagli sull'utilizzo di questa visualizzazione 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 visualizzazione sono disponibili nella documentazione.

89f88159bcf79fa9.png

Cloud Run Explorer:

  • Vai a Explorer di Cloud Run utilizzando l'icona di Cloud Run nella barra delle attività a sinistra . Ulteriori dettagli su come lavorare in questa visualizzazione sono disponibili nella documentazione.

a1d583fd06413011.png

Esploratore Kubernetes:

  • Vai a Kubernetes Explorer utilizzando l'icona nella barra delle attività a sinistra . Ulteriori dettagli su come lavorare in questa visualizzazione sono disponibili nella documentazione.

b2b8ab3975c5b0c9.png

Esaminare i comandi della barra di stato

I comandi utilizzati di frequente sono accessibili rapidamente tramite l'indicatore nella barra di stato.

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

Rivedi i comandi della tavolozza dei comandi

Altri comandi sono disponibili nella tavolozza dei comandi. Esamina l'elenco dei comandi a cui puoi accedere.

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

4. Deployment nel cluster Kubernetes

In questa sezione, crei, testi, esegui il deployment e accedi alla tua applicazione.

I passaggi riportati di seguito avviano una build del codice sorgente e poi eseguono i test. L'esecuzione della build e dei test richiederà alcuni minuti. Questi test includono test unitari e un passaggio di convalida che verifica le regole impostate per l'ambiente di deployment. Questo passaggio di convalida è già configurato e ti avvisa dei problemi di deployment anche mentre lavori ancora nel tuo ambiente di sviluppo.

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

Al termine della build e dei test, nella scheda Output viene visualizzato 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) e poi seleziona Apri anteprima web nel suggerimento visualizzato.

La versione locale dell'applicazione si apre nel browser. Questa versione dell'app viene eseguita nel cluster Kubernetes di minikube.

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

Nel browser, mantieni aperta questa pagina per visualizzare l'applicazione mentre apporti modifiche nell'ambiente locale.

5. Utilizzare il ricaricamento rapido delle modifiche

In questa sezione, apporti una modifica all'applicazione e visualizzi la modifica mentre l'app viene eseguita nel cluster Kubernetes locale. Nella scheda di output del canale Kubernetes: Run/Debug, oltre agli URL dell'applicazione, l'output indica anche Watching for changes.. Ciò significa che la modalità di osservazione è abilitata. Mentre Cloud Code è in modalità di osservazione, Cloud Code rileva eventuali modifiche salvate nel repository e ricrea ed esegue nuovamente il deployment dell'app con le ultime modifiche.

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

Cloud Code rileva che la modifica all'app è stata salvata e la esegue nuovamente il deployment automaticamente. La scheda Output mostra Aggiornamento avviato. L'esecuzione di questo redeployment richiederà alcuni minuti.

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

  1. Al termine della build, vai al browser in cui hai aperto l'app e aggiorna la pagina.

Quando aggiorni, il colore nella parte superiore della tabella cambia da blu a verde.

Questa configurazione ti offre il ricaricamento automatico per qualsiasi architettura, con qualsiasi componente. Quando utilizzi Cloud Code e minikube, tutto ciò che viene eseguito in Kubernetes dispone di questa funzionalità di ricaricamento rapido del codice.

6. Eseguire il debug di app Kubernetes live

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

Per questo esempio di debug, ci concentreremo sulla sezione del codice per il 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 a sinistra della riga 82 (if err != nil {)
  3. Nel riquadro blu nella parte inferiore dell'editor di Cloud Shell, seleziona Cloud Code d61e85cf23a32a40.png .
  4. Nel riquadro visualizzato in alto, seleziona Debug su Kubernetes.

Cloud Code esegue e collega i debugger in modo da poter accedere allo stato in memoria dell'applicazione, non solo al comportamento dell'applicazione rivolto agli utenti.

  1. Al termine della procedura di deployment, nella parte superiore della finestra viene visualizzato un prompt che chiede di confermare la directory nel container in cui viene eseguito il deployment dell'applicazione. f96e9a814edb44f4.png

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

  1. Attendi il completamento del deployment del debugger. Saprai che l'operazione è completata quando la barra di stato diventa arancione e i report di output "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 seleziona Apri anteprima web nel suggerimento visualizzato. Il caricamento della pagina non viene completato, come previsto.
  3. Torna all'IDE, dove ora viene visualizzato il debugger. Il codice viene visualizzato nella scheda e vedrai lo stack di chiamate e le variabili disponibili in quella parte del codice. Puoi espandere la sezione Variabili - Locale per visualizzare il valore attuale della variabile contatore.
  4. Per consentire il caricamento della pagina, seleziona l'icona "Continua" nella finestra di debug 8f395391c4828528.png.
  5. Al termine del debug, fai clic sul pulsante di interruzione per terminare ciascuno dei thread in esecuzione. 81d142a9e1a2c01b.png