Seguimiento de Estudiantes con FastAPI en la Nube y MongoDB, Kubernetes, GitOps

Proyecto cloud native de DevOps: Student Tracker con FastAPI y MongoDB, desplegado con Docker, Kubernetes, Helm y ArgoCD en GitOps, con CI/CD y observabilidad (Prometheus, Grafana, Loki, Tempo).

26 sept 2025 • 5 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Realicé un análisis de brechas de habilidades sobre mi trayectoria como ingeniero DevOps buscando mi siguiente reto profesional y detecté que, aunque había construido proyectos pequeños, aún no había desarrollado un proyecto cloud native de grado de producción que integrara todas las prácticas clave de DevOps. Me propuse diseñar, desplegar y gestionar una aplicación Student Tracker basada en FastAPI con backend en MongoDB, poniendo el foco en funcionalidades DevOps más que en la interfaz de usuario. Este proyecto me permitió unificar containerización, Kubernetes, Helm, CI CD, GitOps, monitoring y observabilidad en un único flujo de trabajo.

Resumen del proyecto: diseño e implementación de una aplicación de seguimiento de estudiantes con FastAPI y MongoDB, desplegada en contenedores Docker, orquestada con Kubernetes y gestionada con Helm y ArgoCD en un enfoque GitOps, además de incluir pipelines de CI CD y un stack de observabilidad con Prometheus, Grafana, Loki y Tempo.

Requisitos previos: editor de código como VS Code, una terminal, opcionalmente una instancia en la nube, conocimientos básicos de Docker y Kubernetes, y herramientas como kubectl, helm y kind. En mi caso utilicé una instancia EC2 en AWS para replicar un entorno similar a producción.

Términos clave y componentes: Docker para construir y empaquetar la aplicación. Kubernetes para automatizar despliegues y escalado. Ingress para enrutar tráfico HTTP y HTTPS hacia servicios dentro del cluster. Helm y Helm charts como gestor de paquetes para Kubernetes. GitOps como modelo que toma a Git como única fuente de verdad. ArgoCD como controlador que sincroniza el estado en clúster con el estado deseado en Git. Monitoring y observabilidad para correlacionar métricas, logs y trazas y entender el estado interno de la aplicación. Vault para la gestión segura de secretos como credenciales y claves.

Proceso paso a paso: 1 Probar la aplicación localmente. Instalé Python, creé y activé un entorno virtual, instalé dependencias desde requirements.txt, exporté credenciales de Vault por CLI y ejecuté la app con uvicorn. Probé la API desde el navegador o herramienta de pruebas REST en https://ip_publica:8000 y registré usuarios de prueba. 2 Containerizar y publicar en Docker Hub. Creé un Dockerfile, construí la imagen y la probé localmente en contenedor con las variables de entorno necesarias. Autenticado en Docker Hub desde la CLI, subí la imagen al repositorio. 3 Crear un clúster Kubernetes con Kind para pruebas locales. Kind ejecuta nodos Kubernetes como contenedores Docker; requiere un archivo de configuración y Docker instalado. 4 Desplegar en Kubernetes. Definí manifiestos Kubernetes para namespace, secrets, deployment, service e ingress. Instalé un controlador de ingress como nginx ingress controller y expuse la aplicación mediante un host de ingress. Verifiqué recursos con kubectl get all -n namespace y accedí a la app vía host de ingress. 5 Desplegar con Helm. Creé un chart desde cero, personalicé Chart.yaml y templates, añadí el repositorio del controlador nginx ingress y lo instalé con Helm. Instalé mi chart indicando namespace y fichero de valores personalizados para parametrizar imagen, replicas, recursos y secrets. 6 Implementar CI CD con GitHub Actions. Definí workflows en .github/workflows que reaccionan a push en main. El pipeline construye la imagen, ejecuta pruebas, y despliega a una instancia EC2 mediante ssh o acciones específicas. Guardé credenciales e IPs como secrets en GitHub y verifiqué el despliegue en la instancia destino. Como desarrollador añadí una vista admin en la app y al pushear los cambios el pipeline volvió a desplegar y la ruta /admin quedó accesible. 7 Adoptar GitOps con ArgoCD. Para separar responsabilidades creé un repositorio GitOps independiente que contiene las definiciones de aplicación y valores Helm. Instalé ArgoCD con Helm en un namespace argocd, configuré el servidor para acceso y utilicé la UI y/o manifiestos application para registrar mi aplicación. Automatizé el flujo para que un pipeline actualice la imagen en values.yaml y al hacer commit ArgoCD detecta el cambio y sincroniza el clúster. 8 Implementar monitoring y observabilidad con LGTP. Modifiqué el código para exponer métricas Prometheus, y desplegué kube-prometheus-stack que incluye Prometheus y Grafana, además de Tempo y Loki para trazas y logs. Definí aplicaciones ArgoCD siguiendo el patrón app of apps para gestionar los distintos componentes desde una aplicación padre. Añadí las fuentes de datos en Grafana y construí dashboards para métricas críticas, paneles de logs en Loki y trazas en Tempo.

Errores comunes y soluciones: Error 1 problemas de acceso por puertos cerrados. Detecté mediante nmap que solo estaba accesible el puerto 22 y parcheé el deployment del controlador ingress para usar hostNetwork en Kind porque los pods en contenedores no exponen puertos del host por defecto. Error 2 despliegue en ArgoCD fallido por usar un fichero de valores personalizado. Solución: mantener valores por defecto en values.yaml y especificar en ArgoCD el fichero my-values.yaml a usar. Error 3 module not found en los logs de ArgoCD por rutas incorrectas en el Dockerfile tras reorganizar el proyecto. Solución: corregir rutas y estructura del Dockerfile para que Python encuentre los módulos correctamente.

Conclusión: este proyecto fue un antes y un después en mi camino DevOps. Construir un Student Tracker cloud native con FastAPI, MongoDB y todo el ecosistema DevOps me enseñó a diseñar flujos end to end desde el testing local hasta despliegues listos para producción, a cómo GitOps con ArgoCD simplifica la gestión de clústeres, y a la importancia de unir logs, métricas y trazas para lograr observabilidad. Los errores forman parte del aprendizaje y el debugging aporta más que los despliegues sin fricciones.

Sobre Q2BSTUDIO: en Q2BSTUDIO somos una empresa de desarrollo de software centrada en ofrecer soluciones a medida y servicios profesionales en áreas como aplicaciones a medida, software a medida, inteligencia artificial y ciberseguridad. Diseñamos y desplegamos arquitecturas cloud y pipelines DevOps adaptadas a las necesidades de cada cliente y ofrecemos servicios de desarrollo de aplicaciones a medida que incluyen integración continua, despliegues automatizados y seguridad desde el diseño. Además apoyamos infraestructuras en la nube con servicios cloud AWS y Azure, ofrecemos soluciones de inteligencia de negocio y power bi y desarrollamos agentes IA y proyectos de ia para empresas para impulsar la automatización y la analítica avanzada. Si buscas un partner que combine experiencia en DevOps, observabilidad, bases de datos NoSQL como MongoDB y capacidades de inteligencia artificial y ciberseguridad, Q2BSTUDIO ofrece equipos multidisciplinares capaces de llevar iniciativas desde la prueba de concepto hasta producción.

Palabras clave integradas: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat