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:
- Developer pushea código a Git
- Jenkins detecta el cambio
- Corre tests automatizados
- Construye Docker container (sí, Docker también se volvió estándar)
- Deploy a staging usando Ansible
- Tests de integración
- 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.
Comentarios 3
Comparte tu opinión
Álvaro Díaz
Fernando Ortiz
Mario Ortiz