Introducción a Cloud Build

Cloud Build es un servicio de Google Cloud Platform que permite a los desarrolladores compilar, probar y desplegar aplicaciones en la nube de manera rápida y eficiente. Este servicio es fundamental para implementar prácticas de DevOps y CI/CD (Integración Continua y Despliegue Continuo).

Objetivos del Módulo

  1. Comprender qué es Cloud Build y sus beneficios.
  2. Configurar un proyecto de Cloud Build.
  3. Crear y ejecutar pipelines de construcción.
  4. Integrar Cloud Build con otros servicios de GCP.

¿Qué es Cloud Build?

Cloud Build es un servicio de construcción de software que permite a los desarrolladores automatizar la creación y despliegue de aplicaciones. Con Cloud Build, puedes:

  • Compilar código fuente en varios lenguajes de programación.
  • Ejecutar pruebas automatizadas.
  • Desplegar aplicaciones en diferentes entornos, como Google Kubernetes Engine (GKE), App Engine, Cloud Functions, entre otros.

Beneficios de Cloud Build

  • Automatización: Automatiza el proceso de construcción y despliegue, reduciendo errores humanos.
  • Escalabilidad: Escala automáticamente para manejar múltiples construcciones simultáneamente.
  • Integración: Se integra fácilmente con otros servicios de GCP y herramientas de terceros.
  • Seguridad: Proporciona controles de acceso y auditoría para garantizar la seguridad del proceso de construcción.

Configuración de un Proyecto de Cloud Build

Paso 1: Crear un Proyecto en GCP

  1. Accede a la Consola de Google Cloud.
  2. Crea un nuevo proyecto o selecciona uno existente.

Paso 2: Habilitar la API de Cloud Build

  1. En la consola de GCP, navega a API y Servicios > Biblioteca.
  2. Busca "Cloud Build" y haz clic en Habilitar.

Paso 3: Configurar Permisos

Asegúrate de que tu cuenta de servicio tenga los permisos necesarios para ejecutar Cloud Build. Puedes asignar el rol Cloud Build Editor a tu cuenta de servicio.

Crear y Ejecutar Pipelines de Construcción

Archivo de Configuración de Cloud Build

Cloud Build utiliza un archivo de configuración (cloudbuild.yaml o cloudbuild.json) para definir los pasos de construcción. Aquí hay un ejemplo básico de un archivo cloudbuild.yaml:

steps:
- name: 'gcr.io/cloud-builders/docker'
  args: ['build', '-t', 'gcr.io/$PROJECT_ID/my-app', '.']
images:
- 'gcr.io/$PROJECT_ID/my-app'

Explicación del Archivo

  • steps: Define los pasos de construcción. En este caso, estamos utilizando el constructor de Docker para construir una imagen.
  • name: Especifica el constructor a utilizar. gcr.io/cloud-builders/docker es el constructor de Docker proporcionado por Google.
  • args: Argumentos para el constructor. Aquí estamos construyendo una imagen Docker y etiquetándola.
  • images: Lista de imágenes que se crearán y almacenarán en Google Container Registry.

Ejecutar una Construcción

Para ejecutar una construcción, puedes usar el siguiente comando en la terminal:

gcloud builds submit --config=cloudbuild.yaml .

Este comando envía el código fuente y el archivo de configuración a Cloud Build para su ejecución.

Integración con Otros Servicios de GCP

Desplegar en Google Kubernetes Engine (GKE)

Puedes extender tu archivo cloudbuild.yaml para desplegar una aplicación en GKE:

steps:
- name: 'gcr.io/cloud-builders/docker'
  args: ['build', '-t', 'gcr.io/$PROJECT_ID/my-app', '.']
- name: 'gcr.io/cloud-builders/kubectl'
  args: ['apply', '-f', 'kubernetes/deployment.yaml']
images:
- 'gcr.io/$PROJECT_ID/my-app'

Desplegar en App Engine

Para desplegar en App Engine, puedes agregar un paso adicional:

steps:
- name: 'gcr.io/cloud-builders/gcloud'
  args: ['app', 'deploy']

Ejercicio Práctico

Ejercicio 1: Crear y Ejecutar una Construcción Básica

  1. Crea un archivo cloudbuild.yaml en el directorio raíz de tu proyecto con el siguiente contenido:

    steps:
    - name: 'gcr.io/cloud-builders/docker'
      args: ['build', '-t', 'gcr.io/$PROJECT_ID/hello-world', '.']
    images:
    - 'gcr.io/$PROJECT_ID/hello-world'
    
  2. En la terminal, navega al directorio de tu proyecto y ejecuta:

    gcloud builds submit --config=cloudbuild.yaml .
    

Solución

Si todo está configurado correctamente, deberías ver una salida en la terminal indicando que la construcción se ha completado con éxito y que la imagen Docker se ha almacenado en Google Container Registry.

Conclusión

En esta sección, hemos aprendido qué es Cloud Build, cómo configurarlo y cómo crear y ejecutar pipelines de construcción. También hemos visto cómo integrar Cloud Build con otros servicios de GCP para desplegar aplicaciones. Con estos conocimientos, estás listo para automatizar tus procesos de construcción y despliegue, mejorando la eficiencia y la calidad de tus aplicaciones.

En el próximo módulo, exploraremos más sobre los repositorios de código en la nube y cómo integrarlos con Cloud Build para un flujo de trabajo CI/CD completo.

© Copyright 2024. Todos los derechos reservados