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

Rossana SuarezRossana Suarez
6 min read

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?

  1. Clonás el repo:
git clone https://github.com/roxsross/roxs-devops-stack
cd roxs-devops-stack
make install
make all
  1. Accedé a los servicios:

🎮 ¿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étricaSignificado
http_requests_totalRequests HTTP totales
http_request_duration_secondsLatencia promedio
database_items_totalCantidad de ítems en la DB
app_uptime_secondsTiempo que lleva activa la app
database_statusEstado 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

ServicioURL
Frontendhttp://localhost
Backend APIhttp://localhost:3000
Swagger Docshttp://localhost:3000/docs
Prometheushttp://localhost:9090
Grafanahttp://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 archivo Makefile para ver todos los comandos disponibles y adaptarlos a tu estilo.

💡
Si utilizas una versión de Docker Compose anterior a la v2.34.0 (incluida en Docker Desktop), debes usar el comando 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

Imagen generada


👉 ¿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!

2
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 🔥