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
- Entornos legacy – Empresas con infraestructura monolítica limitan la exposición a herramientas modernas.
- Falta de proyectos propios – Sin iniciativas de automatización, el aprendizaje queda teórico.
- Enfoque en tareas operativas – El día a día consume tiempo que podría dedicarse a profundizar en conceptos de infraestructura.
- 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:
- Fundamentos de Linux y networking – Consolida conocimientos de procesos, permisos, systemd, firewalls y TCP/IP.
- Scripting y automatización – Elige Bash para tareas rápidas y Python para lógica más compleja; integra Git para control de versiones.
- 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 devirtualenv. - 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
- Docker
- Construir imágenes multi‑stage, usar
docker composepara levantar una pila LAMP.
- Construir imágenes multi‑stage, usar
- Kubernetes (k8s)
- Instalar
k3sen una VM, desplegar la aplicación Docker anterior como Deployment y Service.
- Instalar
- Terraform
- Definir infraestructura mínima en AWS (VPC, EC2, S3) y aplicar con
terraform apply.
- Definir infraestructura mínima en AWS (VPC, EC2, S3) y aplicar con
- 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
- Ejecuta
ansible-playbook -i inventory playbook.yml. - Verifica que Docker está activo:
systemctl status docker. - Comprueba que el contenedor responde:
curl http://<host_ip>:8080. - En el clúster k3s, ejecuta
kubectl get pods -Ay confirma que el podnginx-demoestá en estado Running. - 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-vaultosopspara 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.