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.
- 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.
- 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.
- 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
- Archivo de configuración: Crea un archivo
cloudbuild.yaml
en la raíz de tu proyecto. - 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
- Configuración del entorno: Configura un entorno de prueba utilizando Google Kubernetes Engine (GKE) o Compute Engine.
- 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
- Instalación de JMeter: Descarga e instala JMeter en tu máquina local o en una instancia de Compute Engine.
- 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>
- Despliegue en GCP
Despliegue manual
-
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'
-
App Engine: Despliega tu aplicación en App Engine.
gcloud app deploy
-
Kubernetes Engine: Despliega tu aplicación en un clúster de GKE.
kubectl apply -f deployment.yaml
Despliegue automatizado con Cloud Build
- 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']
- Ejercicio práctico
Ejercicio: Configurar y ejecutar pruebas en Cloud Build
- Objetivo: Configurar un pipeline de Cloud Build para compilar, probar y desplegar una aplicación Java en App Engine.
- 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.
- Crea un archivo
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']
- 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.
Curso de Google Cloud Platform (GCP)
Módulo 1: Introducción a Google Cloud Platform
- ¿Qué es Google Cloud Platform?
- Configuración de tu cuenta de GCP
- Descripción general de la consola de GCP
- Comprensión de proyectos y facturación
Módulo 2: Servicios principales de GCP
Módulo 3: Redes y seguridad
Módulo 4: Datos y análisis
Módulo 5: Aprendizaje automático e IA
Módulo 6: DevOps y monitoreo
- Cloud Build
- Repositorios de código en la nube
- Cloud Functions
- Monitoreo de Stackdriver
- Cloud Deployment Manager
Módulo 7: Temas avanzados de GCP
- Híbrido y multi-nube con Anthos
- Computación sin servidor con Cloud Run
- Redes avanzadas
- Mejores prácticas de seguridad
- Gestión y optimización de costos