Développer avec Cloud Code

1. Objectifs

Au cours de cet atelier, vous allez apprendre à réaliser les opérations suivantes :

  • Découvrir les plug-ins Cloud Code
  • Déployer sur un cluster Kubernetes
  • Diffuser les journaux Kubernetes
  • Utiliser le hot reload des modifications
  • Déboguer des applications Kubernetes actives

2. Préparer votre espace de travail

Cloner l'application

Pour cloner le dépôt et l'ouvrir dans votre environnement de développement:

  1. Ouvrez l'éditeur Cloud Shell à l'adresse suivante :

https://ide.cloud.google.com

  1. Dans la fenêtre de terminal, clonez la source de l'application à l'aide de la commande suivante:

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

  1. Accédez au répertoire et définissez l'espace de travail IDE sur la racine du dépôt

cd sample-app && cloudshell workspace .

Démarrer Minikube

Dans cette section, vous allez créer, tester, déployer votre application et y accéder à l'aide d'une version locale de Kubernetes appelée Minikube.

  1. Dans le terminal, démarrez minikube en exécutant la commande suivante:

minikube start

Minikube configure un cluster Kubernetes local dans votre environnement Cloud Shell. Cette configuration prend quelques minutes. Prenez quelques instants pour passer en revue les différentes interfaces fournies par Cloud Code lors de la prochaine étape.

3. Découvrir le plug-in Cloud Code

Cloud Code fournit une compatibilité IDE pour tout le cycle de développement des applications Kubernetes et Cloud Run, de la création d'une application à partir d'un modèle existant à la surveillance des ressources de votre application déployée. Vous allez utiliser différentes commandes et vues fournies par Cloud Code. Au cours de cette étape, vous allez vous familiariser avec les interfaces de base.

Examiner les vues de l'explorateur à partir de la barre d'activité

Plusieurs panneaux d'interface utilisateur sont accessibles depuis la barre d'activité. Pour vous familiariser brièvement avec les différentes vues, cliquez sur les icônes de chaque vue.

APIs Explorer:

  • Cliquez sur l'icône Cloud Code - API Cloud "Cloud Code" dans la barre d'activité. Pour en savoir plus sur l'utilisation de cette vue, consultez la documentation.

ded1723c524edd72.png

Explorateur Secret Manager:

  • Cliquez sur la vue Secret Manager dans la barre d'activité. Pour en savoir plus sur l'utilisation de cette vue, consultez la documentation.

89f88159bcf79fa9.png

Explorateur Cloud Run:

  • Accédez à l'explorateur Cloud Run à l'aide de l'icône Cloud Run dans la barre d'activité située à gauche. Pour en savoir plus sur l'utilisation de cette vue, consultez la documentation.

a1d583fd06413011.png

Explorateur Kubernetes:

  • Accédez à l'explorateur Kubernetes à l'aide de l'icône située dans la barre d'activité à gauche. Pour en savoir plus sur l'utilisation de cette vue, consultez la documentation.

b2b8ab3975c5b0c9.png

Examiner les commandes de la barre d'état

L'indicateur situé dans la barre d'état permet d'accéder rapidement aux commandes fréquemment utilisées.

  • Recherchez l'indicateur de l'extension Cloud Code dans la barre d'état d61e85cf23a32a40.png, puis cliquez dessus.
  • Examinez les différentes commandes disponibles pour exécuter et déboguer sur Cloud Run et Kubernetes
  • Cliquez sur "Ouvrir la page d'accueil" pour accéder à des informations supplémentaires et à des exemples d'activités.

Examiner les commandes de la palette de commandes

D'autres commandes sont disponibles dans la palette de commandes. Passez en revue la liste des commandes auxquelles vous avez accès.

  • Ouvrez la palette de commandes (appuyez sur Ctrl/Cmd+Maj+P), puis saisissez Cloud Code pour filtrer les commandes disponibles.
  • Utilisez les touches fléchées pour parcourir la liste des commandes.

4. Déployer sur un cluster Kubernetes

Dans cette section, vous allez créer, tester, déployer et accéder à votre application.

Les étapes ci-dessous permettent de lancer une compilation du code source, puis d'exécuter les tests. L'exécution de la compilation et des tests prend quelques minutes. Ces tests incluent des tests unitaires et une étape de validation qui vérifie les règles définies pour l'environnement de déploiement. Cette étape de validation est déjà configurée. Elle vous permet de recevoir des avertissements en cas de problèmes de déploiement, même lorsque vous travaillez encore dans votre environnement de développement.

  1. Dans le volet situé en bas de l'éditeur Cloud Shell, sélectionnez Cloud Code d61e85cf23a32a40.png.
  2. Dans le panneau qui s'affiche en haut, sélectionnez "Exécuter sur Kubernetes". Si vous y êtes invité, sélectionnez "Yes" (Oui) pour utiliser le contexte Kubernetes minikube.
  3. Sélectionnez l'onglet "Output" (Résultat) dans le volet inférieur 4866761cb9c691e2.png pour afficher la progression et les notifications
  4. Sélectionnez "Kubernetes: Run/Debug - Détaillé". dans le menu déroulant du canal à droite c5e31091d464dbcf.png pour afficher des informations supplémentaires et les journaux diffusés en direct depuis les conteneurs.

Une fois la compilation et les tests terminés, l'onglet "Output" (Sortie) affiche le message suivant: Resource deployment/sample-app-dev status completed successfully, avec deux URL.

  1. Dans le terminal Cloud Code, pointez sur la première URL du résultat (http://localhost:8080), puis sélectionnez "Ouvrir l'aperçu sur le Web" dans l'info-bulle qui s'affiche.

La version locale de l'application s'ouvre dans votre navigateur. Cette version de l'application s'exécute dans le cluster Kubernetes de minikube.

  1. Dans votre navigateur, actualisez la page. Le nombre situé à côté de "Compteur augmente", ce qui indique que l'application répond à votre actualisation.

Dans votre navigateur, laissez cette page ouverte afin de voir l'application pendant que vous apportez des modifications dans votre environnement local.

5. Utiliser le hot reload des modifications

Dans cette section, vous allez modifier l'application et l'afficher à mesure que l'application s'exécute dans le cluster Kubernetes local. Dans l'onglet "Output" (Résultat) du canal "Run/Debug" (Exécuter/Déboguer) de Kubernetes, en plus des URL de l'application, le résultat indique également Watching for changes.. Cela signifie que le mode montre est activé. Lorsque Cloud Code est en mode de surveillance, Cloud Code détecte toutes les modifications enregistrées dans votre dépôt, et recompile et redéploie automatiquement l'application avec les dernières modifications.

  1. Dans l'éditeur Cloud Shell, accédez au fichier main.go.
  2. Dans ce fichier main.go, à la ligne 23, remplacez la couleur verte par bleu.
  3. Enregistrez le fichier.

Cloud Code détecte que la modification apportée à l'application a été enregistrée et la redéploie automatiquement. L'onglet "Output" (Résultat) indique que la mise à jour a été lancée. L'exécution de ce redéploiement prend quelques minutes.

Cette recompilation automatique est semblable au rechargement à chaud du code, qui est une fonctionnalité disponible pour certains types d'applications et certains frameworks.

  1. Une fois la compilation terminée, accédez à votre navigateur où vous avez ouvert l'application et actualisez la page.

Lorsque vous actualisez le tableau, la couleur en haut du tableau passe du bleu au vert.

Cette configuration vous permet de recharger automatiquement toutes les architectures, avec tous les composants. Lorsque vous utilisez Cloud Code et Minikube, tout ce qui s'exécute dans Kubernetes dispose de cette fonctionnalité de rechargement à chaud du code.

6. Déboguer des applications Kubernetes actives

Vous avez exécuté l'application, apporté une modification et affiché l'application en cours d'exécution. Dans cette section, vous allez déboguer l'application pour vous assurer qu'elle est prête à effectuer un nouveau commit dans le dépôt principal.

Pour cet exemple de débogage, nous allons nous concentrer sur la section de code du compteur de pages.

  1. Dans l'éditeur Cloud Shell, ouvrez le fichier main.go
  2. Définissez un point d'arrêt dans l'application en cliquant à gauche de la ligne 82 (if err != nil {)
  3. Dans le volet bleu situé en bas de l'éditeur Cloud Shell, sélectionnez Cloud Code d61e85cf23a32a40.png.
  4. Dans le panneau qui s'affiche en haut, sélectionnez "Debug on Kubernetes" (Déboguer sur Kubernetes).

Cloud Code exécute et rattache des débogueurs afin que vous puissiez accéder à l'état en mémoire de l'application, et pas seulement à son comportement visible par l'utilisateur.

  1. À la fin du processus de déploiement, une invite s'affiche en haut de votre fenêtre vous demandant de confirmer le répertoire dans le conteneur où l'application est déployée. f96e9a814edb44f4.png

Vérifiez que la valeur est définie sur /go/src/app et appuyez sur Entrée pour l'accepter

  1. Attendez la fin du déploiement du débogueur. La barre d'état devient orange et le résultat indique "Attached debugger to container "sample-app-dev-..." successfully."
  2. Dans le terminal Cloud Code, pointez sur la première URL du résultat (http://localhost:8081), puis sélectionnez "Ouvrir l'aperçu sur le Web" dans l'info-bulle qui s'affiche. Le chargement de la page ne se termine pas comme prévu.
  3. Revenez à l'IDE où apparaît maintenant le débogueur. Le code apparaît dans l'onglet, et vous voyez la pile d'appel et les variables disponibles dans cette partie du code. Vous pouvez développer la section Variables - Locales pour voir ici la valeur actuelle de la variable de compteur.
  4. Pour que la page continue à se charger, sélectionnez "Continuer". icône dans la fenêtre de débogage 8f395391c4828528.png
  5. Une fois le débogage terminé, cliquez sur le bouton d'arrêt pour arrêter chacun des threads en cours d'exécution. 81d142a9e1a2c01b.png