Wie man Google Cloud Code lokal zum Laufen bringt
Die Entwicklung von Cloud-nativen Anwendungen mit Google Cloud Code kann Ihren Workflow erheblich optimieren. Als jemand, der tief in Cloud-First-Strategien involviert ist, habe ich die gängigen Herausforderungen beobachtet, denen Entwickler beim Übergang zwischen lokalen Umgebungen und Cloud-Deployments gegenüberstehen. Das Streben nach Effizienz und nahtloser Integration führt uns oft dazu, nach Tools zu suchen, die diese Lücke schließen können. Google Cloud Code sticht als leistungsstarke Lösung hervor, die entwickelt wurde, um die Cloud-Entwicklungserfahrung direkt in Ihre integrierte Entwicklungsumgebung (IDE) zu bringen.
Cloud Code ist eine umfassende Erweiterung, die Google Cloud-Dienste wie Google Kubernetes Engine (GKE) und Cloud Run direkt in Ihre IDE integriert. Diese Integration ermöglicht es Ihnen, Cloud-native Anwendungen in Ihrer vertrauten Entwicklungsumgebung zu erstellen, auszuführen und zu debuggen, wodurch die Notwendigkeit ständiger Kontextwechsel effektiv entfällt. Es unterstützt den gesamten Entwicklungslebenszyklus, von der ersten Erstellung bis zur laufenden Überwachung, und bietet kontinuierliches Feedback in jeder Phase. Cloud Code ist für VS Code und IntelliJ verfügbar und standardmäßig in den Cloud Shell Editor. integriert.
Kurz zusammengefasst: Was Cloud Code bietet
- IDE-Integration: Funktioniert mit VS Code, IntelliJ und dem Cloud Shell Editor.
- Voller Entwicklungslebenszyklus: Unterstützt die Erstellung, Ausführung, das Debugging und die Überwachung von Cloud-nativen Anwendungen.
- GKE- und Cloud Run-Unterstützung: Nahtlose Integration mit Google Kubernetes Engine und Cloud Run-Diensten.
- Lokale Emulation: Entwickeln und debuggen Sie Cloud Run-Dienste lokal mit einem integrierten Emulator.
- KI-Assistenz: Integriert mit Gemini Code Assist für Codegenerierung und Problemlösung.
- Geheimnisverwaltung (Secret Management): Integrierte Unterstützung für Google Secret Manager.
- Anpassung: Ermöglicht benutzerdefinierte Cloud Shell-Container-Images und Umgebungskonfiguration.
Cloud Code Funktionalität
Cloud Code bietet eine breite Palette von Funktionen, die darauf ausgelegt sind, die Entwicklung Cloud-nativer Anwendungen zu beschleunigen. Es integriert sich in das Google Cloud SDK zur optimierten Authentifizierung und enthält ausführbare Beispiele und vorkonfigurierte Snippets, um Ihnen den Projektstart zu erleichtern. . Obwohl es hauptsächlich für Google Cloud optimiert ist, ist es flexibel genug, um mit jeder Cloud-Plattform zu funktionieren.
Die Erweiterung vereinfacht die Erstellung von Google Cloud-Clustern und verbessert die Integration wesentlicher Tools wie Cloud Source Repositories, Cloud Build und Cloud Client Libraries. Für Entwickler, die mit Kubernetes arbeiten, unterstützt Cloud Code Standard-Befehlszeilen-Container-Tools wie Minikube und kubectl. . Es ermöglicht die Erstellung und Ausführung neuer GKE-Anwendungen sowie die Modifizierung bestehender YAML-Dateien. Darüber hinaus ermöglicht die Modulunterstützung von Skaffold die unabhängige Entwicklung und das Debugging einzelner GKE-Anwendungskomponenten.
Cloud Code optimiert auch den Entwicklungs-Workflow für Cloud Run-Dienste, wodurch deren Erstellung, Bereitstellung und Überwachung vereinfacht wird. Ein wesentlicher Vorteil ist die Möglichkeit, diese Dienste lokal mithilfe des integrierten Cloud Run-Emulators zu erstellen und zu debuggen, was erhebliche Bereitstellungszeit einsparen kann. Die Erweiterung unterstützt ferner die Migration von Linux-Anwendungen in Container durch die integrierte container-diff-Funktionalität und unterstützt das Erstellen produktionsreifer Container-Images direkt aus dem Quellcode mithilfe von Google Cloud Buildpacks – alles ohne die Notwendigkeit eines Dockerfiles.
Die Verwaltung sensibler Daten wird durch die integrierte Secret Manager-Unterstützung von Cloud Code unkompliziert. Über eine dedizierte Secret Manager-Ansicht können Sie sensible Informationen wie API-Schlüssel und Passwörter sicher erstellen, anzeigen und aktualisieren. Die Erweiterung enthält auch einen API Library Browser zum Entdecken und Aktivieren verschiedener Cloud APIs sowie integrierte Tools zur Verwaltung von Compute Engine VMs und zur Entwicklung von Apigee API-Proxies.

Quelle: sethvargo.com
Die Secret Manager-Schnittstelle von Cloud Code bietet eine sichere, zentralisierte Verwaltung sensibler Daten wie API-Schlüssel und Anmeldeinformationen direkt in Ihrer IDE.
KI-gestützte Assistenz
Cloud Code integriert erweiterte KI-gestützte Programmierfunktionen durch Gemini Code Assist Standard und Enterprise. Diese intelligenten Tools sind darauf ausgelegt, Ihnen bei der Codegenerierung und der effizienteren Lösung von Problemen zu helfen, wodurch der Entwicklungsprozess erheblich optimiert wird. Es ist wichtig zu beachten, dass Gemini Code Assist ein separates Plugin von Cloud Code ist und eine Verbindung zu Google Cloud sowie die Aktivierung spezifischer IAM-Berechtigungen erfordert, um ordnungsgemäß zu funktionieren.

Quelle: datacamp.com
Gemini Code Assist bietet KI-gestützte Codegenerierung und Problemlösungsfunktionen direkt in Ihrer Entwicklungsumgebung und steigert so die Produktivität.
Cloud Code im Cloud Shell Editor
Der Cloud Shell Editor, eine Online-Entwicklungs- und Betriebsumgebung, die direkt über Ihren Browser zugänglich ist, bietet eine vorkonfigurierte Einstellung, die speziell für Cloud Code optimiert ist. Diese Umgebung wird mit vorinstallierten Dienstprogrammen wie dem gcloud Befehlszeilen-Tool und kubectl geliefert, wodurch sie sich ideal für die Entwicklung, Erstellung, das Debugging und die Bereitstellung von Cloud-basierten Anwendungen ohne zusätzliche Einrichtung eignet.
Cloud Shell Terminal
Cloud Shell bietet zwei primäre Tools: das Cloud Shell Terminal und den Cloud Shell Editor. Das Terminal bietet eine voll funktionsfähige, Cloud-basierte Shell, die auf einer sitzungsspezifischen, Debian-basierten Linux-Maschine läuft. Es enthält das Google Cloud SDK und wesentliche Entwickler-Tools wie git, kubectl, kubectx, curl, python3 und
tmux.
Ihr $HOME-Verzeichnis in Cloud Shell bleibt über Sitzungen hinweg bestehen, da es in Cloud Storage gespeichert wird. Sie können Cloud Shell bequem über console.cloud.google.com starten, wo Ihre GCP-Projekt-ID automatisch erkannt wird. Cloud Shell unterstützt mehrere Registerkarten und Fenster, und das integrierte tmux gewährleistet die Persistenz der Sitzung. Zusätzlich ist die automatische Portweiterleitung über die Web-Vorschausteuermechanismen verfügbar, was den Zugriff auf laufende Anwendungen vereinfacht.
Cloud Shell Editor
Der Cloud Shell Editor basiert auf dem Open-Source-Projekt
Eclipse Theia project,
, das eine Benutzererfahrung ähnlich VS Code bietet. Sie können darauf über die Befehlszeile (cloudshell edit), über das Cloud Shell-Menü oder direkt über die URL ide.cloud.google.com zugreifen. Der Editor verfügt über ein integriertes Terminal und ermöglicht eine umfassende Anpassung seiner Einstellungen. Für erweiterte Anwendungsfälle können Sie benutzerdefinierte Cloud Shell-Container-Images erstellen, um eine vollständig sitzungsspezifische Instanz mit zusätzlichen Paketen bereitzustellen, indem Sie diese Images mithilfe einer cloudshell.yaml definieren.
Dockerfile.
Diese benutzerdefinierten Images können lokal erstellt, getestet und dann in ein Cloud Source Repository und eine Container Registry übertragen werden. Für noch größere Flexibilität ist ein Remote-SSH-Zugriff auf Cloud Shell von Ihrem lokalen Rechner aus möglich, und Ihr Basisverzeichnis kann lokal gemountet werden.
Lokale Entwicklung mit Cloud Code
Cloud Code ist darauf ausgelegt, verschiedene lokale Entwicklungsumgebungen zu unterstützen. Es ermöglicht Ihnen, Cluster von anderen Cloud-Anbietern in Ihre KubeConfig zu integrieren und arbeitet nahtlos mit Docker Desktop für lokale Cluster zusammen. Für eine ordnungsgemäße Funktion muss Ihre Standard-Datei ~/.kube/config den lokalen Cluster enthalten, der auch als der aktuelle Kontext festgelegt werden muss.
Lokale Anwendungsentwicklung und Bereitstellung
Beim Erstellen einer Anwendung aus einer Vorlage in Cloud Code wählen Sie den Anwendungstyp (z. B. Kubernetes-Anwendung) und Ihre bevorzugte Programmiersprache aus. Beispielanwendungen folgen in der Regel einer ähnlichen Struktur, wobei Konfigurationen in .vscode und Pod-Spezifikationen in kubernetes-manifests gespeichert sind. Es ist entscheidend, für Entwicklungs- und Testzwecke einen Nicht-Produktions-Cluster zu verwenden. Stellen Sie vor der Ausführung sicher, dass der Kubernetes-Kontext korrekt festgelegt ist. Die Ausführungskonfiguration Cloud Code: Develop on Kubernetes bietet Optionen zur Anpassung Ihrer Bereitstellung.
Minikube-Integration
Cloud Code bietet eine robuste Integration mit Minikube. Sie können ganz einfach Minikube-Cluster starten, Ihre Anwendungen darauf ausführen und Bereitstellungsdetails innerhalb der Entwicklungssitzungen überprüfen. Port-Forward-URLs ermöglichen einen bequemen Browserzugriff auf Ihre laufende Anwendung. Für interaktives Debugging kann über den Development Sessions Explorer direkt ein interaktives Terminal in einem Container geöffnet werden. Minikube-Cluster können bei Bedarf auch pausiert oder gestoppt werden.
Debugging und Logging
Debugging ist eine Kernfunktion von Cloud Code, die es Ihnen ermöglicht, Breakpoints in Ihrem Code zu setzen, um Debugging-Sitzungen effektiv zu steuern. Echtzeit-Logging von laufenden Pods ist verfügbar und wird entweder in der Terminalausgabe oder über den Kubernetes Explorer angezeigt, was sofortige Einblicke in das Verhalten Ihrer Anwendung bietet. Um unnötige Kosten zu vermeiden, denken Sie daran, Ressourcen in der Google Cloud Console zu löschen, sobald Ihre Entwicklung oder Ihr Test abgeschlossen ist.
Cloud Functions Entwicklung
Für die Entwicklung von Cloud Functions kann das Functions Framework lokal installiert und ausgeführt werden. Sie können den Quellcode einer bereitgestellten Funktion von Google Cloud herunterladen und lokale Abhängigkeiten im lokalen Ordner der Funktion installieren. Das Functions Framework wird mit Befehlen wie npx functions-framework --target=entryPoint für Node.js oder functions-framework --target=entryPoint für Python ausgeführt. Der entryPoint für Ihre Funktion ist in der Datei launch.json zu finden.
Lokales Testen von Cloud Run Services
Cloud Run Services können auch lokal mit Docker oder Docker mit Google Cloud Access getestet werden. Die Umgebungsvariable PORT wird verwendet, um den Port anzugeben, über den Ihre Anwendung HTTP/HTTPS-Anfragen empfängt. Beim lokalen Ausführen mit Docker ist ein Dienstkonto mit einem Schlüsselpaar erforderlich, da das Standard-Dienstkonto in diesem Kontext nicht verfügbar ist. Google Cloud Client Libraries können so konfiguriert werden, dass sie sich innerhalb Ihres lokalen Containers bei Google Cloud-Diensten authentifizieren. Das Befehlszeilen-Tool gcloud beta code dev bietet eine bequeme Möglichkeit, Cloud Run zu emulieren, indem Container aus dem Quellcode erstellt und bei Änderungen automatisch neu erstellt werden.
Häufig gestellte Fragen zur lokalen Entwicklung mit Cloud Code
Hier sind einige häufige Fragen und Antworten zur lokalen Entwicklung mit Google Cloud Code:
- Welche IDEs unterstützt Cloud Code?
Cloud Code ist für VS Code und IntelliJ verfügbar und standardmäßig in den Cloud Shell Editor integriert.
- Kann ich Cloud Code mit anderen Cloud-Anbietern verwenden?
Obwohl für Google Cloud optimiert, kann Cloud Code mit jeder Cloud-Plattform funktionieren. Es unterstützt das Hinzufügen von Clustern anderer Anbieter zu Ihrer KubeConfig.
- Benötige ich Docker für die lokale Cloud Run-Entwicklung?
Ja, Cloud Run-Dienste können lokal mit Docker oder Docker mit Google Cloud Access getestet werden. Möglicherweise benötigen Sie ein Dienstkonto mit einem Schlüsselpaar zur Authentifizierung.
- Wie debugge ich Anwendungen, die in Kubernetes mit Cloud Code ausgeführt werden?
Cloud Code ermöglicht es Ihnen, Breakpoints in Ihrem Code zu setzen und Echtzeit-Logs von laufenden Pods direkt in Ihrer IDE oder über den Kubernetes Explorer anzuzeigen.
- Ist Gemini Code Assist automatisch mit Cloud Code aktiviert?
Nein, Gemini Code Assist ist ein separates Plugin, das eine Verbindung zu Google Cloud und die Aktivierung von IAM-Berechtigungen erfordert, um zu funktionieren.
Fazit
Google Cloud Code optimiert den Prozess der Entwicklung Cloud-nativer Anwendungen innerhalb einer IDE erheblich. Durch die nahtlose Integration von Google Cloud-Diensten, KI-gestützter Assistenz und robusten lokalen Entwicklungs- und Debugging-Funktionen zielt es darauf ab, die Produktivität der Entwickler zu steigern und die Reibung zu reduzieren, die oft mit Cloud-Bereitstellungen verbunden ist. Die Nutzung von Cloud Code kann zu einer effizienteren und angenehmeren Entwicklungserfahrung führen, wodurch Sie sich mehr auf Innovation und weniger auf Umgebungskomplexitäten konzentrieren können.
Quelle: YouTube