20 Ideas DevOps para Principiantes: Construye tus fundamentos


Si estás comenzando en DevOps, la mejor manera de adquirir habilidades es mediante proyectos prácticos. Los proyectos no solo te permiten aprender, sino también experimentar con herramientas y conceptos clave que se utilizan en la vida real. ¡Y lo mejor es que puedes ejecutar estos proyectos localmente, en plataformas como Killercoda o labs.iximiuz.com! Estas plataformas te brindan entornos ideales para practicar sin necesidad de configurar todo desde cero en tu máquina local.
A continuación, te traigo 20 ideas DevOps para principiantes que te ayudarán a construir una base sólida y a familiarizarte con las herramientas y conceptos fundamentales. ¡Vamos al challenge!
1. Automatización de Tareas Básicas con Scripts Bash
Aprende a usar Bash para automatizar tareas repetitivas de administración del sistema, como eliminar archivos antiguos o crear copias de seguridad. Este es un primer paso para familiarizarte con la automatización de procesos que se repiten en el entorno de desarrollo y administración de sistemas.
Enfoque:
Crea un script
.sh
que elimine logs antiguos de una carpeta específica.Usa comandos como
ls
,rm
,cp
ytar
para manejar archivos y directorios.Añade condicionales (
if/else
) y bucles (for
) para darle flexibilidad al script, de manera que puedas personalizar el comportamiento según las necesidades.Practica con Killercoda: En Killercoda puedes realizar una gran variedad de prácticas que te permitirán afianzar lo aprendido con Bash, como la creación de scripts más complejos y la ejecución en entornos controlados.
Objetivo:
Familiarizarte con Bash, aprender a automatizar tareas comunes y comprender la lógica básica de programación en un entorno Unix/Linux.
2. Pipeline de CI/CD Básico con GitHub Actions
Configura un pipeline sencillo que ejecute pruebas automáticas cada vez que empujas código al repositorio. Ideal para entender cómo funciona la integración continua y cómo automatizar los procesos de construcción y prueba en tus proyectos.
Enfoque:
Crea un repositorio en GitHub y sube un pequeño proyecto (por ejemplo, una app en Node.js o Python).
Configura un archivo de flujo de trabajo en
.github/workflows/main.yml
para que se ejecute cada vez que se haga unpush
al branch principal.Agrega pasos para hacer el checkout del código, instalar dependencias y correr pruebas automáticas.
Entrenamiento en CI/CD en GitHub: Si quieres comenzar a entrenarte con CI/CD en GitHub, cuentas con los pasos disponibles directamente en la documentación oficial de GitHub Actions. Aquí podrás entender cómo configurar y personalizar tus pipelines, lo que te permitirá automatizar tareas de forma eficiente y segura.
Objetivo:
Familiarizarte con GitHub Actions y aprender los fundamentos de la integración continua mediante la automatización de pruebas en un flujo de trabajo de CI/CD.s automáticas.
3. Despliegue de un Sitio Estático con Docker
Aprende los principios de contenerización utilizando Docker para ejecutar un sitio web estático dentro de un contenedor. Este proyecto te permitirá familiarizarte con la creación de contenedores Docker para aplicaciones web simples.
Enfoque:
Crea una página web básica con HTML y CSS.
Escribe un
Dockerfile
usando una imagen base comonginx:alpine
para servir tu sitio web.Construye la imagen con
docker build
y corre el contenedor condocker run
para poner en marcha tu sitio estático.Refuerza tus conocimientos de Docker: Puedes usar esta web, que ofrece varios temas sobre sitios estáticos, y si deseas profundizar más en Docker, este tutorial sobre Docker es increíble para aprender más sobre la contenerización y cómo utilizar Docker en diferentes escenarios.
Objetivo:
Familiarizarte con la creación y ejecución de contenedores Docker para sitios estáticos, lo que te permitirá aplicar principios de contenerización en proyectos reales.
4. Monitoreo Básico del Sistema en Linux
Familiarízate con los comandos básicos de Linux para monitorear el rendimiento de tu sistema, como CPU, memoria y espacio en disco.
Enfoque:
Utiliza comandos como
top
,htop
,df -h
yfree -h
para monitorear los recursos del sistema.Puedes escribir un script que verifique la carga del sistema y avise si hay problemas de rendimiento.
Practica con Killercoda
5. Automatización de Instalación de Paquetes en Linux
Crea un script para automatizar la instalación de software en un servidor Linux. Esto te ayudará a entender cómo mantener tus servidores consistentes.
Enfoque:
Escribe un script en Bash que instale herramientas esenciales como
git
,docker
,nodejs
.Usa
apt
oyum
según el sistema operativo que estés utilizando.Practica con Killercoda
6. Control de Versiones con Git
Aprende los conceptos básicos de Git, la herramienta más usada para el control de versiones en proyectos de software.
Enfoque:
Inicializa un repositorio con
git init
.Realiza un commit, crea ramas y haz merges de manera sencilla.
Aprende a resolver conflictos de fusión.
Practica con Killercoda
7. Provisionamiento de Servidores con Ansible
Ansible es una herramienta de automatización que te permite configurar servidores y aplicaciones de manera eficiente. Ideal para principiantes en IaC (Infraestructura como Código).
Enfoque:
Instala Ansible en tu máquina y escribe un playbook básico para instalar un servidor web (como
nginx
).Ejecuta el playbook con
ansible-playbook
y configura tu servidor automáticamente.Practica con Killercoda
8. Rotación Automática de Logs
Aprende a gestionar archivos de logs para evitar que llenen el disco con información innecesaria.
Enfoque:
Usa
logrotate
para gestionar logs y asegurarte de que los archivos no crezcan demasiado.Configura el archivo de configuración de
logrotate
para realizar la rotación y compresión de logs automáticamente.Practica con Killercoda
9. Introducción a Terraform para IaC
Terraform es una herramienta de IaC que te permite gestionar infraestructuras en la nube. Comienza con algo simple como crear una máquina virtual en AWS.
Enfoque:
Instala Terraform y configura tu proveedor (por ejemplo, AWS).
Crea un archivo
main.tf
que defina una instancia de EC2 en AWS.Usa
terraform init
,terraform plan
, yterraform apply
para provisionar la infraestructura.
10. Monitoreo de Uptime de un Sitio Web con Cron Jobs
Configura un cron job para verificar la disponibilidad de un sitio web y enviarte un aviso si está caído.
Enfoque:
Escribe un script que use
curl
para verificar el código de estado HTTP de un sitio.Si el sitio está caído, el script enviará un correo electrónico o una alerta por Slack.
Programa el script para que se ejecute cada 5 minutos usando
cron
.
11. Pipeline de CI/CD con Jenkins y Docker
Configura un pipeline básico de CI/CD en Jenkins y usa Docker para crear un entorno de construcción consistente.
Enfoque:
Instala Jenkins y configúralo para usar Docker.
Crea un
Jenkinsfile
para definir las etapas del pipeline: checkout del código, construcción de la imagen Docker, pruebas y despliegue.
12. Despliegue de una Aplicación Web en AWS usando Terraform
Lleva el concepto de IaC un paso más allá creando una infraestructura en AWS para alojar una aplicación web.
Enfoque:
Usa Terraform para crear recursos en AWS, como una instancia EC2 y un grupo de seguridad.
Implementa una aplicación simple en la instancia y hazla accesible a través de un balanceador de carga.
13. Respaldo Automático de Bases de Datos con Shell Scripts
Aprende a crear copias de seguridad automatizadas de una base de datos y a almacenarlas en la nube.
Enfoque:
Escribe un script que use
mysqldump
opg_dump
para crear una copia de seguridad de la base de datos.Comprime la copia de seguridad y súbela a un servicio de almacenamiento en la nube como AWS S3.
14. Configuración Básica de Kubernetes con Minikube
Configura un clúster Kubernetes localmente con Minikube y aprende los conceptos básicos como Pods y Servicios.
Enfoque:
Instala Minikube y
kubectl
en tu máquina.Inicia un clúster local con
minikube start
y despliega una aplicación simple en Kubernetes.
15. Gestión Centralizada de Logs con ELK Stack
Aprende a recolectar y visualizar logs usando Elasticsearch, Logstash y Kibana (ELK).
Enfoque:
Despliega Elasticsearch y Kibana utilizando Docker.
Usa Logstash para procesar logs de un servidor o aplicación y visualízalos en Kibana.
16. CI/CD para Microservicios con Docker y Kubernetes
Aprende cómo gestionar una arquitectura de microservicios usando Docker y Kubernetes.
Enfoque:
Configura un repositorio para múltiples microservicios.
Crea un pipeline de CI/CD que construya imágenes Docker, ejecute pruebas y las despliegue en Kubernetes.
17. Gestión de Configuración de Servidores con Puppet
Puppet es una herramienta poderosa para gestionar la configuración de servidores. Ideal para principiantes que quieren aprender IaC.
Enfoque:
- Instala Puppet y configura un servidor web con
nginx
usando un manifiesto de Puppet.
18. Revisiones Automáticas de Calidad de Código con SonarQube
Integra SonarQube en tu pipeline para realizar análisis estáticos de código y asegurar que se cumplan los estándares de calidad.
Enfoque:
Configura un servidor de SonarQube y conéctalo a tu pipeline de CI/CD.
Ejecuta análisis de calidad de código cada vez que se haga un commit en el repositorio.
19. Implementación de un Servidor de Nginx con Docker y Ansible
Aprende a automatizar la implementación de un servidor Nginx usando Docker y Ansible para la configuración de servidores de forma eficiente.
Enfoque:
Crea un archivo
Dockerfile
para desplegar Nginx en un contenedor Docker.Utiliza Ansible para automatizar la instalación de Docker y la configuración del contenedor Nginx en un servidor remoto.
Configura un playbook de Ansible para asegurarte de que el servidor tenga el contenedor Docker con Nginx funcionando automáticamente.
Objetivo:
Familiarizarte con la integración de Docker y Ansible para la gestión y configuración de servidores.
20. Automatización del Proceso de Certificados con Let's Encrypt
Automatiza la obtención y renovación de certificados SSL/TLS usando Let's Encrypt.
Enfoque:
Usa
certbot
para obtener y renovar certificados SSL de manera automática.Configura un cron job para renovar los certificados periódicamente.
Estos fundamentos de DevOps son esenciales para cualquiera que quiera adentrarse en el mundo de la automatización, integración continua y gestión de infraestructuras. A medida que avanzas en estos proyectos, estarás construyendo no solo una base técnica sólida, sino también una mentalidad ágil y eficiente que te permitirá enfrentar desafíos reales en el desarrollo y despliegue de aplicaciones. Además, aprender y practicar con herramientas como Docker, GitHub Actions, Ansible y Terraform te abrirá puertas a muchas oportunidades en el mundo de la tecnología.
Recuerda que el camino en DevOps es un proceso continuo de aprendizaje y mejora. No tengas miedo de experimentar, probar nuevas herramientas y enfrentarte a desafíos. Cada pequeño paso te acerca más a ser un profesional completo en este campo.
¡Estamos todos juntos en esta ola!
Si tienes alguna duda o quieres seguir aprendiendo más sobre DevOps, puedes encontrarme en mis redes sociales. ¡Conéctate conmigo y sigamos compartiendo conocimiento y creciendo juntos!
Twitter: @roxsross
LinkedIn: Rossana Suarez
GitHub: roxsross
YouTube: 295devops
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 🔥