El problema
EconoMarket integra una aplicación de comercio electrónico mediante servicios especializados. Además de implementar comportamiento de aplicación, el proyecto necesita integrar componentes y llevar sus imágenes de contenedor a un entorno Kubernetes.
Mi contribución
Implementé EconoMarket de forma completa, incluido su pipeline CI/CD. Este caso se enfoca en partes concretas de la implementación: comportamiento de catálogo, integraciones externas, contratos de servicio y automatización de entrega.
Servicios e integración
El servicio de catálogo en Go maneja productos, categorías y operaciones de stock mediante capas explícitas de servicio y repositorio. Las actualizaciones de stock se conectan a un cliente de notificaciones por gRPC.
El servicio de integración obtiene información desde proveedores externos con timeouts HTTP y manejo de reintentos. Su cliente también usa caché respaldada por Redis. Estos componentes muestran cómo el comportamiento local de aplicación interactúa con dependencias más lentas o menos predecibles.
Entrega con contenedores
GitHub Actions coordina validaciones de servicios para Node.js, Go y Python, construye imágenes de contenedor y las publica para despliegue. La entrega en Kubernetes usa kubectl para aplicar recursos de servicios, tareas programadas y configuración de ingress en GKE.
El pipeline incluye comprobaciones básicas de funcionamiento y validación/plan de Terraform. Son partes de un flujo de entrega más amplio; el foco de ingeniería principal está en empaquetar y conectar servicios de aplicación.
Para un vistazo más detallado al diseño del flujo de trabajo y sus límites actuales de pruebas, ver Flujos de entrega con contenedores.
Resultados y límites
El proyecto incluye componentes de aplicación, interfaces de servicio, pruebas, configuración de entrega con contenedores y pasos de despliegue en Kubernetes. Se presenta como implementación académica, no como sistema comercial con tráfico productivo verificado o garantías de disponibilidad.
Las pruebas y flujos de trabajo existentes no demuestran por sí solos que todo comportamiento esté validado. Algunos comandos de prueba del pipeline toleran fallos, por lo que no deben describirse como controles estrictos antes de publicar.
Lecciones de ingeniería
Este proyecto conecta mi base de software con el trabajo de infraestructura que disfruto. Implementar un servicio es solo una parte del problema: también necesita contrato, manejo de fallos en dependencias, imagen de contenedor y una ruta comprensible hacia su entorno.
