arrow_back

Implementa canalizaciones de CI/CD en Google Cloud: Lab de desafío

Acceder Unirse
Obtén acceso a más de 700 labs y cursos

Implementa canalizaciones de CI/CD en Google Cloud: Lab de desafío

Lab 1 hora 30 minutos universal_currency_alt 5 créditos show_chart Intermedio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Obtén acceso a más de 700 labs y cursos

GSP393

Logotipo de los labs de autoaprendizaje de Google Cloud

Descripción general

En un lab de desafío, se le proporcionarán una situación y un conjunto de tareas. En lugar de seguir instrucciones paso a paso, deberás utilizar las habilidades aprendidas en los labs del curso para decidir cómo completar las tareas por tu cuenta. Un sistema automatizado de puntuación (en esta página) mostrará comentarios y determinará si completaste tus tareas correctamente.

En un lab de desafío, no se explican conceptos nuevos de Google Cloud, sino que se espera que amplíes las habilidades que adquiriste, como cambiar los valores predeterminados y leer o investigar los mensajes de error para corregir sus propios errores.

Debe completar correctamente todas las tareas dentro del período establecido para obtener una puntuación del 100%.

Se recomienda este lab para estudiantes inscritos en el curso Implementa canalizaciones de CI/CD en Google Cloud. ¿Aceptas el desafío?

Temas evaluados

  • Usar Cloud Build y Artifact Registry para contenedores
  • Configurar canalizaciones de Cloud Deploy con Skaffold
  • Implementar en varios entornos con aprobaciones de promoción
  • Revertir implementaciones

Configuración

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs cuentan con un temporizador que no se puede pausar. El temporizador, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar. Se recomienda el navegador Chrome.
Nota: Usa una ventana del navegador privada o de incógnito (opción recomendada) para ejecutar el lab. Así evitarás conflictos entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab (recuerda que, una vez que comienzas un lab, no puedes pausarlo).
Nota: Usa solo la cuenta de estudiante para este lab. Si usas otra cuenta de Google Cloud, es posible que se apliquen cargos a esa cuenta.

Debes esperar a que el lab se aprovisione antes de realizar cambios en el entorno. Apenas el lab indique que está listo, estarán disponibles las partes preconfiguradas del entorno con las que necesitas trabajar.

Situación del desafío

Comenzaste a trabajar como ingeniero de la nube en Jooli Inc. La nueva gerencia decidió modernizar la empresa y cree que lo mejor es reemplazar por completo sus sistemas heredados por infraestructura administrada, y canalizaciones automatizadas de integración y entrega. Te asignaron la tarea de encontrar y probar las mejores herramientas y servicios para lograrlo.

Al final del día, la gerencia desea ver una prueba de concepto que pueda abordar todo lo siguiente:

  • Imágenes de contenedor almacenadas en un registro seguro y confiable.
  • Análisis automático de imágenes de contenedor con informes detallados sobre vulnerabilidades de seguridad.
  • Una aplicación web de prueba que se ejecute en una infraestructura administrada.
  • Una canalización de CI/CD definida como código para eliminar errores manuales.
  • Es una forma confiable, fácil y rápida de implementar código y ascenderlo a un entorno similar al de producción o revertirlo si es necesario.

Se espera que ayudes a administrar la infraestructura de nube y las herramientas de implementación en Jooli. Entre tus tareas frecuentes se encuentra el aprovisionamiento de recursos para los proyectos y la implementación de nuevos productos y servicios para garantizar que Jooli Inc. se modernice de manera eficaz y siga las prácticas recomendadas.

Se espera que tengas las habilidades y el conocimiento necesarios para realizar estas tareas, por lo que no se te proporcionarán guías paso a paso.

Estas son algunas pautas de Jooli Inc. que debes seguir:

  • Crea todos los recursos en la región , a menos que se indique lo contrario.
  • Usa la VPC predeterminada del proyecto.
  • Asigna tamaños de recursos rentables. Ten cuidado porque los proyectos se supervisan y el uso excesivo de recursos dará como resultado la finalización del proyecto que los contiene, es decir, posiblemente el tuyo. Esta es la orientación que el equipo de supervisión está dispuesto a compartir. A menos que se indique lo contrario, utiliza los tipos de máquina predeterminados.

Tu desafío

En cuanto te sientes en tu escritorio y abras tu laptop nueva, recibirás la siguiente solicitud para completar un conjunto de tareas. ¡Buena suerte!

  1. TRABAJO PREVIO: Habilita las APIs, crea clústeres de GKE y crea un repositorio de Docker en Artifact Registry.
  2. Clona el código fuente, crea la imagen y envíala a Artifact Registry.
  3. Crea una canalización de entrega, destinos y una versión.
  4. Vuelve a compilar y enviar la imagen, y etiquétala con la versión más reciente.
  5. Crea un nuevo lanzamiento con la versión más reciente.
  6. Asciende la versión más reciente al segundo clúster.
  7. Revierte los cambios al segundo clúster, modifícalo y vuelve a lanzarlo.

Tarea 1: Trabajo previo: Configura el entorno, habilita las APIs y crea clústeres

  1. Configura variables de entorno para tu ID del proyecto (esto es importante, ya que se usa en varios de los archivos de configuración que se muestran a continuación). Puedes usar los siguientes comandos:
export PROJECT_ID=$(gcloud config get-value project) export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)') export REGION={{{ project_0.default_region }}} gcloud config set compute/region $REGION
  1. Habilita los siguientes servicios en tu proyecto de Google Cloud con los siguientes comandos:
  • container.googleapis.com
  • clouddeploy.googleapis.com
  • artifactregistry.googleapis.com
  • cloudbuild.googleapis.com
gcloud services enable \ container.googleapis.com \ clouddeploy.googleapis.com \ artifactregistry.googleapis.com \ cloudbuild.googleapis.com
  1. Habilita los permisos para Kubernetes y Cloud Deploy con los siguientes comandos:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member=serviceAccount:$(gcloud projects describe $PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --role="roles/clouddeploy.jobRunner" gcloud projects add-iam-policy-binding $PROJECT_ID \ --member=serviceAccount:$(gcloud projects describe $PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --role="roles/container.developer"
  1. Crea un bucket de Cloud Storage para que Cloud Build almacene fuentes y registros.
gsutil mb -p $PROJECT_ID gs://${PROJECT_ID}_cloudbuild
  1. Crea un repositorio de artefactos.

Crea un repositorio para almacenar tus contenedores de Docker.

Asigna el nombre cicd-challenge al repositorio.

gcloud artifacts repositories create cicd-challenge \ --description="Image registry for tutorial web app" \ --repository-format=docker \ --location=$REGION
  1. Crea los clústeres de Google Kubernetes Engine.

Crea dos clústeres de GKE para etapa de pruebas y producción llamados cd-staging y cd-production. Los clústeres deben ser de una sola zona y de nodo único.

gcloud container clusters create cd-staging --node-locations={{{ project_0.default_zone }}} --num-nodes=1 --async gcloud container clusters create cd-production --node-locations={{{ project_0.default_zone }}} --num-nodes=1 --async

Tarea 2: Compila las imágenes y súbelas al repositorio

  1. Clona el repositorio para el lab en el directorio principal con los comandos que se indican a continuación:
cd ~/ git clone https://github.com/GoogleCloudPlatform/cloud-deploy-tutorials.git cd cloud-deploy-tutorials git checkout c3cae80 --quiet cd tutorials/base
  1. Crea la configuración de skaffold.yaml con el siguiente comando:
envsubst < clouddeploy-config/skaffold.yaml.template > web/skaffold.yaml cat web/skaffold.yaml

El directorio web ahora contiene el archivo de configuración skaffold.yaml, en el que se proporcionan instrucciones para que Skaffold compile una imagen de contenedor para tu aplicación.

  1. Ejecuta el comando skaffold para compilar la aplicación y, luego, implementar la imagen de contenedor en el repositorio de Artifact Registry creado anteriormente:

SUGERENCIA: Usa la ruta de acceso completa al repositorio que creaste antes.

cd web skaffold build --interactive=false \ --default-repo <INSERT YOUR ARTIFACT REPOSITORY HERE> \ --file-output artifacts.json cd .. Validar que se creó el contenedor y que se agregó al repositorio

Tarea 3: Crea la canalización de entrega

Ejecuta los siguientes comandos para copiar el archivo de plantilla de canalización:

  1. Crea el recurso de canalización de entrega con el archivo delivery-pipeline.yaml:
cp clouddeploy-config/delivery-pipeline.yaml.template clouddeploy-config/delivery-pipeline.yaml sed -i "s/targetId: staging/targetId: cd-staging/" clouddeploy-config/delivery-pipeline.yaml sed -i "s/targetId: prod/targetId: cd-production/" clouddeploy-config/delivery-pipeline.yaml sed -i "/targetId: test/d" clouddeploy-config/delivery-pipeline.yaml
  1. Establece la región de implementación con el parámetro de configuración deploy/region.
  2. Aplica la configuración de la canalización que creaste anteriormente con el comando gcloud beta deploy.
  3. Verifica que se creó la canalización de entrega con el siguiente comando:
gcloud beta deploy delivery-pipelines describe web-app

Configura los destinos de implementación

Se crearán dos destinos de canalización de entrega: uno para cada uno de los clústeres de GKE.

Asegúrate de que los clústeres estén listos

Los dos clústeres de GKE ya deberían estar en ejecución, pero es útil verificarlo.

  • Obtén el estado de los clústeres:
gcloud container clusters list --format="csv(name,status)"

Los dos clústeres deben estar en el estado RUNNING, como se indica en el resultado que figura a continuación. Si aún no están marcados como RUNNING, vuelve a ejecutar el comando anterior hasta que su estado se haya cambiado a RUNNING.

Crea un contexto para cada clúster

  • Usa los siguientes comandos para obtener las credenciales de cada clúster y crear un contexto kubectl fácil de usar para hacer referencia a los clústeres más adelante:
CONTEXTS=({INSERT YOUR TARGETS HERE}) for CONTEXT in ${CONTEXTS[@]} do gcloud container clusters get-credentials ${CONTEXT} --region ${REGION} kubectl config rename-context gke_${PROJECT_ID}_${REGION}_${CONTEXT} ${CONTEXT} done

Crea un espacio de nombres en cada clúster

  • Usa los siguientes comandos para crear un espacio de nombres de Kubernetes (app web) en cada uno de los dos clústeres:
for CONTEXT in ${CONTEXTS[@]} do kubectl --context ${CONTEXT} apply -f kubernetes-config/web-app-namespace.yaml done

Crea los destinos de la canalización de entrega

  1. Crea un archivo de definición de destino para cada uno de los destinos con los siguientes comandos (no es necesario realizar cambios):
envsubst < clouddeploy-config/target-staging.yaml.template > clouddeploy-config/target-cd-staging.yaml envsubst < clouddeploy-config/target-prod.yaml.template > clouddeploy-config/target-cd-production.yaml sed -i "s/staging/cd-staging/" clouddeploy-config/target-cd-staging.yaml sed -i "s/prod/cd-production/" clouddeploy-config/target-cd-production.yaml
  1. Aplica los archivos de destino a Cloud Deploy.

Los destinos se describen en un archivo YAML. En cada destino, se configura la información de clúster pertinente para ese destino.

Visualiza los detalles para el destino de etapa de pruebas:

cat clouddeploy-config/target-cd-staging.yaml Verificar que se crearon los destinos de Cloud Deploy

Tarea 4: Crea una versión

  1. Crea una versión con el comando gcloud beta deploy releases y los archivos skaffold y artifacts.json que creaste anteriormente.
  • Asigna el nombre web-app-001 a la versión y usa la canalización de entrega web-app.

SUGERENCIA: Tu directorio del código fuente debería ser web/

  • Verifica que tu aplicación se haya implementado en el entorno de etapa de pruebas (cd-staging) con el siguiente comando o en la consola.
gcloud beta deploy rollouts list \ --delivery-pipeline web-app \ --release web-app-001

Canalización de Cloud Deploy

Verificar el lanzamiento al entorno de etapa de pruebas

Tarea 5: Asciende tu aplicación a producción

  • Asciende tu aplicación del entorno de etapa de pruebas (cd-staging) al entorno de producción (cd-production).

SUGERENCIA: No olvides aprobar la implementación.

Verificar el lanzamiento al entorno de producción

Tarea 6: Realiza un cambio en la aplicación y vuelve a implementarla

  1. Abre el directorio cloud-deploy-tutorials/tutorials/base/web/leeroy-app/ con el editor y modifica el archivo app.go. Cambia la línea 24 para que diga lo siguiente: fmt.Fprintf(w, "leeroooooy app v2!!\n")
  2. Compila la aplicación y envíala a Artifact Registry.
  3. Crea una nueva versión en la canalización que creaste anteriormente. Asigna el nombre web-app-002 a la versión.
  4. Verificar que la nueva versión se implementó en el entorno de etapa de pruebas.
gcloud beta deploy rollouts list \ --delivery-pipeline web-app \ --release web-app-002

Tarea 7: Revierte el cambio

¡Vaya! Tus ingenieros de control de calidad encontraron un error en tu lanzamiento a etapa de pruebas, por lo que deberás revertir a la versión anterior.

  1. Usa Cloud Deploy para revertir a la versión original de la aplicación: web-app-001
  2. Verifica que la versión original se esté ejecutando.
Verificar que la reversión se ejecutó correctamente

¡Felicitaciones!

En este lab, configuraste correctamente una canalización de CI/CD con Google Cloud Deploy y Artifact Registry. Creaste una prueba de concepto que abordó todos los requisitos de la gerencia. Jooli Inc. ahora está en camino de lograr un ROI más alto con los beneficios de la modernización de aplicaciones.

Insignia de CI/CD en Google Cloud

Obtén tu próxima insignia de habilidad

Este lab es parte del curso Implementa canalizaciones de CI/CD en Google Cloud. Si completas este curso, obtendrás la insignia de habilidad que se muestra arriba como reconocimiento de tu logro. Comparte la insignia en tu currículum y tus plataformas sociales, y anuncia tu logro con el hashtag #GoogleCloudBadge.

Este curso para obtener la insignia de habilidad forma parte de la Ruta de aprendizaje de DevSecOps de Google Cloud. Continúa tu recorrido de aprendizaje aquí Ruta de aprendizaje de DevSecOps.

Próximos pasos/Más información

Capacitación y certificación de Google Cloud

Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.

Última actualización del manual: 19 de mayo de 2025

Prueba más reciente del lab: 19 de mayo de 2025

Copyright 2025 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.

Antes de comenzar

  1. Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
  2. .
  3. Los labs tienen un límite de tiempo y no tienen la función de pausa. Si finalizas el lab, deberás reiniciarlo desde el principio.
  4. En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar

Usa la navegación privada

  1. Copia el nombre de usuario y la contraseña proporcionados para el lab
  2. Haz clic en Abrir la consola en modo privado

Accede a la consola

  1. Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
  2. Acepta las condiciones y omite la página de recursos de recuperación
  3. No hagas clic en Finalizar lab, a menos que lo hayas terminado o quieras reiniciarlo, ya que se borrará tu trabajo y se quitará el proyecto

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible

¡Genial!

Nos comunicaremos contigo por correo electrónico si está disponible

Un lab a la vez

Confirma para finalizar todos los labs existentes y comenzar este

Usa la navegación privada para ejecutar el lab

Usa una ventana de navegación privada o de Incógnito para ejecutar el lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.