🚀 Cómo armé mi propio laboratorio DevOps: stack completo con monitoreo incluido


Hace tiempo vengo buscando una forma práctica y didáctica de enseñar DevOps sin depender de servicios pagos, con todo corriendo localmente, y que además sea realista. Así nació roxs-devops-stack, un laboratorio educativo con FastAPI, PostgreSQL, Nginx, Docker Compose y todo un stack de monitoreo con Prometheus y Grafana... ¡sí, todo en tu compu! 🧠💻
📦 Pre-requisitos técnicos
Para correr este laboratorio necesitás:
🔹 Docker Desktop instalado y corriendo
🔹 Docker Compose v2.34 o superior * ya viene incluido en el docker desktop
🔹 Make (opcional, pero súper útil)
🔹 Sistema operativo: Linux, macOS o Windows con WSL2
🔹 Al menos 4 GB de RAM (recomendado 8 GB)
🔹 Mínimo 5 GB libres en disco
🔹 Conexión a internet para descargar imágenes la primera vez
Verificá si ya tenés todo listo:
docker version
Client:
Version: 28.0.4
API version: 1.48
Go version: go1.23.7
Git commit: b8034c0
Built: Tue Mar 25 15:06:09 2025
OS/Arch: darwin/arm64
Context: desktop-linux
docker compose version
Docker Compose version v2.34.0-desktop.1
make --version # (opcional)
💡 Si estás en Windows, asegurate de tener WSL2 activado y Docker corriendo correctamente.
Podes completar el setup con mi blog anterior https://blog.295devops.com/crea-tu-laboratorio-devops-local-sin-gastar-un-peso
🎯 ¿Qué vas a encontrar en este proyecto?
La idea es que puedas aprender y practicar DevOps sin vueltas. El stack incluye:
Frontend con Nginx y HTML/CSS/JS vanilla
Backend con FastAPI y PostgreSQL
Docker y Docker Compose para orquestar todo
Prometheus + Grafana para monitoreo real
Node Exporter para métricas de sistema
Un Makefile lleno de comandos útiles
Dashboards visuales listos para usar
💡 Ideal para quienes quieren aprender DevOps desde cero o armar su propio laboratorio para practicar CI/CD, monitoreo, troubleshooting y más.
🧱 Arquitectura simple pero poderosa
Todo esto conectado por redes Docker personalizadas (roxs-devops-network
y roxs-monitoring-network
), con métricas expuestas en /metrics
y monitoreo en tiempo real de toda la aplicación. ¡Literalmente podés ver cuántas requests hacés y cómo responde tu app! 🔍📈
🧪 ¿Cómo lo usás?
- Clonás el repo:
git clone https://github.com/roxsross/roxs-devops-stack
cd roxs-devops-stack
make install
make all
- Accedé a los servicios:
Servicio | URL |
Frontend | http://localhost |
Backend API | http://localhost:3000 |
Docs API (Swagger) | http://localhost:3000/docs |
Prometheus | http://localhost:9090 |
Grafana | http://localhost:3001 (admin/admin) |
🎮 ¿Qué podés hacer?
Crear, listar, editar y borrar ítems desde el frontend
Ver métricas como requests, latencia, uptime
Ver dashboards en Grafana con performance y estado de todos los servicios
Inspeccionar logs del backend
Ver el estado de salud de cada contenedor
Probar los endpoints con
curl
o Swagger UI
📊 El toque DevOps: métrica, logging y dashboards
Este no es solo un “todo corre en Docker”, sino que incluye un sistema de monitoreo funcional, con:
Dashboards listos en Grafana
Métricas de performance de la API
Estado de la base de datos
Logs estructurados del backend
Health checks, latencia y uptimes
🎯 ¡Ideal para aprender Prometheus y Grafana sin pelearte con configuraciones!
🛠️ ¿Qué aprendés armándolo?
Cómo dockerizar backend y frontend
Cómo conectar servicios con redes personalizadas
Cómo exponer y recolectar métricas con Prometheus
Cómo visualizar todo con Grafana
Cómo automatizar con Makefile
Troubleshooting real con logs y health checks
📸 Screenshots by ROXS
Revisa en: https://github.com/roxsross/roxs-devops-stack
🧪 Casos de uso recomendados
🔍 Simular caídas y ver alertas en Prometheus/Grafana
🧩 Practicar debugging usando métricas y logs
📈 Agregar nuevas métricas personalizadas a FastAPI
🔐 Experimentar con escaneos de seguridad (Próximo paso del roadmap)
📦 Crear tu pipeline CI/CD con GitHub Actions usando este stack como base
📊 Detrás del monitoreo
La app expone métricas en /metrics
usando Prometheus client for Python. Entre las métricas disponibles:
Métrica | Significado |
http_requests_total | Requests HTTP totales |
http_request_duration_seconds | Latencia promedio |
database_items_total | Cantidad de ítems en la DB |
app_uptime_seconds | Tiempo que lleva activa la app |
database_status | Estado de conexión a PostgreSQL |
Todo esto es recolectado por Prometheus, y luego Grafana lo grafica automáticamente. Ya incluye dashboards preconfigurados.
🧰 Makefile: tu asistente DevOps
El Makefile
te ahorra escribir comandos largos. Algunos highlights:
make up # Levanta la app
make down # La detiene
make monitoring # Solo Prometheus + Grafana
make logs # Ver logs en tiempo real
make health # Chequeo de salud de servicios
make urls # Muestra todas las URLs
⚙️ ¿Y si no quiero usar make
?
Sin drama. Todos los comandos del Makefile también se pueden ejecutar manualmente con Docker Compose. Acá te dejo los pasos:
🔧 Levantar la aplicación sin make
# 1. Cloná el repo
git clone https://github.com/roxsross/roxs-devops-stack
cd roxs-devops-stack
# 2. Levantar la aplicación principal
docker compose -f docker-compose.yml up -d
# 3. Levantar el stack de monitoreo
docker compose -f docker-compose.monitoring.yml up -d
📊 Acceder a los servicios
Servicio | URL |
Frontend | http://localhost |
Backend API | http://localhost:3000 |
Swagger Docs | http://localhost:3000/docs |
Prometheus | http://localhost:9090 |
Grafana | http://localhost:3001 (admin/admin) |
🔍 Ver logs
docker compose logs -f
docker compose -f docker-compose.monitoring.yml logs -f
💡 Consejo: si no usás
make
, podés revisar el archivoMakefile
para ver todos los comandos disponibles y adaptarlos a tu estilo.
docker-compose
con guión en lugar de docker compose
separado.💡 ¿Cómo personalizar este stack?
Algunas ideas para que lo hagas tuyo:
Cambiá la base de datos a MySQL o MongoDB
Usá React o Vue como frontend (sirve igual con Nginx)
Agregá tu propio microservicio
Sumá alertas reales con
Alertmanager
Añadí un
Dockerfile
para testing o CI
🧠 ¿Querés probarlo?
👉 https://github.com/roxsross/roxs-devops-stack
Dale una estrella ⭐ si te gusta, y escribime si querés sumarte a contribuir o tenés ideas.
🔮 ¿Qué sigue?
Este es solo el comienzo. En el roadmap tengo pensado:
CI/CD completo con GitHub Actions
Deploy en Kubernetes con Helm y ArgoCD
Configuración de Terraform para IaC
Integración con herramientas de seguridad
Test de performance y Chaos Engineering
¡Y todo lo vas a poder practicar con este stack base! 💥
🎓 Bonus: se viene "90 Días de DevOps by Roxs" 🚀
¿Querés aprender DevOps en serio, acompañado/a, y con práctica real?
🧑💻 Estoy lanzando una experiencia gratuita llamada 90 Días de DevOps by Roxs, con:
🔁 Encuentros semanales ó quincenales (según cómo avancemos)
📦 Proyectos reales como el
roxs-devops-stack
💬 Comunidad privada para dudas, feedback y networking
📈 Desafíos técnicos, guías y tips de carrera
🤝 Totalmente GRATIS (solo cupo limitado)
🎯 Solo para las primeras 200 personas
👉 ¿Querés participar?
📩 Completá este formulario de interés o escribime por redes y te mando el acceso cuando abramos inscripciones.
¡Va a ser una aventura intensa, práctica y transformadora!
✉️ Contacto
🤘 ¡Nos vemos en el próximo experimento DevOps!
Subscribe to my newsletter
Read articles from Rossana Suarez directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Rossana Suarez
Rossana Suarez
Soy Roxs 👩💻| Software Developer | DevOps | DevSecOps | en @295DevOps 🖼 Content Creator. No se puede crecer si no estas dispuesto a saltar a la zona de peligro 🔥