Volver al Blog

DevOps dejó de ser moda para ser necesidad: Ansible everywhere y Terraform asomándose

DevOps dejó de ser moda para ser necesidad: Ansible everywhere y Terraform asomándose

2015 y ya nadie en las conferencias tech pregunta "¿qué es DevOps?". La pregunta ahora es "¿qué herramientas usas?". El cambio cultural que parecía imposible hace 5 años ahora es el estándar. Si tu empresa tech no tiene prácticas DevOps, estás en el museo de la historia.

Trabajo en una empresa donde la transformación DevOps empezó como un experimento y ahora es la columna vertebral de todo lo que hacemos. No fue fácil, pero hermano, la diferencia es día y noche.

El fin de la guerra Dev vs Ops

Recuerdo cuando los desarrolladores tiraban código "over the wall" a operaciones y se lavaban las manos. "Funciona en mi máquina" era la frase más odiada del planeta. Ops respondía con procesos burocráticos dignos de una entidad gubernamental. Deploy los viernes? Ni en sueños. Actualizar un servidor? Mínimo 3 semanas de papeleos.

Hoy en mi empresa deployamos 20 veces al día. Los desarrolladores tienen acceso a los logs de producción. Ops participa en las reuniones de arquitectura. Es hermoso ver a antiguos enemigos naturales trabajando juntos. Como perros y gatos viviendo en armonía. Bueno, casi.

Ansible: El héroe que no sabíamos que necesitábamos

Si hay una herramienta que cambió el juego en 2015, es Ansible. Simple, poderoso, y sin agentes. La santísima trinidad de la automatización.

Antes de Ansible, configurar 10 servidores idénticos era copiar y pegar comandos como cavernícola. Un typo y tenías 9 servidores funcionando y uno en limbo. Con Ansible, escribes un playbook y listo:


---
- name: Configurar servidores web
 hosts: webservers
 become: yes
 tasks:
   - name: Instalar nginx
     apt:
       name: nginx
       state: present
   
   - name: Copiar configuración
     template:
       src: nginx.conf.j2
       dest: /etc/nginx/nginx.conf
     notify: restart nginx
   
   - name: Asegurar que nginx está corriendo
     service:
       name: nginx
       state: started
       enabled: yes

30 líneas de YAML y tienes 100 servidores configurados idénticamente. Sin SSH manual, sin scripts bash frankenstein, sin lágrimas.

Lo mejor de Ansible es que es idempotente. Puedes correr el mismo playbook 50 veces y el resultado será el mismo. No como mis scripts bash del 2010 que cada ejecución era una aventura nueva.

Infrastructure as Code: No más clicks en la consola de AWS

El concepto de Infrastructure as Code (IaC) finalmente está tomando fuerza. Ya no es aceptable crear recursos manualmente en la consola de AWS como si fuera SimCity.

CloudFormation existe hace años pero escribir JSON para infraestructura es masoquismo puro. Intenté usarlo una vez. Una. El PTSD todavía me persigue.

Pero hay una nueva herramienta que está empezando a hacer ruido: Terraform. Salió hace poco de HashiCorp y promete ser el futuro de IaC. La sintaxis HCL es casi legible para humanos:


resource "aws_instance" "web" {
 ami           = "ami-0c55b159cbfafe1f0"
 instance_type = "t2.micro"

 tags = {
   Name = "WebServer"
 }
}

resource "aws_security_group" "web" {
 name        = "web_security"
 description = "Security group for web servers"

 ingress {
   from_port   = 80
   to_port     = 80
   protocol    = "tcp"
   cidr_blocks = ["0.0.0.0/0"]
 }
}

Todavía está verde, la documentación es escasa, y cada versión rompe algo. Pero el potencial es enorme. Poder manejar infraestructura multi-cloud con una sola herramienta? Sign me up.

CI/CD: De lujo a necesidad

Jenkins sigue siendo el rey del CI/CD, aunque cada vez más feo y con más plugins que un WordPress abandonado. Pero funciona. Y en DevOps, si funciona y es automatizable, es hermoso.

Mi pipeline favorito del momento:

  1. Developer pushea código a Git
  2. Jenkins detecta el cambio
  3. Corre tests automatizados
  4. Construye Docker container (sí, Docker también se volvió estándar)
  5. Deploy a staging usando Ansible
  6. Tests de integración
  7. Si todo pasa, deploy a producción

Todo esto en menos de 15 minutos. Recuerdo cuando un deploy tomaba un fin de semana completo y 3 pizzas.

Monitoring: Porque deployar rápido sin saber qué pasa es suicidio

Con gran poder de deployment viene gran necesidad de monitoring. Ya no es suficiente con Nagios revisando si el servidor responde ping.

El stack moderno de monitoring en 2015:

  • Métricas: Graphite + Grafana (Prometheus está empezando a sonar pero todavía es nicho)
  • Logs: ELK stack (Elasticsearch, Logstash, Kibana) es el nuevo estándar
  • APM: New Relic si tienes presupuesto, AppDynamics si tienes MUCHO presupuesto
  • Alertas: PagerDuty para despertar al on-call a las 3 AM

La cantidad de datos que generamos es obscena. Pero es mejor tener demasiada información que estar ciego cuando algo explota.

Los desafíos que nadie menciona

El factor humano: Convencer a un sysadmin de 20 años de experiencia que ahora debe aprender a programar es... complicado. "Yo no soy developer" es la nueva "funciona en mi máquina". La resistencia al cambio es real.

Tool fatigue: Cada semana sale una nueva herramienta que promete revolucionar DevOps. El FOMO es real. ¿Deberíamos usar Kubernetes? (spoiler: en 2015, probablemente no). ¿Mesos? ¿Nomad? ¿Docker Swarm? La parálisis por análisis puede matar la productividad.

Seguridad: Mientras más automatizas, más superficie de ataque creas. Ese playbook de Ansible con credenciales hardcodeadas? Sí, ese que committeaste a Git. Felicidades, acabas de regalar las llaves del reino.

DevOps en empresas tradicionales

Lo chistoso es ver empresas no-tech intentando subirse al tren DevOps. Bancos implementando CI/CD. Retail automatizando deployments. Es como ver a tu papá intentando usar Snapchat. Adorable pero doloroso.

El problema es que copian las herramientas sin entender la cultura. Compran Jenkins, contratan "DevOps engineers" (que es un oxímoron, by the way), y esperan magia. No funciona así.

DevOps es primero un cambio cultural, luego un cambio de procesos, y finalmente un cambio de herramientas. Hacerlo al revés es garantía de fracaso.

¿Qué sigue?

El 2015 marca un punto de inflexión. DevOps ya no es experimental, es esperado. Las herramientas están madurando. Ansible está conquistando el mundo de la automatización. Terraform muestra promesa para IaC. Docker está cambiando cómo pensamos sobre aplicaciones.

Pero esto es solo el principio. Los contenedores van a cambiar todo (aunque Kubernetes todavía es un bebé complicado). Serverless está en el horizonte. La automatización va a llegar a niveles que hoy parecen ciencia ficción.

Mi predicción: en 5 años vamos a mirar atrás a 2015 y pensar "qué primitivos éramos". Pero por ahora, estoy feliz automatizando todo lo que se mueva con Ansible y experimentando con Terraform los fines de semana.

El futuro es automatizado, y por fin las empresas tech lo entienden. Ahora solo falta que el resto del mundo se ponga al día. Pero esa es otra historia para otro día.

C

Sobre Carlos Donoso

Full Stack Developer y AI Engineer apasionado por crear soluciones innovadoras. Me especializo en desarrollo web moderno, inteligencia artificial y automatización. Comparto conocimiento para ayudar a otros developers a crecer en su carrera.

Comentarios 3

Comparte tu opinión

0/1000 caracteres
Avatar de Álvaro Díaz

Álvaro Díaz

22/11/2015
Carlos, entiendo lo q dices sobre DevOps, pero aún hay empresas pequeñas en Ecuador q no ven el valor inmediato. La inversión inicial es alta y no siempre tienen el equipo capacitado, no es tan sencillo como suena.
Carlos, entiendo lo q dices sobre DevOps, pero aún hay empresas pequeñas en Ecuador q no ven el valor inmediato. La inversión inicial es alta y no siempre tienen el equipo capacitado, no es tan sencillo como suena.

Responder a Álvaro Díaz

Avatar de Fernando Ortiz

Fernando Ortiz

06/11/2015
Totalmente! En mi chamba, adoptamos Ansible y Terraform el año pasado y es un cambio brutal. Las implementaciones son más rápidas y el equipo está más conectado. Antes era un caos coordinar todo, pero ahora fluye como agua.
Totalmente! En mi chamba, adoptamos Ansible y Terraform el año pasado y es un cambio brutal. Las implementaciones son más rápidas y el equipo está más conectado. Antes era un caos coordinar todo, pero ahora fluye como agua.

Responder a Fernando Ortiz

Avatar de Mario Ortiz

Mario Ortiz

14/09/2015
Yo he visto q la adopción completa de DevOps no es siempre tan exitoso como lo pintan. A veces, la resistencia cultural en las empresas es tan fuerte q todo el proceso se vuelve una carga. No digo q no funcione, pero no es magia tampoco.
Yo he visto q la adopción completa de DevOps no es siempre tan exitoso como lo pintan. A veces, la resistencia cultural en las empresas es tan fuerte q todo el proceso se vuelve una carga. No digo q no funcione, pero no es magia tampoco.

Responder a Mario Ortiz

¡Enlace copiado al portapapeles!