Comment Exécuter Google Cloud Code localement
Développer des applications cloud-native avec Google Cloud Code peut considérablement rationaliser votre flux de travail. En tant que personne profondément impliquée dans les stratégies cloud-first, j'ai observé les défis courants auxquels les développeurs sont confrontés lorsqu'ils passent des environnements locaux aux déploiements cloud. La recherche d'efficacité et d'intégration transparente nous conduit souvent à rechercher des outils capables de combler ce fossé. Google Cloud Code se distingue comme une solution puissante, conçue pour intégrer l'expérience de développement cloud directement dans votre environnement de développement intégré (EDI).
Cloud Code est une extension complète qui intègre les services Google Cloud comme Google Kubernetes Engine (GKE) et Cloud Run directement dans votre EDI. Cette intégration vous permet de créer, d'exécuter et de déboguer des applications cloud-native dans votre environnement de développement familier, éliminant ainsi le besoin de changements de contexte constants. Il prend en charge l'ensemble du cycle de vie du développement, de la création initiale à la surveillance continue, fournissant un retour d'information continu à chaque étape. Cloud Code est disponible pour VS Code, IntelliJ, et est intégré par défaut dans l'éditeur Cloud Shell Editor. .
Résumé rapide : ce qu'offre Cloud Code
- Intégration EDI : Fonctionne avec VS Code, IntelliJ et Cloud Shell Editor.
- Cycle de vie complet du développement : Prend en charge la création, l'exécution, le débogage et la surveillance des applications cloud-native.
- Support GKE et Cloud Run : S'intègre de manière transparente aux services Google Kubernetes Engine et Cloud Run.
- Émulation locale : Développez et déboguez les services Cloud Run localement avec un émulateur intégré.
- Assistance IA : S'intègre à Gemini Code Assist pour la génération de code et la résolution de problèmes.
- Gestion des secrets : Support intégré pour Google Secret Manager.
- Personnalisation : Permet des images de conteneur Cloud Shell personnalisées et la configuration de l'environnement.
Fonctionnalité de Cloud Code
Cloud Code fournit un large éventail de fonctionnalités conçues pour accélérer le développement d'applications cloud-native. Il s'intègre au Google Cloud SDK pour une authentification simplifiée et inclut des exemples exécutables et des extraits préconfigurés pour vous aider à démarrer des projets rapidement. . Bien qu'il soit principalement optimisé pour Google Cloud, il est suffisamment flexible pour fonctionner avec n'importe quelle plateforme cloud.
L'extension simplifie la création de clusters Google Cloud et améliore l'intégration d'outils essentiels tels que Cloud Source Repositories, Cloud Build et Cloud Client Libraries. Pour les développeurs travaillant avec Kubernetes, Cloud Code prend en charge les outils de conteneur en ligne de commande standard comme Minikube et kubectl. . Il permet la création et l'exécution de nouvelles applications GKE et la modification de fichiers YAML existants. De plus, la prise en charge des modules de Skaffold permet le développement et le débogage indépendants des composants d'application GKE individuels.
Cloud Code rationalise également le flux de travail de développement pour les services Cloud Run, facilitant leur création, leur déploiement et leur surveillance. Un avantage significatif est la possibilité de créer et de déboguer ces services localement à l'aide de l'émulateur Cloud Run intégré, ce qui peut faire gagner un temps de déploiement considérable. L'extension aide également à migrer les applications Linux vers des conteneurs grâce à la fonctionnalité container-diff intégrée et prend en charge la création d'images de conteneur prêtes pour la production directement à partir du code source à l'aide de Google Cloud Buildpacks, le tout sans nécessiter de Dockerfile.
La gestion des données sensibles devient simple grâce au support intégré de Secret Manager de Cloud Code. Grâce à une vue dédiée de Secret Manager, vous pouvez créer, visualiser et mettre à jour en toute sécurité des informations sensibles comme les clés API et les mots de passe. L'extension comprend également un navigateur de bibliothèque API pour découvrir et activer diverses API Cloud, ainsi que des outils intégrés pour gérer les VM Compute Engine et développer des proxys API Apigee.

Source: sethvargo.com
L'interface Secret Manager de Cloud Code offre une gestion sécurisée et centralisée des données sensibles comme les clés API et les identifiants, directement dans votre EDI.
Assistance Alimentée par l'IA
Cloud Code intègre des capacités de programmation avancées alimentées par l'IA via Gemini Code Assist Standard et Enterprise. Ces outils intelligents sont conçus pour vous aider à générer du code et à résoudre des problèmes plus efficacement, rationalisant considérablement le processus de développement. Il est important de noter que Gemini Code Assist est un plugin séparé de Cloud Code et nécessite une connexion à Google Cloud, ainsi que l'activation de permissions IAM spécifiques, pour fonctionner correctement.

Source: datacamp.com
Gemini Code Assist fournit des capacités de génération de code et de résolution de problèmes alimentées par l'IA directement dans votre environnement de développement, améliorant la productivité.
Cloud Code dans l'éditeur Cloud Shell
L'éditeur Cloud Shell, un environnement de développement et d'exploitation en ligne accessible directement via votre navigateur, offre un paramètre préconfiguré spécifiquement optimisé pour Cloud Code. Cet environnement est livré avec des utilitaires préinstallés tels que l'outil en ligne de commande gcloud et kubectl, ce qui le rend idéal pour développer, créer, déboguer et déployer des applications basées sur le cloud sans configuration supplémentaire.
Terminal Cloud Shell
Cloud Shell fournit deux outils principaux : le Terminal Cloud Shell et l'Éditeur Cloud Shell. Le terminal offre un shell complet basé sur le cloud et exécuté sur une machine Linux basée sur Debian spécifique à la session. Il comprend le Google Cloud SDK et des outils de développement essentiels comme git, kubectl, kubectx, curl, python3, et
tmux.
Votre répertoire $HOME dans Cloud Shell persiste entre les sessions, car il est stocké dans Cloud Storage. Vous pouvez lancer Cloud Shell facilement via console.cloud.google.com, où votre ID de projet GCP est automatiquement détecté. Cloud Shell prend en charge plusieurs onglets et fenêtres, et son tmux intégré assure la persistance de la session. De plus, le transfert de port automatique est disponible via la fonction Web Preview, simplifiant l'accès aux applications en cours d'exécution.
Éditeur Cloud Shell
L'Éditeur Cloud Shell est basé sur le code source ouvert
Eclipse Theia project,
offrant une expérience utilisateur similaire à VS Code. Vous pouvez y accéder via la ligne de commande (cloudshell edit), via le menu Cloud Shell, ou directement en naviguant vers l'URL ide.cloud.google.com. L'éditeur dispose d'un terminal intégré et permet une personnalisation étendue de ses paramètres. Pour les cas d'utilisation avancés, vous pouvez créer des images de conteneur Cloud Shell personnalisées pour provisionner une instance complètement spécifique à la session avec des packages supplémentaires, définissant ces images à l'aide d'un
Dockerfile.
Ces images personnalisées peuvent être construites localement, testées, puis poussées vers un Cloud Source Repository et Container Registry. Pour une flexibilité encore plus grande, l'accès SSH distant à Cloud Shell est possible depuis votre machine locale, et votre répertoire de base peut être monté localement.
Développement avec Cloud Code Localement
Cloud Code est conçu pour prendre en charge divers environnements de développement locaux. Il vous permet d'intégrer des clusters d'autres fournisseurs de cloud dans votre KubeConfig et fonctionne de manière transparente avec Docker Desktop pour les clusters locaux. Pour un fonctionnement correct, votre fichier standard ~/.kube/config doit inclure le cluster local, qui doit également être défini comme contexte actuel.
Création et Déploiement d'Applications Locales
Lors de la création d'une application à partir d'un modèle dans Cloud Code, vous sélectionnerez le type d'application (par exemple, application Kubernetes) et votre langage de programmation préféré. Les exemples d'applications suivent généralement une structure similaire, avec des configurations stockées dans .vscode et des spécifications de Pod dans kubernetes-manifests. Il est crucial d'utiliser un cluster de non-production à des fins de développement et de test. Avant l'exécution, assurez-vous que le contexte Kubernetes est correctement défini. La configuration d'exécution Cloud Code: Develop on Kubernetes offre des options pour personnaliser votre déploiement.
Intégration Minikube
Cloud Code fournit une intégration robuste avec Minikube. Vous pouvez facilement démarrer des clusters Minikube, exécuter vos applications dessus et examiner les détails de déploiement dans les sessions de développement. Les URL de transfert de port permettent un accès pratique par navigateur à votre application en cours d'exécution. Pour le débogage interactif, un terminal interactif peut être ouvert directement dans un conteneur via l'explorateur de sessions de développement. Les clusters Minikube peuvent également être mis en pause ou arrêtés au besoin.
Débogage et Journalisation
Le débogage est une fonctionnalité essentielle de Cloud Code, vous permettant de définir des points d'arrêt dans votre code pour contrôler efficacement les sessions de débogage. Une journalisation en temps réel des Pods en cours d'exécution est disponible, affichée soit dans la sortie du terminal, soit via l'Explorateur Kubernetes, fournissant des informations immédiates sur le comportement de votre application. Pour éviter d'engendrer des coûts inutiles, n'oubliez pas de supprimer les ressources dans la Google Cloud Console une fois votre développement ou votre test terminé.
Développement de Cloud Functions
Pour développer des Cloud Functions, le Functions Framework peut être installé et exécuté localement. Vous pouvez télécharger le code source d'une fonction déployée depuis Google Cloud et installer des dépendances locales dans le dossier local de la fonction. Le Functions Framework s'exécute à l'aide de commandes comme npx functions-framework --target=entryPoint pour Node.js ou functions-framework --target=entryPoint pour Python. Le entryPoint de votre fonction se trouve dans le fichier launch.json.
Test Local des Services Cloud Run
Les services Cloud Run peuvent également être testés localement à l'aide de Docker ou de Docker avec Google Cloud Access. La variable d'environnement PORT est utilisée pour spécifier le port par lequel votre application reçoit les requêtes HTTP/HTTPS. Lors de l'exécution locale avec Docker, un compte de service avec une paire de clés est nécessaire car le compte de service par défaut n'est pas disponible dans ce contexte. Les bibliothèques clientes Google Cloud peuvent être configurées pour s'authentifier auprès des services Google Cloud dans votre conteneur local. L'outil en ligne de commande gcloud beta code dev offre un moyen pratique d'émuler Cloud Run, en créant des conteneurs à partir de la source et en les reconstruisant automatiquement en cas de modifications.
Foire aux Questions sur le Développement Local avec Cloud Code
Voici quelques questions et réponses courantes concernant le développement local avec Google Cloud Code :
- Quels EDI Cloud Code prend-il en charge ?
Cloud Code est disponible pour VS Code, IntelliJ, et est intégré par défaut dans l'Éditeur Cloud Shell.
- Puis-je utiliser Cloud Code avec d'autres fournisseurs de cloud ?
Bien qu'optimisé pour Google Cloud, Cloud Code peut fonctionner avec n'importe quelle plateforme cloud. Il prend en charge l'ajout de clusters d'autres fournisseurs à votre KubeConfig.
- Ai-je besoin de Docker pour le développement local Cloud Run ?
Oui, les services Cloud Run peuvent être testés localement avec Docker ou Docker avec accès à Google Cloud. Vous pourriez avoir besoin d'un compte de service avec une paire de clés pour l'authentification.
- Comment déboguer des applications exécutées dans Kubernetes avec Cloud Code ?
Cloud Code vous permet de définir des points d'arrêt dans votre code et de visualiser les journaux en temps réel des Pods en cours d'exécution directement dans votre EDI ou via l'Explorateur Kubernetes.
- Gemini Code Assist est-il activé automatiquement avec Cloud Code ?
Non, Gemini Code Assist est un plugin séparé qui nécessite une connexion à Google Cloud et l'activation des permissions IAM pour fonctionner.
Conclusion
Google Cloud Code rationalise considérablement le processus de développement d'applications cloud-native dans un EDI. En intégrant de manière transparente les services Google Cloud, en offrant une assistance alimentée par l'IA et en fournissant des capacités robustes de développement et de débogage locaux, il vise à améliorer la productivité des développeurs et à réduire les frictions souvent associées aux déploiements cloud. Adopter Cloud Code peut conduire à une expérience de développement plus efficace et plus agréable, vous permettant de vous concentrer davantage sur l'innovation et moins sur les complexités environnementales.
Source: YouTube