
Cloud & Data Intelligence Lab
Resumen Ejecutivo
El Cloud & Data Intelligence Lab es un repositorio integrador y multifacético enfocado en el diseño, despliegue, seguridad y análisis de rendimiento de microservicios e infraestructura en la nube. Abarca desde la creación de clasificadores de nubes con Machine Learning (Python), la contenedorización de aplicaciones inteligentes de chat (Ollama + Flask en Docker), hasta la implementación de APIs altamente seguras con tokens JWT y persistencia/caching de baja latencia con Redis y Google Cloud Platform (GCP). Finalmente, el laboratorio valida de manera rigurosa la resiliencia y el comportamiento del sistema mediante un exhaustivo framework de pruebas de carga dinámica utilizando Locust.
Situación
La transición de arquitecturas locales y monolíticas hacia ecosistemas distribuidos en la nube plantea desafíos críticos. En el desarrollo moderno, no basta con migrar código existente (enfoque Cloud-Enabled); se requiere diseñar pensando en la nube (Cloud-Native) para explotar el escalamiento dinámico, aislar fallos y optimizar la persistencia. Los desarrolladores enfrentan problemas complejos como:
- Cuellos de botella en bases de datos tradicionales ante accesos concurrentes.
- Gestión insegura de sesiones y tokens en APIs REST.
- Saturación e inestabilidad de servidores bajo picos abruptos de tráfico (spikes).
- Ausencia de métricas de referencia (baselines) para realizar optimizaciones en infraestructura contenerizada.
Objetivo
Diseñar, construir e instrumentar una plataforma de servicios distribuidos bajo estándares de alta disponibilidad. Los objetivos principales fueron:
- Desarrollar un clasificador predictivo de variables climáticas/nubes y teorizar sobre arquitecturas cloud.
- Implementar un backend en Flask, encapsulado en Docker, que integre modelos locales de Inteligencia Artificial (Ollama LLM).
- Asegurar los endpoints del ecosistema mediante esquemas de autenticación JWT y optimizar el almacenamiento de tokens usando Redis.
- Desplegar servicios en Google Cloud Platform (GCP) para el almacenamiento de archivos masivos (Cloud Storage Buckets) con interfaces nativas en Java y Python.
- Ejecutar un conjunto exhaustivo de pruebas de carga con Locust para analizar perfiles de estrés del sistema.
Arquitectura y Desarrollo
El laboratorio está segmentado en módulos progresivos que demuestran la evolución de la infraestructura:
1. ML Aplicado y Análisis de Arquitecturas
- Clasificador de Nubes: Un script de machine learning en Python (
cloud_classifier.py) que clasifica patrones visuales e hidrométricos. - Ensayo Cloud-Native vs Cloud-Enabled: Un análisis técnico plasmado en
miniensayo1.htmldetallando la migración del modelo de Netflix a AWS y las ventajas de los microservicios orquestados sobre los esquemas monolíticos heredados.
2. Contenedorización de IA (Docker + Flask + Ollama)
- Chat Inteligente: Creación de una aplicación interactiva que sirve modelos de lenguaje locales (Ollama) mediante un backend REST en Flask.
- Aislamiento en Docker: Configuración y empaquetamiento del servicio en contenedores independientes (
Dockerfile) para garantizar portabilidad absoluta y fácil orquestación.
3. Backend Blindado y Seguridad de Accesos
- JWT Authentication: Diseño de flujos robustos de registro y verificación de sesiones mediante tokens web en Flask (
app.py). - Aceleración con Redis: Integración de una base de datos en memoria para la lista de denegación y expiración programada de tokens JWT en
token_redis.py, mitigando latencia y reduciendo impactos en la base de datos relacional principal.
4. Integración GCP y Clientes Multiplataforma
- Google Cloud Storage (Buckets): Endpoints dedicados para cargar y listar imágenes de forma estructurada en un bucket de GCP (
bucket.py), registrando los metadatos URL en bases de datos PostgreSQL/MariaDB y documentando el comportamiento mediante Swagger. - Clientes GUI: Aplicaciones nativas de escritorio desarrolladas en Python con Tkinter (
pgui.py) y Java con Swing (JGui.java) diseñadas para consumir y renderizar la información de los microservicios en GCP.
Modulos Especiales del Lab
1. Benchmarking: Redis vs MariaDB
Un estudio comparativo directo (redisvsmaria.py) que ejecuta transacciones masivas de lectura y escritura. Los resultados demuestran la diferencia en tiempos de respuesta (sub-milisegundos en Redis frente a la latencia de disco en MariaDB), validando la conveniencia de usar Redis como caché distribuida intermedia.
2. Suite Completa de Pruebas de Carga (Locust)
Una robusta suite de telemetría y pruebas de estrés implementada mediante locustfile.py que incluye perfiles avanzados de comportamiento de carga:
- Baseline Test (
baseline.py): Establece el rendimiento base (50 usuarios durante 5 minutos) evaluando uso de CPU y memoria de los contenedores Docker en reposo relativo. - Smoke Test (
smoke.py): Valida la disponibilidad inmediata y descarta fallos críticos de configuración de red o puertos expuestos tras reinicios. - Read-Heavy vs Write-Heavy: Comportamiento asimétrico del sistema ante avalanchas de peticiones GET frente a peticiones de escritura POST, permitiendo identificar límites en el gestor de base de datos.
- Ramp-Up / Ramp-Down: Simulación de curvas de entrada y salida progresiva de usuarios para el ajuste óptimo de políticas de autoescalado.
- Spike Test: Incrementos súbitos (ej. de 200 a 1000 usuarios en 10 segundos) simulando picos reales de demanda y permitiendo ajustar límites de timeout y resiliencia en Nginx.
- Soak Test: Carga moderada y continua durante periodos prolongados (30+ minutos) diseñada específicamente para detectar fugas de memoria (memory leaks) en los hilos de Flask y conexiones huérfanas en MariaDB.
Ciclo de Vida del Despliegue y Validación
graph TD
A[Código Local en Python/Flask] --> B[Contenedorización con Docker]
B --> C[Despliegue de Endpoints en GCP]
C --> D[Consumo desde Clientes Java & Python GUI]
D --> E[Pruebas de Carga Dinámicas con Locust]
E --> F{¿Supera el Baseline?}
F -- Sí --> G[Producción Optimizada]
F -- No --> H[Análisis de Logs e Índices en Redis/MariaDB]
H --> B
Stack Tecnológico Completo
| Capa | Tecnologías |
|---|---|
| Modelos de ML & IA | Python (scikit-learn, Jupyter Notebooks), Ollama LLM |
| Backend & Microservicios | Flask, Python 3.11, Docker, Swagger / OpenAPI |
| Persistencia & Cache | Redis (Caché de tokens y latencia ultra-baja), MariaDB, PostgreSQL |
| Infraestructura Cloud | Google Cloud Platform (GCP Cloud Storage Buckets, Compute Engine) |
| Pruebas de Rendimiento | Locust, scripts feeder JSON/CSV para credenciales de usuarios únicos |
| Interfaces de Usuario | HTML5 / CSS3 / JavaScript (PrimeFlex), Python Tkinter, Java Swing |
Resultados y Logros
- Seguridad Garantizada: Implementación exitosa de autenticación JWT blindada con revocación inmediata y persistente gracias a la base de datos de Redis en memoria.
- Análisis de Capacidad Real: Identificación y resolución de memory leaks en contenedores Docker mediante perfiles prolongados de Soak testing.
- Estudio de Latencia DBMS: Verificación empírica de una mejora de hasta 10x en los tiempos de verificación de accesos con Redis en comparación con consultas directas a tablas MariaDB.
- Almacenamiento Escalable: Gestión eficiente de archivos multimedia mediante URLs seguras en GCP Buckets, minimizando la sobrecarga de transacciones binarias en la base de datos relacional.
- Clientes Multiplataforma: Interfaces eficientes de escritorio y web que interactúan fluidamente con la nube pública sin exponer credenciales críticas.
Classified Evidence