Mit Cloud Code entwickeln

1. Zielsetzungen

Aufgaben in diesem Lab:

  • Cloud Code-Plug-ins entdecken
  • In Kubernetes-Cluster bereitstellen
  • Kubernetes-Logs streamen
  • Heißes Neuladen von Änderungen nutzen
  • Fehler in Live-Kubernetes-Anwendungen beheben

2. Arbeitsbereich wird vorbereitet

App klonen

So klonen Sie das Repository und öffnen es in Ihrer Entwicklungsumgebung:

  1. Öffnen Sie den Cloud Shell-Editor. Rufen Sie dazu die folgende URL auf

https://ide.cloud.google.com

  1. Klonen Sie im Terminalfenster die Anwendungsquelle mit dem folgenden Befehl:

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

  1. Wechseln Sie zum Verzeichnis und legen Sie den IDE-Arbeitsbereich auf das Repository-Stammverzeichnis fest.

cd sample-app && cloudshell workspace .

Minikube starten

In diesem Abschnitt erstellen, testen, bereitstellen und greifen Sie auf Ihre Anwendung mit der lokalen Version von Kubernetes namens Minikube zu.

  1. Starten Sie Minikube im Terminal mit dem folgenden Befehl:

minikube start

Minikube richtet einen lokalen Kubernetes-Cluster in Cloud Shell ein. Diese Einrichtung dauert einige Minuten. Nehmen Sie sich zu Beginn einen Moment Zeit, um sich im nächsten Schritt die verschiedenen von Cloud Code bereitgestellten Schnittstellen anzusehen.

3. Cloud Code-Plug-in kennenlernen

Cloud Code bietet IDE-Unterstützung für den gesamten Entwicklungszyklus von Kubernetes- und Cloud Run-Anwendungen, vom Erstellen einer Anwendung aus einer vorhandenen Vorlage bis zum Überwachen der Ressourcen Ihrer bereitgestellten Anwendung. Dabei verwenden Sie verschiedene Befehle und Ansichten von Cloud Code. In diesem Schritt machen Sie sich mit den grundlegenden Benutzeroberflächen vertraut.

Entdeckeransichten über die Aktivitätsleiste ansehen

Über die Aktivitätsleiste können Sie auf mehrere Bereiche der Benutzeroberfläche zugreifen. Klicken Sie auf die Symbole der einzelnen Ansichten, um sich kurz mit den verschiedenen Ansichten vertraut zu machen.

API Explorer:

  • Klicken Sie in der Aktivitätsleiste auf das Symbol "Cloud Code – Cloud APIs" Cloud Code . Weitere Informationen zum Arbeiten in dieser Ansicht finden Sie in der Dokumentation.

ded1723c524edd72.png

Secret Manager-Explorer:

  • Klicken Sie in der Aktivitätsleiste auf die Ansicht „Secret Manager“ . Weitere Informationen zum Arbeiten in dieser Ansicht finden Sie in der Dokumentation

89f88159bcf79fa9.png

Cloud Run Explorer:

  • Rufen Sie Cloud Run Explorer über das Cloud Run-Symbol links in der Aktivitätsleiste auf. Weitere Informationen zum Arbeiten in dieser Ansicht finden Sie in der Dokumentation

a1d583fd06413011.png

Kubernetes Explorer:

  • Rufen Sie den Kubernetes Explorer über das Symbol links in der Aktivitätsleiste auf. Weitere Informationen zum Arbeiten in dieser Ansicht finden Sie in der Dokumentation

b2b8ab3975c5b0c9.png

Befehle in der Statusleiste prüfen

Auf häufig verwendete Befehle kann schnell über die Anzeige in der Statusleiste zugegriffen werden.

  • Klicken Sie in der Statusleiste auf die Anzeige der Cloud Code-Erweiterung d61e85cf23a32a40.png.
  • Sehen Sie sich die verschiedenen Befehle an, die in Cloud Run und Kubernetes ausgeführt werden und Fehler beheben können
  • Klicken Sie auf „Willkommensseite öffnen“, um weitere Details und Beispielaktivitäten aufzurufen.

Befehle der Befehlspalette überprüfen

Zusätzliche Befehle sind in der Befehlspalette verfügbar. Sehen Sie sich die Liste der Befehle an, auf die Sie zugreifen können.

  • Öffnen Sie die Befehlspalette (Strg/Cmd+Umschalt+P) und geben Sie dann Cloud Code ein, um die verfügbaren Befehle zu filtern.
  • Verwenden Sie die Pfeiltasten, um durch die Liste der Befehle zu blättern.

4. In Kubernetes-Cluster bereitstellen

In diesem Abschnitt erstellen und testen Sie Ihre Anwendung, stellen Sie bereit und greifen darauf zu.

Mit den folgenden Schritten starten Sie einen Build des Quellcodes und führen dann die Tests aus. Die Ausführung des Builds und der Tests dauert einige Minuten. Diese Tests umfassen Einheitentests und einen Validierungsschritt, mit dem die für die Bereitstellungsumgebung festgelegten Regeln geprüft werden. Dieser Validierungsschritt ist bereits konfiguriert und stellt sicher, dass Sie vor Bereitstellungsproblemen eine Warnung erhalten, auch wenn Sie noch in der Entwicklungsumgebung arbeiten.

  1. Wählen Sie unten im Cloud Shell-Editor den Bereich „Cloud Code“ d61e85cf23a32a40.png aus.
  2. Wählen Sie im daraufhin angezeigten Steuerfeld Run on Kubernetes aus. Wenn Sie dazu aufgefordert werden, wählen Sie „Ja“ aus, um den Kubernetes-Kontext „minikube“ zu verwenden.
  3. Wähle im unteren Bereich den Tab „Output“ (Ausgabe) 4866761cb9c691e2.png aus, um den Fortschritt und Benachrichtigungen anzusehen.
  4. Wählen Sie „Kubernetes: Run/Debug – Detail“ aus. im Drop-down-Menü für den Kanal (c5e31091d464dbcf.png), um zusätzliche Details und Logs aufzurufen, die live aus den Containern gestreamt werden

Wenn der Build und die Tests abgeschlossen sind, wird auf dem Tab „Ausgabe“ Resource deployment/sample-app-dev status completed successfully angezeigt und es werden zwei URLs aufgeführt.

  1. Bewegen Sie den Mauszeiger im Cloud Code-Terminal auf die erste URL in der Ausgabe (http://localhost:8080) und wählen Sie dann in der angezeigten Kurzinfo „Webvorschau öffnen“ aus.

Die lokale Version der Anwendung wird in Ihrem Browser geöffnet. Diese Version der Anwendung wird im Kubernetes-Cluster von Minikube ausgeführt.

  1. Aktualisieren Sie die Seite in Ihrem Browser. Die Zahl neben dem Zähler erhöht sich und zeigt an, dass die App auf deine Aktualisierung reagiert.

Lassen Sie diese Seite in Ihrem Browser geöffnet, damit Sie die Anwendung sehen können, während Sie Änderungen in Ihrer lokalen Umgebung vornehmen.

5. Heißes Neuladen von Änderungen nutzen

In diesem Abschnitt nehmen Sie eine Änderung an der Anwendung vor und sehen sich die Änderung an, während die Anwendung im lokalen Kubernetes-Cluster ausgeführt wird. Auf dem Tab „Ausgabe“ für den Kanal „Kubernetes: Run/Debug“ wird neben den Anwendungs-URLs auch Watching for changes. angezeigt. Das bedeutet, dass der Überwachungsmodus aktiviert ist. Während sich Cloud Code im Überwachungsmodus befindet, erkennt Cloud Code alle gespeicherten Änderungen in Ihrem Repository und erstellt die Anwendung automatisch neu und stellt sie mit den letzten Änderungen noch einmal bereit.

  1. Rufen Sie im Cloud Shell-Editor die Datei "main.go" auf.
  2. Ändern Sie in dieser Datei „main.go“ in Zeile 23 die Farbe von Grün in Blau.
  3. Speichern Sie die Datei.

Cloud Code erkennt, dass die Änderung an der Anwendung gespeichert wurde, und stellt die Änderung automatisch noch einmal bereit. Auf dem Tab „Output“ (Ausgabe) wird „Update initiiert“ angezeigt. Die erneute Bereitstellung dauert einige Minuten.

Diese automatische Neuerstellung ähnelt dem Hot-Code-Neuladen, einer Funktion, die für einige Anwendungstypen und Frameworks verfügbar ist.

  1. Wenn der Build fertig ist, öffnen Sie den Browser, in dem die App geöffnet ist, und aktualisieren Sie die Seite.

Wenn Sie die Tabelle aktualisieren, ändert sich die Farbe oben in der Tabelle von Blau zu Grün.

Bei dieser Konfiguration erfolgt die automatische Aktualisierung für jede Architektur mit allen Komponenten. Wenn Sie Cloud Code und Minikube verwenden, bietet alles, was in Kubernetes ausgeführt wird, diese Funktion zum erneuten Laden von Code.

6. Fehler in Live-Kubernetes-Anwendungen beheben

Sie haben die Anwendung ausgeführt, eine Änderung vorgenommen und sich die ausgeführte Anwendung angesehen. In diesem Abschnitt beheben Sie Fehler in der Anwendung, um sicher zu sein, dass sie bereit für den Commit im Haupt-Repository ist.

In diesem Beispiel zur Fehlerbehebung konzentrieren wir uns auf den Codeabschnitt für den Seitenzähler.

  1. Öffnen Sie im Cloud Shell-Editor die Datei „main.go“.
  2. Setzen Sie in der Anwendung einen Breakpoint, indem Sie auf die linke Zahl in Zeile 82 klicken (wenn err != nil {)
  3. Wählen Sie unten im Cloud Shell-Editor im blauen Bereich „Cloud Code“ d61e85cf23a32a40.png aus.
  4. Wählen Sie im oberen Bereich die Option „Debug on Kubernetes“ aus.

Cloud Code führt Debugger aus und fügt sie an, sodass Sie auf den In-Memory-Status der Anwendung und nicht nur auf das Verhalten der Anwendung für den Nutzer zugreifen können.

  1. Am Ende des Bereitstellungsprozesses wird oben im Fenster eine Aufforderung angezeigt, das Verzeichnis im Container zu bestätigen, in dem die Anwendung bereitgestellt ist. f96e9a814edb44f4.png

Prüfen Sie, ob der Wert auf „/go/src/app“ festgelegt ist, und drücken Sie die Eingabetaste, um den Wert zu übernehmen

  1. Warten Sie, bis die Bereitstellung des Debuggers abgeschlossen ist. Der Vorgang ist abgeschlossen, wenn die Statusleiste orange färbt und die Ausgabe "Attached debugger to container "sample-app-dev-..." successfully anzeigt.
  2. Bewegen Sie den Mauszeiger im Cloud Code-Terminal auf die erste URL in der Ausgabe (http://localhost:8081) und wählen Sie in der angezeigten Kurzinfo „Webvorschau öffnen“ aus. Die Seite wird nicht vollständig geladen, was erwartet wird.
  3. Wechseln Sie zurück zur IDE, in der der Debugger jetzt angezeigt wird. Auf dem Tab wird Code angezeigt und Sie sehen den Aufrufstack und die Variablen, die an diesem Teil des Codes verfügbar sind. Erweitern Sie den Bereich Variablen - Lokal, um hier den aktuellen Wert der Zählervariablen zu sehen.
  4. Wählen Sie „Weiter“ aus, damit die Seite weiter geladen werden kann. Symbol im Debugging-Fenster 8f395391c4828528.png
  5. Wenn Sie mit der Fehlerbehebung fertig sind, klicken Sie auf die Schaltfläche „Stopp“, um alle laufenden Threads zu beenden. 81d142a9e1a2c01b.png