Puntos de control
Create the lab resources
/ 20
Create the Cloud Build Triggers
/ 20
Deploy the first versions of the application
/ 20
Deploy the second versions of the application
/ 20
Roll back the production deployment
/ 20
Implement DevOps Workflows in Google Cloud: Lab de desafío
- GSP330
- Descripción general
- Situación del desafío
- Tarea 1. Crea los recursos del lab
- Tarea 2: Crea un repositorio en Cloud Source Repositories
- Tarea 3: Crea los activadores de Cloud Build
- Tarea 4: Implementa las primeras versiones de la aplicación
- Tarea 5: Implementa las segundas versiones de la aplicación
- Tarea 6: Revierte la implementación de producción
- ¡Felicitaciones!
GSP330
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 a los estudiantes inscritos en el curso Implement DevOps Workflows in Google Cloud. ¿Aceptas el desafío?
Antes de hacer clic en el botón Comenzar lab
Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, 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)
- Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Situación del desafío
Luego de tu reciente contratación como ingeniero DevOps para Cymbal Superstore hace unos meses, aprendiste los pormenores de la forma en que la empresa opera su sitio web de comercio electrónico. Específicamente, el equipo de DevOps está trabajando en una canalización de CI/CD a gran escala en la que quiere contar contigo para la compilación. De este modo, la empresa puede ayudar a los desarrolladores a automatizar tareas, colaborar de forma más eficaz con otros equipos y lanzar software con más frecuencia y confiabilidad. Tu experiencia con Cloud Source Repositories, Artifact Registry, Docker y Cloud Build será de gran ayuda, ya que Cymbal Superstore desea usar todos los servicios nativos de Google Cloud para su canalización.
Antes de comenzar este proyecto, el equipo de DevOps desea que demuestres tus nuevas habilidades. Como parte de esta demostración, tienen una lista de tareas que les gustaría que realizaras durante un período determinado en un entorno de zona de pruebas.
Tu desafío
Tus tareas incluyen lo siguiente:
- Crear un clúster de GKE basado en un conjunto de parámetros de configuración proporcionados
- Crear un repositorio de código fuente de Google para alojar el código de tu aplicación de Go
- Crear activadores de Cloud Build que implementen una aplicación de desarrollo y producción
- Enviar actualizaciones a la app y crear nuevas compilaciones
- Revertir la aplicación de producción a una versión anterior
En general, vas a crear una canalización de CI/CD simple con Cloud Source Repositories, Artifact Registry y Cloud Build.
Tarea 1. Crea los recursos del lab
En esta sección, inicializarás tu proyecto de Google Cloud para el entorno de demostración. Habilita las APIs requeridas, configura Git en Cloud Shell, crea un repositorio de Docker de Artifact Registry y crea un clúster de GKE en el que ejecutarás tus aplicaciones de producción y desarrollo.
- Ejecuta el siguiente comando para habilitar las APIs de GKE, Cloud Build y Cloud Source Repositories:
- Agrega el rol de desarrollador de Kubernetes para la cuenta de servicio de Cloud Build:
- Ejecuta el siguiente comando para configurar Git en Cloud Shell, reemplaza
<email>
por tu dirección de correo electrónico generada en el lab y<name>
por tu nombre.
-
Crea un repositorio de Docker de Artifact Registry llamado my-repository en la región
para almacenar tus imágenes de contenedor. -
Crea un clúster estándar de GKE llamado
hello-cluster
con la siguiente configuración:
Parámetro de configuración | Valor |
---|---|
Zona | |
Canal de versiones | Regular |
Versión del clúster |
1.29 o más reciente
|
Escalador automático de clúster | Habilitado |
Cantidad de nodos | 3 |
Cantidad mínima de nodos | 2 |
Cantidad máxima de nodos | 6 |
- Crea los espacios de nombres
prod
ydev
para tu clúster.
Haz clic en Revisar mi progreso para verificar el objetivo.
Tarea 2: Crea un repositorio en Cloud Source Repositories
En esta tarea, crearás un repositorio sample-app en Cloud Source Repositories y lo inicializarás con código de muestra. Este repositorio aloja el código de tu aplicación de Go y será la fuente principal para activar las compilaciones.
-
Crea un repositorio vacío llamado sample-app en Cloud Source Repositories.
-
Clona el repositorio sample-app de Cloud Source Repository en Cloud Shell.
-
Usa el siguiente comando para copiar el código de muestra en el directorio
sample-app
:
- Ejecuta el siguiente comando, que reemplazará automáticamente los marcadores de posición
<your-region>
y<your-zone>
en los archivoscloudbuild-dev.yaml
ycloudbuild.yaml
por la región y la zona asignadas de tu proyecto:
-
Realiza tu primera confirmación con el código de muestra que agregaste al directorio
sample-app
y envía los cambios a la rama master. -
Crea una rama llamada dev. Realiza una confirmación con el código de muestra que agregaste al directorio
sample-app
y envía los cambios a la rama dev. -
Verifica que almacenaste el código de muestra y las ramas en el repositorio de código fuente.
El código que acabas de clonar contiene una aplicación de Go simple con dos puntos de entrada: rojo y azul. En cada una de ellas se muestra un cuadrado de color simple en la página web, dependiendo del punto de entrada que elijas.
Haz clic en Revisar mi progreso para verificar el objetivo.
Tarea 3: Crea los activadores de Cloud Build
En esta sección, debes crear dos activadores de Cloud Build.
-
El primer activador detecta cambios en la rama
master
y compila una imagen de Docker de tu aplicación, la envía a Google Artifact Registry y también implementa la versión más reciente de la imagen en el espacio de nombres prod de tu clúster de GKE. -
El segundo activador escucha cambios en la rama
dev
y compila una imagen de Docker de tu aplicación. Luego, la enviará a Google Artifact Registry y se implementará la versión más reciente de la imagen en el espacio de nombres dev de tu clúster de GKE.
-
Crea un activador de Cloud Build llamado sample-app-prod-deploy con la siguiente configuración:
- Evento: Enviar a una rama
- Repositorio de código fuente:
sample-app
- Rama:
^master$
- Archivo de configuración de Cloud Build:
cloudbuild.yaml
-
Crea un activador de Cloud Build llamado sample-app-dev-deploy con la siguiente configuración:
- Evento: Enviar a una rama
- Repositorio de código fuente:
sample-app
- Rama:
^dev$
- Archivo de configuración de Cloud Build:
cloudbuild-dev.yaml
Después de configurar los activadores, cualquier cambio en las ramas activa la canalización de Cloud Build correspondiente, que compila y, luego, implementa la aplicación como se especifica en los archivos cloudbuild.yaml
.
Haz clic en Revisar mi progreso para verificar el objetivo.
Tarea 4: Implementa las primeras versiones de la aplicación
En esta sección, vas a compilar la primera versión de la aplicación de producción y la aplicación de desarrollo.
Compila la primera implementación de desarrollo
-
En Cloud Shell, inspecciona el archivo
cloudbuild-dev.yaml
ubicado en el directorio sample-app para ver los pasos del proceso de compilación. En el archivocloudbuild-dev.yaml
, reemplaza<version>
en las líneas 9 y 13 porv1.0
. -
Navega al archivo
dev/deployment.yaml
y actualiza<todo>
en la línea 17 con el nombre de la imagen de contenedor correcto. Además, reemplaza la variablePROJECT_ID
por el ID del proyecto real en el nombre de la imagen del contenedor.
-
Realiza una confirmación con tus cambios en la rama
dev
y envía los cambios para activar el trabajo de compilación sample-app-dev-deploy. -
Verifica que tu compilación se ejecutó correctamente en la página Historial de Cloud Build y comprueba que la aplicación development-deployment se implementó en el espacio de nombres
dev
del clúster. -
Expón la implementación development-deployment a un servicio de LoadBalancer llamado
dev-deployment-service
en el puerto 8080 y establece el puerto de destino del contenedor en el que está especificado en el Dockerfile. -
Navega a la IP del balanceador de cargas del servicio y agrega el punto de entrada
/blue
al final de la URL para verificar que la aplicación está funcionando. Debería verse de la siguiente manera:http://34.135.97.199:8080/blue
.
Compila la primera implementación de producción
-
Cambia a la rama
master
. Inspecciona el archivocloudbuild.yaml
ubicado en el directorio sample-app para ver los pasos del proceso de compilación. En el archivocloudbuild.yaml
, reemplaza<version>
en las líneas 11 y 16 porv1.0
. -
Navega al archivo
prod/deployment.yaml
y actualiza<todo>
en la línea 17 con el nombre de imagen de contenedor correcto. Además, reemplaza la variablePROJECT_ID
por el ID del proyecto real en el nombre de la imagen del contenedor.
-
Realiza una confirmación con tus cambios en la rama
master
y envía los cambios para activar el trabajo de compilación sample-app-prod-deploy. -
Verifica que tu compilación se ejecutó correctamente en la página Historial de Cloud Build y comprueba que la aplicación production-deployment se implementó en el espacio de nombres
prod
del clúster. -
Expón la implementación production-deployment en el espacio de nombres
prod
a un servicio de LoadBalancer llamadoprod-deployment-service
en el puerto 8080 y establece el puerto de destino del contenedor en el que está especificado en el Dockerfile. -
Navega a la IP del balanceador de cargas del servicio y agrega el punto de entrada
/blue
al final de la URL para verificar que la aplicación está funcionando. Debería verse de la siguiente manera:http://34.135.245.19:8080/blue
.
Haz clic en Revisar mi progreso para verificar el objetivo.
Tarea 5: Implementa las segundas versiones de la aplicación
En esta sección, debes compilar la segunda versión de la aplicación de producción y la aplicación de desarrollo.
Compila la segunda implementación de desarrollo
- Vuelve a la rama
dev
.
- En el archivo
main.go
, actualiza la funciónmain()
de la siguiente manera:
- Agrega la siguiente función dentro del archivo
main.go
:
-
Inspecciona el archivo
cloudbuild-dev.yaml
para ver los pasos en el proceso de compilación. Actualiza la versión de la imagen de Docker a lav2.0
. -
Navega al archivo
dev/deployment.yaml
y actualiza el nombre de la imagen de contenedor a la nueva versión (v2.0
). -
Realiza una confirmación con tus cambios en la rama
dev
y envía los cambios para activar el trabajo de compilación sample-app-dev-deploy. -
Verifica que tu compilación se ejecutó correctamente en la página Historial de Cloud Build y comprueba que la aplicación development-deployment se implementó en el espacio de nombres
dev
del clúster y que usa la imagenv2.0
. -
Navega a la IP del balanceador de cargas del servicio y agrega el punto de entrada
/red
al final de la URL para verificar que la aplicación está funcionando. Debería verse de la siguiente manera:http://34.135.97.199:8080/red
.
Compila la segunda implementación de producción
- Cambia a la rama
master
.
- En el archivo
main.go
, actualiza la funciónmain()
de la siguiente manera:
- Agrega la siguiente función dentro del archivo
main.go
:
-
Inspecciona el archivo
cloudbuild.yaml
para ver los pasos en el proceso de compilación. Actualiza la versión de la imagen de Docker a lav2.0
. -
Navega al archivo
prod/deployment.yaml
y actualiza el nombre de la imagen de contenedor a la nueva versión (v2.0
). -
Realiza una confirmación con tus cambios en la rama
master
y envía los cambios para activar el trabajo de compilación sample-app-prod-deploy. -
Verifica que tu compilación se ejecutó correctamente en la página Historial de Cloud Build y comprueba que la aplicación production-deployment se implementó en el espacio de nombres
prod
del clúster y que usa la imagenv2.0
. -
Navega a la IP del balanceador de cargas del servicio y agrega el punto de entrada
/red
al final de la URL para verificar que la aplicación está funcionando. Debería verse de la siguiente manera:http://34.135.245.19:8080/red
.
Perfecto. Creaste con éxito canalizaciones de CI/CD de producción y desarrollo completamente funcionales.
Haz clic en Revisar mi progreso para verificar el objetivo.
Tarea 6: Revierte la implementación de producción
En esta sección, debes revertir la implementación de producción a una versión anterior.
- Revierte a production-deployment para usar la versión
v1.0
de la aplicación.
- Navega a la IP del balanceador de cargas del servicio y agrega el punto de entrada
/red
al final de la URL de la implementación de producción y la respuesta en la página debe ser404
.
Haz clic en Revisar mi progreso para verificar el objetivo.
¡Felicitaciones!
¡Felicitaciones! En este lab, verificaste tus habilidades para implementar flujos de trabajo de DevOps en Google Cloud. Primero, creaste un clúster de GKE para ejecutar tu aplicación y un repositorio de Git que te permite alojar tu base de código. Luego, creaste activadores de Cloud Build, modificaste el código y las plantillas y enviaste actualizaciones al repo que crearon tus primeras compilaciones de aplicación de desarrollo y producción. Después enviaste actualizaciones a la aplicación para crear nuevas compilaciones y revertiste la aplicación de producción a una versión anterior. Ahora, tienes todo listo para comenzar a trabajar con DevOps en tu propio entorno.
Obtén tu próxima insignia de habilidad
Este lab de autoaprendizaje es parte del curso Implement DevOps Workflows in 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.
Esta insignia de habilidad forma parte de la ruta de aprendizaje Cloud DevOps Engineer de Google Cloud. Continúa tu recorrido de aprendizaje inscribiéndote en el curso Monitor and Log with Google Cloud Observability.
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: 26 de junio de 2024
Prueba más reciente del lab: 26 de junio de 2024
Copyright 2024 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.