NombreSubtexto

Sumaq Learn - Plataforma Educativa de Microservicios

Plataforma educativa distribuida en microservicios con Spring Boot, FastAPI y NestJS, centralizada con Kong Gateway y Consul.

100 articulos en español

Sumaq Learn - Plataforma Educativa Orientada a Microservicios

Diseño, desarrollo y orquestación de una plataforma educativa distribuida basada en una arquitectura políglota de microservicios. El sistema fue construido utilizando Spring Boot 3.4, NestJS 11 y FastAPI (Python 3.11) para el backend, sirviendo datos de forma centralizada a una aplicación móvil multiplataforma desarrollada en React Native 0.76.9 con Expo 52.

Sumaq Learn - Plataforma Educativa de Microservicios-imagen1

Las plataformas educativas tradicionales suelen sufrir cuellos de botella al concentrar en un solo monolito funcionalidades heterogéneas con demandas de carga muy distintas: la gestión transaccional de usuarios e instituciones, la entrega rápida de contenidos académicos no estructurados y la interacción en tiempo real en foros de discusión.

El reto principal consistió en diseñar una solución altamente disponible, modular y desacoplada, donde cada dominio de negocio pudiera escalar de forma independiente, utilizar la tecnología de persistencia más adecuada y contar con mecanismos automáticos de descubrimiento de servicios y detección de fallos.

Arquitectura Políglota & Dominio de Servicios

Para resolver la complejidad, el sistema se dividió en microservicios autónomos especializados por dominio de negocio:

  • Microservicio de Usuarios e Instituciones: Desarrollado en Spring Boot 3.4 sobre PostgreSQL 15, enfocado en la consistencia transaccional, gestión de roles y seguridad.

  • Microservicio de Cursos y Contenido Académico: Construido con FastAPI (Python 3.11) y MongoDB 6.0, optimizado para la entrega rápida de esquemas flexibles de contenido.

  • Microservicio de Foros y Notificaciones: Implementado en NestJS 11 para un manejo eficiente I/O asíncrono y comunicación ágil.

Todos los proyectos destacados

Arquitectura de Vistas, Servidor y Persistencia Políglota

Diseño de la capa de integración cliente-servidor y desacoplamiento de almacenamiento. Aunque la aplicación móvil (React Native 0.76.9 / Expo 52) requiere una vista unificada y ágil, la infraestructura por detrás distribuye las peticiones hacia distintas bases de datos y motores de ejecución optimizados para cada responsabilidad.

Sumaq Learn - Plataforma Educativa de Microservicios-imagen1

Estrategia de Persistencia Políglota (PostgreSQL & MongoDB)

En lugar de forzar un único motor de base de datos para toda la plataforma, se implementó el patrón de Persistencia Políglota (Polyglot Persistence), seleccionando la tecnología según la naturaleza del dato:

  • PostgreSQL 15 (Modelo Relacional): Asignado al microservicio de Usuarios e Instituciones en Spring Boot. Garantiza propiedades ACID, integridad referencial y consistencia transaccional en la gestión de cuentas, roles y estructuras institucionales.

  • MongoDB 6.0 (Modelo Documental): Asignado al microservicio de Cursos y Lecciones en FastAPI. Ofrece esquemas flexibles en JSON/BSON para almacenar estructuras jerárquicas de contenido académico cambiante y recursos multimedia sin sobrecoste de migraciones SQL.

Sumaq Learn - Plataforma Educativa de Microservicios-imagen2

Flujo de Datos y Capa de Exposición hacia la App Móvil

La interfaz cliente no realiza conexiones directas a los puertos de los microservicios ni conoce la topología de la base de datos. Toda la comunicación pasa por la capa de enrutamiento perimetral:

  • Consumo Unificado: La app móvil realiza llamadas REST limpias hacia Kong Gateway. Orquestación Asíncrona: Cada microservicio procesa su solicitud leyendo de su propia base de datos (aislamiento total de datos por microservicio).

  • Respuesta Optimizada: Los payloads devueltos se transforman para que las vistas móviles de React Native consuman objetos ligeros, reduciendo el sobrecoste de red en dispositivos móviles.

Sumaq Learn - Plataforma Educativa de Microservicios-imagen3

Todos los proyectos destacados

API Gateway, Service Discovery y Service Mesh

El núcleo de la infraestructura de red se diseñó para eliminar el acoplamiento rígido entre microservicios, centralizando la seguridad perimetral, el control de tráfico y el enrutamiento mediante la integración de Kong Gateway 3.6 y HashiCorp Consul 1.15.

Discovery Dinámico y Monitoreo de Salud

Para evitar configurar direcciones IP o puertos estáticos (hardcodeados), la arquitectura utiliza Consul 1.15 como motor de Service Discovery. Cada microservicio al iniciar se registra dinámicamente en Consul, anunciando su ubicación en la red y su estado de ejecución. Para garantizar la resiliencia del sistema, cada microservicio expone un endpoint dedicado a la comprobación de salud (/health o heartbeat). Consul ejecuta chequeos periódicos contra estos endpoints; si un servicio deja de responder o falla, Consul lo remueve automáticamente del catálogo dinámico para evitar que el tráfico se redirija a una instancia defectuosa.

Enrutamiento Perimetral con Kong Gateway

Kong Gateway 3.6 actúa como el punto único de entrada (Reverse Proxy). Se conecta dinámicamente con Consul para resolver la ubicación de los microservicios en tiempo real, aplicando transformaciones de rutas, balanceo de carga entre instancias y políticas de límite de peticiones (rate limiting) antes de autorizar el paso hacia el backend.

Todos los proyectos destacados

Seguridad JWT Distribuida, Docker Compose & Observabilidad

Para garantizar la seguridad de extremo a extremo, la facilidad de despliegue local y el monitoreo en tiempo real, se implementó una estrategia integradora utilizando Spring Security, Docker Compose y el stack de observabilidad con Prometheus, Grafana y Loki.

Orquestación con Docker Compose & Stack de Observabilidad

Toda la infraestructura (3 microservicios, 2 bases de datos, Kong Gateway, Consul y las herramientas de monitoreo) fue homogenizada mediante un entorno contenerizado con Docker Compose:

  • Métricas en Tiempo Real (Prometheus + Grafana): Recolección automática de métricas expuestas por cada microservicio (uso de CPU, memoria, latencia de endpoints, tasa de errores HTTP) visualizadas en dashboards personalizados en Grafana.

  • Centralización de Logs (Loki): Agregación de registros de todos los contenedores en tiempo real para realizar trazabilidad de peticiones y depuración de errores entre servicios desde un punto único.

Todos los proyectos destacados

Desarrollo Móvil Multiplataforma con Expo

Expo permitió mantener una única base de código en TypeScript compatible simultáneamente con Android e iOS, eliminando la necesidad de gestionar configuraciones nativas complejas en Android Studio o Xcode durante las fases iniciales. Gracias a su integración con el ecosistema de React Native, se logró un rendimiento nativo fluido al consumir los microservicios de la plataforma.

Todos los proyectos destacados