Skip to content

wbdvlprdrm/roxs-devops-project90

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 90 Días de DevOps con Roxs

Docker Node.js Node.js Flask Redis PostgreSQL Prometheus Grafana

Proyecto educativo de DevOps creado por roxsross para aprender conceptos fundamentales de desarrollo, contenedores, orquestación y monitoreo. ℹ️ Este repositorio parte del Docker Example Voting App y ha sido mejorado y adaptado por roxsross para el desafío 90 Días de DevOps.

🔥 ¿Por qué sumarte?

Porque aprender DevOps no tiene por qué ser aburrido ni costoso.
En este desafío vas a construir, romper y mejorar una app real... ¡con tus propias manos!
Con cada semana vas a aprender algo nuevo, y lo más importante: vas a aplicarlo al instante.

📢 "Si no lo deployás, no lo aprendiste." — Roxs

📸 Screenshots del Ecosistema ROXS

📦 Aplicación Principal 📋 Resultados 📊 🏠 Grafana Home 🐳 Docker Containers
Sistema de Votación Web Resultados Dash Grafana Contenedores onfire

🧩 Arquitectura de la Aplicación

Este repositorio incluye el código base de una aplicación distribuida, compuesta por tres servicios:

  • Vote : Servicio en Flask que permite votar (🐱 o 🐶) y publica los votos en Redis.
  • Worker : Servicio Node.js que consume votos desde Redis y los guarda en PostgreSQL.
  • Result : App Node.js que muestra los resultados en tiempo real usando WebSockets.

📦 Versiones recomendadas de los servicios

Servicio Lenguaje/Framework Versión recomendada
Vote Flask (Python) Python 3.13+, Flask 3.3+
Worker Node.js Node.js 20.x+
Result Node.js Node.js 20.x+
Redis Redis Redis 6.x+
PostgreSQL PostgreSQL PostgreSQL 15.x+

⚠️ Usar versiones iguales o superiores a las recomendadas asegura compatibilidad y soporte con las dependencias del proyecto.


🛠️ ¿Qué vas a construir?

A lo largo del programa, vos vas a encargarte de:

✅ Crear tus propios archivos docker-compose.yml
✅ Automatizar la configuración con Ansible
✅ Desplegar todo en local usando Terraform Provider Local
✅ Crear pipelines CI/CD con GitHub Actions
✅ Orquestar la app en Kubernetes
✅ Monitorear con Prometheus y Grafana
✅ (Opcional) Llevarlo a AWS


📂 Estructura del Repositorio

.
├── vote/             # Flask app (app.py)
├── worker/           # Worker Node.js (main.js)
├── result/           # Resultados en tiempo real (main.js)
├── views/            # HTML y frontend
├── load-testing/     # Pruebas de Carga y rendimiento con k6
├── README.md         # Este archivo ;)

⚠️ No se incluyen archivos de Docker, Terraform o CI/CD. Vos los vas a construir paso a paso como parte del desafío.


🗓️ Programa Semana a Semana

Semana Tema Clave Proyecto a construir
1 Linux + Vagrant + Ansible Levantar app sin Docker usando Vagrant
2 Docker y Docker Compose Crear los Dockerfiles y docker-compose.yml
3 GitHub Actions CI/CD Automatizar builds con self-hosted runner
4 Terraform (Provider Local) Crear infraestructura local con Terraform
5 Kubernetes local con Minikube Desplegar app dockerizada en clúster local
6 Despliegue con CI/CD a Kubernetes Automatizar despliegues en k8s
7 Seguridad en Contenedores Integrar herramientas de vulnerabilidades
8 Troubleshooting + Performance Debug y tuning de recursos
9 Despliegue en la Nube (EC2/EKS - Opcional) Llevar tu app a AWS

🤘 ¿Cómo empiezo?

Cloná el repo y seguí el material semanal en el sitio del programa.

git clone https://github.com/roxsross/roxs-devops-project90.git
cd roxs-devops-project90

El código está listo para que lo personalices, dockerices y automatices.


📈 Bonus: Métricas y Observabilidad

Todos los servicios están instrumentados con Prometheus. Podrás visualizar las métricas que vos mismo vas a recolectar y graficar con Grafana a partir de la semana 6.


💪 Motivación: ¿Por qué hacer este desafío?

Aprender DevOps puede parecer abrumador. Hay muchas herramientas, conceptos nuevos, y cientos de tutoriales que te dicen por dónde empezar… pero ninguno te lleva de la mano a construir algo real desde cero.

Este programa no es teoría vacía. Vas a construir una app real, como lo harías en un equipo profesional. Acá vas a equivocarte, arreglar, automatizar, monitorear y desplegar. Y cuando termines, vas a poder decir con orgullo: yo hice esto 💥

🧠 "DevOps no se aprende en un curso, se aprende en la práctica. Y este es tu campo de juego."


🧰 Recursos complementarios (para cada herramienta)

Herramienta Documentación Oficial Recurso Recomendado
Docker https://docs.docker.com/ Docker Workshop
Ansible https://docs.ansible.com/ Ansible para principiantes
Terraform https://developer.hashicorp.com/terraform/ Guía de Terraform en español
Kubernetes https://kubernetes.io/docs/home/ Kubernetes The Hard Way (by Kelsey Hightower)
GitHub Actions https://docs.github.com/actions Curso Gratuito GitHub Actions
Prometheus https://prometheus.io/docs/introduction/overview/ Observabilidad
Grafana https://grafana.com/docs/ Dashboards y Alertas con Grafana
PostgreSQL https://www.postgresql.org/docs/ PostgreSQL Tutorial
Redis https://redis.io/docs/ Aprendé Redis

🛠️ Tip: Agregá estos links como favoritos, los vas a necesitar cuando te enfrentes a errores reales 😉


🗺️ DevOps Roadmap para Principiantes

✔️ 1. Entender Linux y la terminal
✔️ 2. Automatizar entornos con Vagrant y Ansible
✔️ 3. Construir imágenes con Docker
✔️ 4. Orquestar servicios con Docker Compose
✔️ 5. Crear pipelines con GitHub Actions
✔️ 6. Definir infraestructura con Terraform
✔️ 7. Desplegar en Kubernetes (local)
✔️ 8. Agregar métricas con Prometheus y Grafana
✔️ 9. Aprender troubleshooting y performance
✔️ 🔥 BONUS: Subir tu proyecto a la nube (AWS)

Roadmap que recomiendo seguir DevOps

🎯 Objetivo final:

Tener un portfolio técnico completo y práctico, demostrando tus conocimientos en cada área del ciclo de vida DevOps.


📄 Licencia

Este proyecto está licenciado bajo MIT License - ver el archivo LICENSE para detalles.

👨‍💻 Autor

roxsross - Instructor DevOps y Cloud


💡 Si querés sumar este desafío a tu portfolio o como parte de tu onboarding, ¡hacelo con orgullo! 💥

About

by Roxs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 35.8%
  • JavaScript 33.5%
  • CSS 19.7%
  • Python 11.0%