En esta sección, aprenderás cómo realizar pruebas exhaustivas y desplegar tu proyecto en Google Cloud Platform (GCP). Este es un paso crucial para asegurar que tu aplicación funcione correctamente y esté lista para ser utilizada en un entorno de producción.

Objetivos de la sección

  • Comprender la importancia de las pruebas en el ciclo de desarrollo.
  • Aprender a configurar y ejecutar pruebas en GCP.
  • Conocer las mejores prácticas para el despliegue en GCP.
  • Implementar un pipeline de CI/CD para automatizar pruebas y despliegues.

  1. Importancia de las pruebas

Las pruebas son esenciales para:

  • Garantizar la calidad del software: Detectar y corregir errores antes de que lleguen a producción.
  • Mejorar la seguridad: Identificar vulnerabilidades y asegurar que se cumplan los estándares de seguridad.
  • Optimizar el rendimiento: Asegurar que la aplicación funcione de manera eficiente bajo diferentes condiciones de carga.

  1. Tipos de pruebas

Pruebas unitarias

  • Descripción: Verifican el funcionamiento de componentes individuales del código.
  • Herramientas: JUnit (Java), pytest (Python), Mocha (JavaScript).

Pruebas de integración

  • Descripción: Aseguran que diferentes módulos o servicios funcionen juntos correctamente.
  • Herramientas: Postman, SoapUI.

Pruebas de extremo a extremo (E2E)

  • Descripción: Simulan el comportamiento del usuario para verificar el flujo completo de la aplicación.
  • Herramientas: Selenium, Cypress.

Pruebas de carga

  • Descripción: Evalúan el rendimiento de la aplicación bajo condiciones de alta carga.
  • Herramientas: JMeter, Locust.

  1. Configuración de pruebas en GCP

Pruebas unitarias e integración en Cloud Build

Cloud Build es un servicio de CI/CD que permite compilar, probar y desplegar código en GCP.

Configuración de Cloud Build

  1. Archivo de configuración: Crea un archivo cloudbuild.yaml en la raíz de tu proyecto.
  2. Definición de pasos: Define los pasos para compilar y ejecutar pruebas.
steps:
  - name: 'gcr.io/cloud-builders/mvn'
    args: ['clean', 'install']
  - name: 'gcr.io/cloud-builders/mvn'
    args: ['test']

Pruebas de extremo a extremo con Selenium

  1. Configuración del entorno: Configura un entorno de prueba utilizando Google Kubernetes Engine (GKE) o Compute Engine.
  2. Ejecución de pruebas: Despliega tu aplicación en el entorno de prueba y ejecuta los scripts de Selenium.
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("http://your-app-url")
assert "Expected Title" in driver.title
driver.quit()

Pruebas de carga con JMeter

  1. Instalación de JMeter: Descarga e instala JMeter en tu máquina local o en una instancia de Compute Engine.
  2. Configuración del plan de prueba: Crea un plan de prueba en JMeter para simular la carga.
<ThreadGroup>
  <stringProp name="ThreadGroup.num_threads">100</stringProp>
  <stringProp name="ThreadGroup.ramp_time">60</stringProp>
  <stringProp name="ThreadGroup.duration">300</stringProp>
  <HTTPSamplerProxy>
    <stringProp name="HTTPSampler.domain">your-app-url</stringProp>
    <stringProp name="HTTPSampler.path">/api/endpoint</stringProp>
  </HTTPSamplerProxy>
</ThreadGroup>

  1. Despliegue en GCP

Despliegue manual

  1. Compute Engine: Despliega tu aplicación en una instancia de VM.

    gcloud compute instances create my-instance --image-family=debian-9 --image-project=debian-cloud
    gcloud compute scp my-app.jar my-instance:~/my-app.jar
    gcloud compute ssh my-instance -- 'java -jar ~/my-app.jar'
    
  2. App Engine: Despliega tu aplicación en App Engine.

    gcloud app deploy
    
  3. Kubernetes Engine: Despliega tu aplicación en un clúster de GKE.

    kubectl apply -f deployment.yaml
    

Despliegue automatizado con Cloud Build

  1. Pipeline de CI/CD: Configura un pipeline en Cloud Build para automatizar el despliegue.
    steps:
      - name: 'gcr.io/cloud-builders/mvn'
        args: ['clean', 'install']
      - name: 'gcr.io/cloud-builders/mvn'
        args: ['test']
      - name: 'gcr.io/cloud-builders/gcloud'
        args: ['app', 'deploy']
    

  1. Ejercicio práctico

Ejercicio: Configurar y ejecutar pruebas en Cloud Build

  1. Objetivo: Configurar un pipeline de Cloud Build para compilar, probar y desplegar una aplicación Java en App Engine.
  2. Instrucciones:
    • Crea un archivo cloudbuild.yaml en la raíz de tu proyecto.
    • Define los pasos para compilar, probar y desplegar la aplicación.
    • Ejecuta el pipeline de Cloud Build.

Solución

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

  1. Conclusión

En esta sección, has aprendido la importancia de las pruebas y cómo configurarlas en GCP. También has visto cómo desplegar tu aplicación manualmente y mediante un pipeline de CI/CD. Estos conocimientos te preparan para asegurar la calidad y el rendimiento de tu aplicación en un entorno de producción.

En la siguiente sección, te centrarás en la presentación final y la revisión de tu proyecto, donde podrás demostrar todo lo que has aprendido a lo largo del curso.

© Copyright 2024. Todos los derechos reservados