En este lab, crearás una canalización de CI/CD que automáticamente compila una imagen de contenedor desde el código confirmado, la almacena en Container Registry, actualiza un manifiesto de Kubernetes en un repositorio de Git y, luego, implementa la aplicación en Google Kubernetes Engine con ese manifiesto.
En este lab, crearás 2 repositorios de Git:
Repositorio app: Contiene el código fuente de la aplicación.
Repositorio env: Contiene los manifiestos para el objeto Deployment de Kubernetes.
Cuando envías un cambio al repositorio app, la canalización de Cloud Build ejecuta pruebas y compila una imagen de contenedor, que luego envía a Artifact Registry. Después de enviar la imagen, Cloud Build actualiza el manifiesto de Deployment y lo envía al repositorio env. Esto activa otra canalización de Cloud Build que aplica el manifiesto al clúster de GKE y, si se aplica correctamente, lo almacena en otra rama del repositorio env.
Los repositorios app y env deben estar separados porque tienen diferentes ciclos de vida y usos. Los usuarios principales del repositorio app son personas reales, y este repositorio está dedicado a una aplicación específica. Los usuarios principales del repositorio env son sistemas automatizados (como Cloud Build) y varias aplicaciones pueden compartir este repositorio. El repositorio env puede tener varias ramas, y cada una se asigna a un entorno específico (en este lab, solo utilizas la rama production) y hace referencia a una imagen de contenedor determinada, mientras que el repositorio app no.
Cuando termines este lab, obtendrás un sistema en el que podrás realizar fácilmente las siguientes acciones:
Diferenciar las implementaciones fallidas y correctas observando el historial de Cloud Build
Acceder al manifiesto utilizado en este momento observando la rama production del repositorio env
Efectuar una reversión a cualquier versión anterior a través de una nueva ejecución de la compilación correspondiente de Cloud Build
Nota:
En este lab, se usa Cloud Build para ejecutar las canalizaciones, pero hay otras herramientas populares de automatización de compilaciones que pueden servir como alternativas, como Spinnaker y Jenkins. Por ahora, algunas de estas otras herramientas tienen una compatibilidad superior con las implementaciones azul-verde, el análisis de versiones canary y otras funciones similares que pueden ser necesarias en implementaciones de CI/CD más avanzadas.
Objetivos
En este lab, aprenderás a hacer lo siguiente:
Crear clústeres de Kubernetes Engine
Crear Cloud Source Repositories
Activar Cloud Build desde Cloud Source Repositories
Automatizar las pruebas y publicar una imagen de contenedor implementable a través de Cloud Build
Administrar recursos implementados en un clúster de Kubernetes Engine mediante Cloud Build
Configuración y requisitos
Accede a Qwiklabs
En cada lab, recibirá un proyecto de Google Cloud y un conjunto de recursos nuevos por tiempo limitado y sin costo adicional.
Accede a Qwiklabs desde una ventana de incógnito.
Ten en cuenta el tiempo de acceso del lab (por ejemplo, 1:15:00) y asegúrate de finalizarlo en el plazo asignado.
No existe una función de pausa. Si lo necesita, puede reiniciar el lab, pero deberá hacerlo desde el comienzo.
Cuando esté listo, haga clic en Comenzar lab.
Anote las credenciales del lab (el nombre de usuario y la contraseña). Las usarás para acceder a la consola de Google Cloud.
Haga clic en Abrir Google Console.
Haga clic en Usar otra cuenta, copie las credenciales para este lab y péguelas en el mensaje emergente que aparece.
Si usa otras credenciales, se generarán errores o incurrirá en cargos.
Acepta las condiciones y omite la página de recursos de recuperación.
Después de completar los pasos iniciales de acceso, aparecerá el panel del proyecto.
Activa Google Cloud Shell
Google Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud.
Google Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.
En la consola de Cloud, en la barra de herramientas superior derecha, haz clic en el botón Abrir Cloud Shell.
Haz clic en Continuar.
El aprovisionamiento y la conexión al entorno demorarán unos minutos. Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. Por ejemplo:
gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con el completado de línea de comando.
Puedes solicitar el nombre de la cuenta activa con este comando:
En esta tarea, prepararás tu proyecto de Google Cloud habilitando las APIs necesarias, inicializando la configuración de Git en Cloud Shell y descargando el código de muestra que usarás luego en el lab.
En Cloud Shell, ejecuta el siguiente comando, que habilitará las APIs para GKE, Cloud Build, Cloud Source Repositories y Container Analysis:
Git usará estos datos para identificarte como el autor de las confirmaciones que crearás en Cloud Shell.
Haz clic en Revisar mi progreso para verificar el objetivo.
Inicializar tu lab
Tarea 2: Crea repositorios de Git en Cloud Source Repositories
En esta tarea, crearás los dos repositorios de Git (hello-cloudbuild-app y hello-cloudbuild-env) utilizados en este lab, además de inicializar hello-cloudbuild-app con código de muestra.
Cloud Build transmite los registros que generó la creación de la imagen de contenedor a tu terminal cuando ejecutas este comando.
Luego de que finalice la compilación, en la consola de Google Cloud, ve a Artifact Registry > Repositorios (Repositories) para verificar que tu nueva imagen de contenedor esté disponible en Artifact Registry.
Haz clic en my-repository.
Haz clic en Revisar mi progreso para verificar el objetivo.
Crear una imagen de contenedor con Cloud Build
Tarea 4: Crea la canalización de integración continua (CI)
En esta tarea, configurarás Cloud Build para ejecutar automáticamente una prueba de unidades pequeñas, compilarás la imagen de contenedor y la enviarás a Container Registry. Enviar una confirmación nueva a Cloud Source Repositories activa automáticamente esta canalización. El archivo cloudbuild.yaml ya incluido en el código es la configuración de la canalización.
En la consola de Google Cloud, ve a Cloud Build > Activadores.
Haz clic en Crear activador (Create Trigger).
En el campo Nombre (Name), escribe hello-cloudbuild.
En Evento (Event), selecciona Enviar a una rama (Push to a branch).
En Fuente (Source), selecciona hello-cloudbuild-app como tu Repositorio (Repository) y escribe ^master$ para tu Rama (Branch).
En Configuración de compilación (Build configuration), selecciona Archivo de configuración de Cloud Build (Cloud Build configuration file).
En el campo Ubicación del archivo de configuración de Cloud Build, escribe cloudbuild.yaml después de /.
En Cuenta de servicio, selecciona la cuenta de servicio que comienza con el ID de tu proyecto y que es similar a (@.iam.gserviceaccount.com).
Haz clic en Crear (Create).
Cuando se haya creado el activador, regresa a Cloud Shell. Ahora debes enviar el código de la aplicación a Cloud Source Repositories para activar la canalización de CI en Cloud Build.
Para iniciar este activador, ejecuta el siguiente comando:
cd ~/hello-cloudbuild-app
git push google master
En la consola de Google Cloud, ve a Cloud Build > Panel.
Deberías ver una compilación en ejecución o finalizada recientemente.
Puedes hacer clic en la compilación para seguir la ejecución y examinar sus registros.
Haz clic en Revisar mi progreso para verificar el objetivo.
Crear la canalización de integración continua (CI)
Tarea 5: Crea el entorno de pruebas y la canalización de CD
Cloud Build también se usa para la canalización de entrega continua. La canalización se ejecuta cada vez que se envía una confirmación a la rama candidate del repositorio __hello-cloudbuild-env__. La canalización aplica la versión nueva del manifiesto al clúster de Kubernetes y, si lo hace correctamente, copia el manifiesto en la rama production. Este proceso tiene las siguientes propiedades:
La rama candidate es un historial de los intentos de implementación.
La rama production es un historial de las implementaciones correctas.
En Cloud Build, tienes una vista de las implementaciones fallidas y correctas.
Puedes realizar una reversión a cualquier implementación anterior si vuelves a ejecutar la compilación correspondiente en Cloud Build. Una reversión también actualiza la rama production para reflejar verdaderamente el historial de implementaciones.
Modificarás la canalización de integración continua para actualizar la rama candidate del repositorio hello-cloudbuild-env, lo que activa la canalización de entrega continua.
Otorga a Cloud Build acceso a GKE
Para implementar la aplicación en el clúster de Kubernetes, Cloud Build necesita el rol de administración de Identity and Access Management de desarrollador de Kubernetes Engine.
Debes inicializar el repositorio hello-cloudbuild-env con dos ramas (production y candidate) y un archivo de configuración de Cloud Build que describa el proceso de implementación.
El primer paso es clonar el repositorio hello-cloudbuild-env y crear la rama production, que todavía estará vacía.
En Cloud Shell, ejecuta el siguiente comando:
cd ~
gcloud source repos clone hello-cloudbuild-env
cd ~/hello-cloudbuild-env
git checkout -b production
A continuación, debes copiar el archivo cloudbuild-delivery.yaml disponible en el repositorio hello-cloudbuild-app y confirmar el cambio:
cd ~/hello-cloudbuild-env
cp ~/hello-cloudbuild-app/cloudbuild-delivery.yaml ~/hello-cloudbuild-env/cloudbuild.yaml
git add .
git commit -m "Create cloudbuild.yaml for deployment"
Nota: El archivo cloudbuild-delivery.yaml describe el proceso de implementación que debe ejecutarse en Cloud Build.
Este tiene dos pasos:
Cloud Build aplica el manifiesto en el clúster de GKE.
Si se aplica de forma correcta, Cloud Build lo copia en la rama production.
Crea la rama candidate y envía ambas ramas para que estén disponibles en Cloud Source Repositories:
Haz clic en Revisar mi progreso para verificar el objetivo.
Otorgar la función de desarrollador de Kubernetes Engine y la función de IAM de escritor del repositorio de código fuente a Cloud Build
Crea un activador para la canalización de entrega continua
En la consola de Google Cloud, ve a Cloud Build > Activadores.
Haz clic en Crear activador.
En el campo Nombre, escribe hello-cloudbuild-deploy.
En Evento, selecciona Enviar a una rama.
Debajo de Fuente, seleccionahello-cloudbuild-env como tu Repositorio y ^candidate$ como tu Rama.
En Configuración de compilación, selecciona Archivo de configuración de Cloud Build.
En el campo Ubicación del archivo de configuración de Cloud Build, escribe cloudbuild.yaml después de /.
En Cuenta de servicio, selecciona la cuenta de servicio que comienza con el ID de tu proyecto y que es similar a (@.iam.gserviceaccount.com).
Haz clic en Crear.
Modifica la canalización de integración continua para activar la canalización de entrega continua
En esta sección, agregarás algunos pasos a la canalización de integración continua que generará una versión nueva del manifiesto de Kubernetes y lo enviará al repositorio __hello-cloudbuild-env__ para activar la canalización de entrega continua.
Copia la versión extendida del archivo cloudbuild.yaml para el repositorio app:
cd ~/hello-cloudbuild-app
cp cloudbuild-trigger-cd.yaml cloudbuild.yaml
El archivo cloudbuild-trigger-cd.yaml es una versión extendida del archivo cloudbuild.yaml. Este agrega los pasos que se detallan a continuación, que generan el manifiesto nuevo de Kubernetes y activan la canalización de entrega continua.
Nota: Esta canalización usa un sed sencillo para renderizar la plantilla del manifiesto. En realidad, te beneficiarás con el uso de herramientas dedicadas, como kustomize o skaffold. Estas permiten tener más control sobre la renderización de las plantillas del manifiesto.
Confirma las modificaciones y envíalas a Cloud Source Repositories:
cd ~/hello-cloudbuild-app
git add cloudbuild.yaml
git commit -m "Trigger CD pipeline"
git push google master
Esto activa la canalización de integración continua en Cloud Build.
Haz clic en Revisar mi progreso para verificar el objetivo.
Crear un activador para la canalización de entrega continua
Tarea 6: Revisa las canalizaciones de Cloud Build
En la consola de Google Cloud, ve a Cloud Build > Panel.
Haz clic en el activador hello-cloudbuild-app para seguir su ejecución y examinar sus registros.
El último paso de esta canalización envía el manifiesto nuevo al repositorio hello-cloudbuild-env, que activa la canalización de entrega continua.
Regresa al Panel principal.
Deberías ver una compilación en ejecución o finalizada recientemente para el repositorio hello-cloudbuild-env. Puedes hacer clic en la compilación para seguir la ejecución y examinar sus registros.
Tarea 7: Prueba la canalización completa
La canalización de CI/CD ahora está configurada. En esta sección, la probarás de extremo a extremo.
En la consola de Google Cloud, ve a Kubernetes Engine > Puertas de enlace, Ingress y Service.
Selecciona Servicios en el menú superior
Debe haber un solo servicio llamado hello-cloudbuild en la lista. Se creó con la compilación de entrega continua que se acaba de ejecutar.
Haz clic en el extremo del servicio hello-cloudbuild.
Deberías ver "Hello World!". Si no existe el extremo, o si ves un error del balanceador de cargas, es posible que debas esperar algunos minutos para que el balanceador de cargas se inicialice por completo. Haz clic en Actualizar para que la página se actualice, si es necesario.
En Cloud Shell, reemplaza "Hello World" por "Hello Cloud Build" en la aplicación y en la prueba de unidades:
cd ~/hello-cloudbuild-app
sed -i 's/Hello World/Hello Cloud Build/g' app.py
sed -i 's/Hello World/Hello Cloud Build/g' test_app.py
Confirma y envía el cambio a Cloud Source Repositories:
Después de unos minutos, vuelve a cargar la aplicación en tu navegador. Ahora deberías ver "Hello Cloud Build!".
Haz clic en Revisar mi progreso para verificar el objetivo.
Probar la canalización completa
Tarea 8: Prueba la reversión
En esta tarea, revertirás a la versión de la aplicación que decía “Hello World!”.
En la consola de Google Cloud, ve a Cloud Build > Panel.
Haz clic en el vínculo Ver todo en Historial de compilaciones para el repositorio hello-cloudbuild-env.
Haz clic en la segunda compilación más reciente disponible.
Haz clic en Reintentar compilación.
Cuando se termine la compilación, vuelve a cargar la aplicación en tu navegador.
Ahora deberías ver nuevamente "Hello World!".
Haz clic en Revisar mi progreso para verificar el objetivo.
Probar la reversión
Finalice su lab
Cuando haya completado el lab, haga clic en Finalizar lab. Google Cloud Skills Boost quitará los recursos que usó y limpiará la cuenta.
Tendrá la oportunidad de calificar su experiencia en el lab. Seleccione la cantidad de estrellas que corresponda, ingrese un comentario y haga clic en Enviar.
La cantidad de estrellas indica lo siguiente:
1 estrella = Muy insatisfecho
2 estrellas = Insatisfecho
3 estrellas = Neutral
4 estrellas = Satisfecho
5 estrellas = Muy satisfecho
Puede cerrar el cuadro de diálogo si no desea proporcionar comentarios.
Para enviar comentarios, sugerencias o correcciones, use la pestaña Asistencia.
Copyright 2025 Google LLC. Todos los derechos reservados. Google y el logotipo de Google son marcas de Google LLC. El resto de los nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que están asociados.
Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
.
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.
En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar
Usa la navegación privada
Copia el nombre de usuario y la contraseña proporcionados para el lab
Haz clic en Abrir la consola en modo privado
Accede a la consola
Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
Acepta las condiciones y omite la página de recursos de recuperación
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.
En este lab, explorarás el concepto de GitOps en el contexto de las canalizaciones de integración continua/implementación continua (CI/CD) implementadas con Cloud Build para aplicaciones que se ejecutan en Google Kubernetes Engine.
Duración:
0 min de configuración
·
Acceso por 90 min
·
60 min para completar