Desarrolla con Cloud Code

1. Objetivos

En este lab, aprenderá a hacer lo siguiente:

  • Explora los complementos de Cloud Code
  • Implementar en el clúster de Kubernetes
  • Transmite registros de Kubernetes
  • Utiliza la recarga en caliente de los cambios
  • Depura apps activas de Kubernetes

2. Preparando tu espacio de trabajo

Clona la app

Para clonar el repositorio y abrirlo en tu entorno de desarrollo, sigue estos pasos:

  1. Visita la siguiente URL para abrir el editor de Cloud Shell.

https://ide.cloud.google.com

  1. En la ventana de la terminal, clona el código fuente de la aplicación con el siguiente comando:

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

  1. Cambia al directorio y configura el lugar de trabajo del IDE en la raíz del repositorio.

cd sample-app && cloudshell workspace .

Iniciar Minikube

En esta sección, compilarás, probarás, implementarás y accederás a tu aplicación con una versión local de Kubernetes llamada Minikube.

  1. En la terminal, ejecuta el siguiente comando para iniciar Minikube:

minikube start

Minikube configura un clúster de Kubernetes local en Cloud Shell. Esta configuración tardará algunos minutos. Mientras se inicia, tómate un momento para revisar las diversas interfaces que proporciona Cloud Code en el siguiente paso.

3. Explora el complemento de Cloud Code

Cloud Code proporciona compatibilidad con IDE durante todo el ciclo de desarrollo de las aplicaciones de Kubernetes y Cloud Run, desde la creación de una aplicación a partir de una plantilla existente hasta la supervisión de los recursos de tus apps implementadas. Usarás diferentes comandos y vistas que proporciona Cloud Code. En este paso, te familiarizarás con las interfaces básicas.

Vistas del explorador de opiniones desde la barra de actividades

Se puede acceder a múltiples paneles de la interfaz de usuario desde la barra de actividades. Para familiarizarte brevemente con las diferentes vistas, haz clic en los íconos de cada vista.

Explorador de APIs:

  • Haz clic en el ícono Cloud Code - APIs de Cloud de Cloud Code en la barra de actividades. Si deseas conocer más detalles sobre cómo trabajar en esta vista, consulta la documentación.

ded1723c524edd72.png

Explorador de Secret Manager:

  • Haz clic en la vista de Secret Manager Voy a hacer clic en la vista de la barra de actividades. Puede encontrar detalles adicionales sobre cómo trabajar en esta vista en la documentación.

89f88159bcf79fa9.png

Explorador de Cloud Run:

  • Navega al explorador de Cloud Run con el ícono de Cloud Run ubicado en la barra de actividades del lado izquierdo ◊. Puede encontrar detalles adicionales sobre cómo trabajar en esta vista en la documentación.

a1d583fd06413011.png

Kubernetes Explorer:

  • Navega a Kubernetes Explorer con el ícono en la barra de actividades a la izquierda Notificar. Puede encontrar detalles adicionales sobre cómo trabajar en esta vista en la documentación.

b2b8ab3975c5b0c9.png

Revisa los comandos de la barra de estado

Se puede acceder rápidamente a los comandos utilizados con frecuencia a través del indicador de la barra de estado.

  • Busca el indicador de la extensión de Cloud Code en la barra de estado d61e85cf23a32a40.png y haz clic en él.
  • Revisa los diversos comandos disponibles para ejecutar y depurar en CloudRun y Kubernetes.
  • Haz clic en Abrir página de bienvenida para obtener detalles adicionales y actividades de ejemplo.

Revisa los comandos de la paleta de comandos

Hay comandos adicionales disponibles en la paleta de comandos. Revisa la lista de comandos a los que puedes acceder.

  • Abre la paleta de comandos (presiona Ctrl/Cmd + Mayúsculas + P) y, luego, escribe Cloud Code para filtrar los comandos disponibles.
  • Usa las teclas de flecha para desplazarte por la lista de comandos.

4. Implementa en el clúster de Kubernetes

En esta sección, compilarás, probarás, implementarás y accederás a tu aplicación.

Con los siguientes pasos, se inicia una compilación del código fuente y, luego, se ejecutan las pruebas. La compilación y las pruebas tardarán unos minutos en ejecutarse. Estas pruebas incluyen pruebas de unidades y un paso de validación que comprueba las reglas establecidas para el entorno de implementación. Este paso de validación ya está configurado y garantiza que recibas advertencias de problemas de implementación, incluso mientras sigues trabajando en tu entorno de desarrollo.

  1. En el panel ubicado en la parte inferior del Editor de Cloud Shell, selecciona Cloud Code Not d61e85cf23a32a40.png.
  2. En el panel que aparece en la parte superior, selecciona Run on Kubernetes. Si se te solicita, selecciona Sí para usar el contexto de minikube Kubernetes.
  3. Selecciona la pestaña Salida en el panel inferior 4866761cb9c691e2.png para ver el progreso y las notificaciones.
  4. Selecciona “Kubernetes: Run/Debug - Detail”. En el menú desplegable de canales a la derecha c5e31091d464dbcf.png para ver detalles adicionales y registros que se transmiten en vivo desde los contenedores

Cuando finalice la compilación y las pruebas, la pestaña Salida mostrará lo siguiente: Resource deployment/sample-app-dev status completed successfully y se mostrarán dos URLs.

  1. En la terminal de Cloud Code, coloca el cursor sobre la primera URL del resultado (http://localhost:8080) y, luego, en la sugerencia de herramientas que aparece, selecciona Open Web Preview.

Se abrirá la versión local de la aplicación en tu navegador. Esta versión de la app se ejecuta en el clúster de Kubernetes de Minikube.

  1. En tu navegador, actualiza la página. El número que aparece junto a Contador aumenta, lo que indica que la app responde a tu actualización.

En tu navegador, mantén esta página abierta para que puedas ver la aplicación mientras realizas cambios en tu entorno local.

5. Utilizar la recarga en caliente de los cambios

En esta sección, realizarás un cambio en la aplicación y lo verás a medida que la app se ejecuta en el clúster local de Kubernetes. En la pestaña de salida del canal Kubernetes: Run/Debug, además de las URL de la aplicación, el resultado también dice Watching for changes.. Esto significa que el modo de observación está habilitado. Mientras Cloud Code esté en modo de supervisión, detectará los cambios guardados en tu repositorio y volverá a compilar y a implementar la app automáticamente con los cambios más recientes.

  1. En el Editor de Cloud Shell, ve al archivo main.go.
  2. En este archivo main.go, en la línea 23, cambia el color de verde a azul.
  3. Guarda el archivo.

Cloud Code detecta que se guardó el cambio en la app y vuelve a implementarlo automáticamente. En la pestaña Salida, se muestra que se inició la actualización. Esta reimplementación tardará unos minutos en ejecutarse.

Esta recompilación automática es similar a la recarga de código caliente, que es una función disponible para algunos tipos de aplicaciones y frameworks.

  1. Cuando la compilación esté lista, ve al navegador donde está abierta la app y actualiza la página.

Cuando actualices la página, el color en la parte superior de la tabla cambiará de azul a verde.

Esta configuración te brinda esta recarga automática para cualquier arquitectura, con cualquier componente. Cuando usas Cloud Code y Minikube, todo lo que se ejecuta en Kubernetes tiene esta funcionalidad para volver a cargar código activo.

6. Depuración de apps activas de Kubernetes

Ejecutaste la aplicación, realizaste un cambio y visualizaste la app en ejecución. En esta sección, depurarás la aplicación para asegurarte de que está lista para volver a confirmarse en el repositorio principal.

En este ejemplo de depuración, nos enfocaremos en la sección del código para el contador de páginas.

  1. En el editor de Cloud Shell, abre el archivo main.go.
  2. Establece un punto de interrupción en la aplicación haciendo clic en el número izquierdo de la línea 82 (si err != nil {)
  3. En el panel azul que se encuentra en la parte inferior del Editor de Cloud Shell, selecciona Cloud Code d61e85cf23a32a40.png Prioridad.
  4. En el panel que aparece en la parte superior, selecciona Debug on Kubernetes.

Cloud Code ejecuta y adjunta depuradores para que puedas acceder al estado de la aplicación en la memoria, no solo al comportamiento de la aplicación para el usuario.

  1. Al final del proceso de implementación, aparecerá un mensaje en la parte superior de la ventana que te pedirá que confirmes el directorio en el contenedor donde se implementó la aplicación. f96e9a814edb44f4.png

Verifica que el valor esté configurado como /go/src/app y presiona Intro para aceptarlo.

  1. Espera a que el depurador termine de implementarse. Sabrás que está completo cuando la barra de estado se ponga de color naranja y el resultado muestre "Attached debugger to container "sample-app-dev-..." successfully.
  2. En la terminal de Cloud Code, coloca el cursor sobre la primera URL del resultado (http://localhost:8081) y, luego, en la sugerencia de herramientas que aparece, selecciona Abrir vista previa web. La página no terminará de cargarse, lo cual es esperado.
  3. Vuelve al IDE, donde ahora aparece el depurador. El código aparecerá en la pestaña, y verás la pila de llamadas, las variables disponibles en esa parte del código. Puedes expandir Variables - Local para ver el valor actual de la variable de contador.
  4. Para permitir que la página continúe cargándose, selecciona "Continuar". ícono de la ventana de depuración 8f395391c4828528.png
  5. Cuando termines de depurar, haz clic en el botón Detener para finalizar cada uno de los subprocesos en ejecución. 81d142a9e1a2c01b.png