Problema

Muchos profesionales que han pasado los últimos años gestionando servidores tradicionales sienten que su experiencia está fragmentada: instalaban paquetes repetidamente, seguían SOPs rígidos y apenas tocaron automatización o infraestructura como código. Cuando intentan postular a roles de DevOps, los reclutadores buscan dominio de contenedores, orquestadores, cloud y pipelines CI/CD. El reto es estructurar un plan de estudio que cubra los huecos críticos sin perder tiempo en certificaciones superficiales.

Causa

  1. Entornos legacy – Empresas con infraestructura monolítica limitan la exposición a herramientas modernas.
  2. Falta de proyectos propios – Sin iniciativas de automatización, el aprendizaje queda teórico.
  3. Enfoque en tareas operativas – El día a día consume tiempo que podría dedicarse a profundizar en conceptos de infraestructura.
  4. Ausencia de mentoría – Sin guía, el autodidactismo se dispersa y se generan lagunas en networking, seguridad y cloud.

Solución

Diseñar un roadmap modular que combine teoría, práctica y retroalimentación. Cada módulo se apoya en proyectos “hands‑on” que pueden ejecutarse en una laptop o en un entorno de homelab. El objetivo es alcanzar tres hitos:

  1. Fundamentos de Linux y networking – Consolida conocimientos de procesos, permisos, systemd, firewalls y TCP/IP.
  2. Scripting y automatización – Elige Bash para tareas rápidas y Python para lógica más compleja; integra Git para control de versiones.
  3. Infraestructura como código y orquestación – Introduce Ansible, Terraform, Docker y Kubernetes en ese orden, terminando con pipelines CI/CD y cloud (AWS).

Módulo 1 – Linux + Networking

  • Repasa gestión de paquetes (apt, yum), systemd, journald y SELinux/AppArmor.
  • Practica configuraciones de red: ip, iptables/nftables, DNS y DHCP.
  • Proyecto: montar dos VMs (Ubuntu y CentOS) y crear una red puente; habilitar acceso SSH sin contraseña usando claves públicas.

Módulo 2 – Scripting

  • Bash: loops, funciones, manejo de errores (set -euo pipefail).
  • Python: módulos subprocess, os, pathlib; uso de virtualenv.
  • Proyecto: script que recorra un directorio, comprima logs mayores a 10 MB y los envíe a S3 usando awscli.

Módulo 3 – Contenedores y Orquestación

  1. Docker
    • Construir imágenes multi‑stage, usar docker compose para levantar una pila LAMP.
  2. Kubernetes (k8s)
    • Instalar k3s en una VM, desplegar la aplicación Docker anterior como Deployment y Service.
  3. Terraform
    • Definir infraestructura mínima en AWS (VPC, EC2, S3) y aplicar con terraform apply.
  4. Ansible
    • Crear playbook que configure los nodos k3s, instale Docker y despliegue los manifests.

Módulo 4 – CI/CD y Cloud

  • Configura un repositorio GitHub con Actions que compile la imagen Docker, la publique en ECR y actualice el clúster k3s vía Ansible.
  • Explora servicios gestionados de AWS: ECS/Fargate, RDS y CloudWatch.
  • Proyecto final: pipeline completo que tome código fuente, lo empaquete, lo despliegue en un clúster Kubernetes en AWS y notifique resultados en Slack.

Cuándo aplicar esta solución

  • Síntomas: entrevistas que exigen experiencia con Docker/K8s, ofertas que piden “infraestructura como código” y tu CV muestra solo SOPs estáticos.
  • Escenarios válidos: profesionales con 1‑3 años de sysadmin, acceso a una máquina Linux y tiempo parcial (10‑15 h/semana) para estudio.
  • Exclusiones: roles puramente de soporte de escritorio o de hardware donde no se manipulan entornos virtualizados; en esos casos el roadmap pierde relevancia.

Código

# Playbook Ansible básico para instalar Docker y desplegar un contenedor
---
- hosts: all
  become: true
  tasks:
    - name: Instalar paquetes requeridos
      apt:
        name: ['apt-transport-https', 'ca-certificates', 'curl', 'gnupg']
        state: present
        update_cache: yes

    - name: Añadir clave GPG de Docker
      apt_key:
        url: https://download.docker.com/linux/ubuntu/gpg
        state: present

    - name: Añadir repositorio Docker
      apt_repository:
        repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable
        state: present

    - name: Instalar Docker Engine
      apt:
        name: docker-ce
        state: latest

    - name: Ejecutar contenedor nginx
      docker_container:
        name: nginx_demo
        image: nginx:alpine
        state: started
        ports:
          - "8080:80"

Verificación

  1. Ejecuta ansible-playbook -i inventory playbook.yml.
  2. Verifica que Docker está activo: systemctl status docker.
  3. Comprueba que el contenedor responde: curl http://<host_ip>:8080.
  4. En el clúster k3s, ejecuta kubectl get pods -A y confirma que el pod nginx-demo está en estado Running.
  5. Revisa el pipeline de GitHub Actions; la última ejecución debe terminar con “Success” y el mensaje en Slack debe aparecer.

Notas adicionales

  • Iteración rápida: no esperes a que todo funcione a la primera; el objetivo es aprender de cada error.
  • Documenta cada paso en un repositorio propio; esa documentación será tu mejor carta de presentación.
  • Comunidad: únete a foros de Kubernetes y Terraform; los “issues” de GitHub son una fuente constante de casos reales.
  • Seguridad: al manipular credenciales en scripts, usa aws-vault o sops para evitar fugas.
  • Balance: dedica al menos un 30 % del tiempo a leer código abierto (Helm charts, módulos Terraform) para interiorizar buenas prácticas.