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 • Equip 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?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.

Live Chat