🌟 ¿Te sentís estancado aprendiendo DevOps? Aquí te dejo una solución práctica para avanzar en 60 días 🌟

Rossana SuarezRossana Suarez
7 min read

Aprender DevOps puede ser abrumador al principio. La cantidad de contenido disponible, la variedad de herramientas, y las múltiples áreas de enfoque pueden hacer que te sientas perdido. Si alguna vez te has encontrado atrapado en un ciclo interminable de tutoriales, leyendo artículos y viendo videos, pero sin ver resultados tangibles, no estás solo. Yo también pasé por esa experiencia. Afortunadamente, encontré una solución que me permitió avanzar significativamente en solo 60 días.

La clave de mi progreso radicó en un cambio de enfoque: aprender haciendo. En lugar de seguir consumiendo contenido sin aplicarlo a un proyecto real, decidí trabajar en algo concreto y tangible. Si también estás buscando un enfoque práctico para aprender DevOps y salir del ciclo de tutoriales, sigue leyendo.

¿Por qué es tan difícil aprender DevOps?

DevOps no es solo dominar herramientas individuales. La verdadera dificultad está en comprender cómo estas herramientas se interconectan para formar un flujo de trabajo eficiente y automatizado. Sin embargo, muchas veces caemos en el error de aprender herramientas sin comprender el panorama completo, lo que nos lleva a no ver cómo encajan entre sí.

Algunas razones comunes por las que muchos se estancan incluyen:

1️⃣ Demasiada información: El mundo de DevOps es vasto, y la cantidad de herramientas y tecnologías disponibles puede resultar abrumadora. Desde contenedores hasta orquestadores, pasando por CI/CD, automatización y monitoreo, la lista parece interminable. Esta sobrecarga de información es una trampa en la que muchos caemos.

2️⃣ Ciclo de tutoriales sin acción: Ver tutoriales y leer artículos puede parecer productivo, pero si no aplicamos lo aprendido en proyectos reales, simplemente estamos acumulando conocimiento superficial. El aprendizaje real se da cuando resolvemos problemas y aplicamos soluciones en situaciones prácticas.

3️⃣ Falta de contexto: Sin comprender el propósito detrás de cada herramienta, es difícil ver cómo encajan en el panorama general. Por ejemplo, entender por qué Kubernetes es útil solo tiene sentido cuando entiendes su relación con contenedores y la orquestación.

¿Cómo solucioné este problema?

Después de sentirme atrapada en el ciclo de tutoriales, decidí cambiar de enfoque: aprender haciendo. Eligiendo un proyecto real, pude aplicar lo aprendido y enfrentar los problemas reales que surgen al trabajar en DevOps. Esta fue la clave de mi progreso. Ahora, te invito a que sigas el mismo camino con un proyecto que puedes empezar hoy mismo.

La Solución: Aprender Creando en 60 Días

Proyecto recomendado: AWS Containers Retail Sample App

Screenshot

Si estás buscando un proyecto concreto para aprender DevOps de manera práctica, te recomiendo trabajar en el proyecto AWS Containers Retail Sample App. Este es un excelente punto de partida porque te permitirá tocar diversas tecnologías, como contenedores, orquestación, bases de datos, y más, en un entorno realista.

Architecture

¿Qué es AWS Containers Retail Sample App?

Este es un proyecto diseñado por AWS para ilustrar conceptos clave sobre el uso de contenedores en la nube. Es una aplicación de muestra que simula una tienda de retail, incluyendo un catálogo de productos, un carrito de compras y un proceso de pago. Aunque está orientada a fines educativos, esta aplicación te permite trabajar con un entorno de contenedores y te ayudará a entender cómo se ensamblan los componentes en una infraestructura DevOps real.

Características principales:

  • Interfaz de usuario (UI): Una aplicación front-end de demostración que incluye un catálogo de productos y un carrito de compras.

  • Componentes distribuidos: La aplicación utiliza una variedad de lenguajes y frameworks para el backend (Java, Go, Node.js), lo que te da la oportunidad de familiarizarte con múltiples tecnologías.

  • Persistencia de datos: Utiliza diferentes backends como MariaDB, DynamoDB, y Redis para almacenar los datos de la aplicación.

  • Orquestación de contenedores: Puedes desplegar la aplicación utilizando tecnologías de orquestación como Docker Compose o Kubernetes.

  • Instrumentación para monitoreo: Todos los componentes están instrumentados con Prometheus y OpenTelemetry para obtener métricas y trazabilidad.

  • Soporte para Istio: Si usas Kubernetes, puedes implementar Istio para gestionar el tráfico y la seguridad entre los servicios.

  • Generador de carga: Este proyecto incluye un generador de carga para simular tráfico en la infraestructura, lo cual te permitirá probar la escalabilidad y rendimiento de tu aplicación.

¿Cómo poner en marcha el proyecto?

El proyecto soporta diferentes métodos de despliegue. Aquí te muestro algunos de los más comunes:

1. Docker (local)

Si prefieres trabajar localmente en tu máquina, puedes ejecutar el contenedor con el siguiente comando:

docker run -it --rm -p 8888:8080 public.ecr.aws/aws-containers/retail-store-sample-ui:1.0.0

Accede al frontend en tu navegador visitando http://localhost:8888.

2. Docker Compose (local)

Si necesitas manejar múltiples contenedores, Docker Compose es la mejor opción. Descarga el archivo docker-compose.yaml y ejecuta la aplicación con:

curl https://github.com/aws-containers/retail-store-sample-app/releases/latest/download/docker-compose.yaml
DB_PASSWORD='<some password>' docker compose --file docker-compose.yaml up

Accede a la aplicación en http://localhost:8888.

3. Kubernetes (en la nube o local)

Si ya tienes un clúster de Kubernetes, puedes desplegar la aplicación con los siguientes comandos:

kubectl apply -f https://github.com/aws-containers/retail-store-sample-app/releases/latest/download/kubernetes.yaml
kubectl wait --for=condition=available deployments --all

Accede al frontend usando el servicio de carga balanceada:

kubectl get svc ui

4. Terraform (en la nube)

El proyecto también soporta el despliegue en Amazon EKS, ECS, y App Runner utilizando Terraform. Sigue las instrucciones proporcionadas en el repositorio de GitHub para configurar tu infraestructura en la nube.

Plan de Aprendizaje en 60 Días

Ahora que tienes un proyecto práctico para trabajar, aquí te dejo un plan detallado para avanzar rápidamente en tu aprendizaje de DevOps:

Semana 1-2: Fundamentos y Enfoque

  • Define tu objetivo: Antes de empezar, establece un objetivo claro y específico. Por ejemplo, "Construir y desplegar una aplicación contenerizada con CI/CD en AWS".

  • Familiarízate con las herramientas: Dedica las primeras dos semanas a aprender las herramientas esenciales de DevOps como Docker, Kubernetes, CI/CD y sistemas de monitoreo. No te sientas presionado por aprenderlo todo de una vez, elige algunas herramientas complementarias y enfócate en ellas.

Semana 3-4: Proyecto en Acción

  • Diseña tu aplicación: Diseña una aplicación sencilla con un frontend, backend y base de datos. Todo debe estar contenerizado y debe tener un pipeline de CI/CD.

  • Aplicación práctica: A medida que desarrollas, te enfrentarás a problemas reales que no verías en los tutoriales. Esto es valioso porque aprenderás a resolver obstáculos que ocurren en proyectos reales.

Semana 5-6: Integración y Optimización

  • Conecta los componentes: Conecta tu código, contenedores y servicios. Asegúrate de que el pipeline de CI/CD funcione perfectamente, con buenas prácticas de seguridad y monitoreo.

  • Optimiza el rendimiento: Realiza pruebas de carga utilizando el generador de tráfico del proyecto y ajusta los recursos según sea necesario.

Semana 7-8: Finalización y Documentación

  • Finaliza el proyecto: Concluye tu aplicación y asegura que todo esté en orden. Documenta cada paso del proceso.

  • Comparte tu experiencia: La mejor manera de consolidar tu aprendizaje es enseñar a otros. Comparte tu proyecto, crea contenido (blog, videos) y responde preguntas de la comunidad.

¿Por qué funciona este enfoque?

Este enfoque tiene varias ventajas:

  • Aprendes haciendo: Aplicar lo que aprendes a un proyecto real es mucho más efectivo que solo leer o ver tutoriales. Resuelves problemas y tomas decisiones, lo que solidifica tu comprensión.

  • Constancia y enfoque: Dedicar 1-2 horas al día es suficiente para ver avances significativos. La clave es la consistencia y la aplicación práctica.

  • Mejores prácticas: Aprendes no solo la teoría, sino también las mejores prácticas de la industria, como la seguridad, la automatización y el monitoreo.

¡Tú Puedes Lograrlo!

Recuerda, el camino hacia el dominio de DevOps no es fácil, pero es completamente alcanzable si te comprometes con el proceso y te enfocas en el aprendizaje práctico. Enfrentarás desafíos, cometerás errores y aprenderás a solucionarlos. Pero lo más importante es que te estás entrenando para enfrentar los retos del mundo real, no solo los que encuentras en tutoriales. Mantente constante, sé paciente contigo mismo, y celebra cada pequeño avance.

¡Es momento de salir de tu zona de confort y comenzar a construir algo real!

¡No hay límites, solo oportunidades! 🚀

Conclusión

El aprendizaje de DevOps no tiene que ser abrumador. Si tomas un enfoque práctico y trabajas en un proyecto real, como el AWS Containers Retail Sample App, lograrás avances significativos en poco tiempo. ¡Es hora de dejar los tutoriales atrás y comenzar a construir algo real!

¿Estás listo para el desafío DevOps? Si tienes dudas o preguntas, no dudes en contactarme. Y si te gustaría unirte a un Bootcamp DevOps, ¡pronto compartiré más detalles!


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 🔥