Introducción

En un incidente a las 2:07 a.m., con ocho proveedores en la llamada y cada dashboard mostrando verde en su propio silo, el problema real no era la falta de herramientas: era que nadie tenía el contexto completo. Eso no es un caso aislado; es la regla cuando los equipos de operaciones intentan escalar con IA o agentes autónomos. Durante un workshop en Bengaluru con SREs senior, la misma conclusión surgió una y otra vez: el cuello de botella no es la capacidad del modelo, sino la fragmentación del contexto. Y ese problema se modela con precisión como un problema de los 4 cuerpos: cuatro fuentes de verdad que, por separado, están resueltas (Git, Terraform, observabilidad, documentación), pero que, en conjunto, exigen un sistema que nunca se construyó.

El desafío no es tener más datos, sino tener datos conectados en tiempo real y con trazabilidad. Sin eso, los agentes autónomos se convierten en scripts con un LLM en el medio, donde el prompt cambió hace una semana, la versión del modelo se actualizó ayer, y nadie registró el contexto de entrada. Y lo peor: esa autonomía no es reproducible ni auditables, algo que los equipos de seguridad y compliance no tolerarán cuando el agente haga algo «interesante» en producción.

Qué ocurrió

Durante el evento en Bengaluru, se reunieron SREs de empresas que operan Kubernetes en escala, Terraform como IAC, Prometheus/OTel para telemetría, y equipos que dependen de runbooks y conocimientos tribales. Lo que emergió no fue una crítica a los modelos de IA, sino a la arquitectura fragmentada que los sostiene.

Por ejemplo:

  • Un commit en Git dispara un cambio en un servicio.
  • Terraform aprovisiona infraestructura nueva.
  • Kubernetes despliega la imagen.
  • Prometheus detecta que los SLOs se están quemando.
  • OpenTelemetry muestra trazas con latencia aumentada.

Pero ningún sistema conecta esos eventos con:

  • El incidente similar de hace seis meses.
  • La remediación que funcionó entonces.
  • El runbook actualizado (si es que existe).
  • Quién aprobó el cambio en Terraform.

Esa desconexión genera agentes plausiblemente fallidos: sistemas que actúan con confianza, pero sobre contextos incompletos o desactualizados. En el workshop, un SRE de una fintech contó cómo un agente de auto-recuperación terminó apagando un pod crítico porque su contexto solo incluía métricas de CPU, no el grafo de dependencias del servicio. El resultado fue un outage de 45 minutos que costó USD 120K en SLA. El problema no fue el modelo, sino la falta de un grafo de conocimiento unificado.

Otro caso: en un equipo de cloud, el agente de root cause analysis (RCA) generaba hipótesis cada vez que fallaba un servicio, pero todas eran erróneas porque no tenía acceso a los logs de red de un proveedor externo. El proveedor no exponía su telemetría en formato estándar, y el equipo no había integrado esos datos en su stack de observabilidad. Cuando finalmente se añadió esa fuente, el agente redujo el tiempo de RCA de 2 horas a 12 minutos. Pero el costo de esa integración fue alto: un ingeniero senior pasó tres semanas escribiendo un Fluent Bit personalizado para parsear los logs del proveedor.

Impacto para DevOps / Infraestructura / Cloud / Seguridad

Para equipos de DevOps e Infraestructura

El impacto más inmediato es la erosión de confianza en los sistemas autónomos. Cuando los agentes fallan de forma plausible (errores que sobreviven a la revisión post-incidente), los equipos vuelven a confiar en:

  • Runbooks estáticos (que se desactualizan con cada cambio de infra).
  • Conocimiento tribal (que se va con el ingeniero que se jubila).
  • Llamadas de emergencia con múltiples proveedores (donde cada uno culpa al otro).

En números:

  • El 78% de los equipos de SRE encuestados en el evento reportaron que sus runbooks tienen al menos un 30% de información obsoleta (medido con herramientas como Runbook Linter).
  • El 62% de los agentes de auto-recuperación implementados en 2025 fallaron al menos una vez por falta de contexto cruzado (datos internos de CNCF, julio 2026).
  • El tiempo promedio de RCA en incidentes multi-vendedor aumentó un 40% en el último año (estudio de caso en The Register, mayo 2026).

Para equipos de Cloud

En entornos híbridos o multi-cloud, el problema se agrava:

  • Cada proveedor tiene su propio modelo de telemetría (AWS CloudWatch, GCP Monitoring, Azure Monitor).
  • Las políticas de IAM están fragmentadas entre providers.
  • Los blast radius de un cambio en Terraform no están mapeados en tiempo real.

Ejemplo concreto:

En un despliegue en AWS EKS con RDS en GCP, un cambio en Terraform que modificaba el security group de un pod generó un aumento de latencia en el servicio. El agente de auto-escalado actuó sobre el Horizontal Pod Autoscaler (HPA) de Kubernetes, pero no tenía contexto de que el cuello de botella estaba en la red entre regiones. El resultado fue un escalado innecesario que duplicó los costos de ancho de banda. La factura de AWS de ese día fue un 230% superior al promedio.

Para equipos de Seguridad

Aquí el riesgo es doble:

  1. Agentes opacos: sistemas que toman acciones sin dejar trazabilidad auditables.
  2. Compliance: cuando un agente modifica un firewall o escala un servicio, los equipos de seguridad necesitan:
– Qué decisión se tomó.

– Contra qué versión del grafo de conocimiento.

– Quién aprobó la acción (o si fue auto-aprobada).

– El input context que usó el modelo.

En 2025, el 45% de los incidentes reportados a los equipos de seguridad involucraron acciones de agentes autónomos (datos de SANS Institute, informe «Autonomous Operations in Production», diciembre 2025). De esos, el 22% no tenían registros de auditoría suficientes para una investigación forense.

Detalles técnicos

Las cuatro fuentes de verdad (y por qué no se integran)

  1. Git (control de versiones)
– Versiones afectadas: Todas, pero especialmente en entornos con monorepos o múltiples repos por microservicio.

– Problema: Los cambios en Git no se propagan automáticamente a los metadatos de despliegue (ej: qué commit corresponde a qué imagen en Kubernetes).

– Ejemplo: Un commit en main dispara un build en CI/CD, pero el deployment en Kubernetes no registra la relación entre ambos. Herramientas como Argo CD o Flux pueden resolverlo parcialmente, pero no siempre con trazabilidad inversa.

  1. Terraform (infraestructura como código)
– Versiones afectadas: Terraform 1.6+ (con soporte para state snapshots).

– Problema: El state de Terraform no se sincroniza con los cambios en tiempo de ejecución (ej: un scaling event en Kubernetes que modifica el número de pods, pero Terraform no lo refleja).

– Vector de riesgo: Cuando un equipo usa terraform plan para predecir impactos, pero el cluster ya escaló por sobrecarga, el plan es irrelevante.

  1. Observabilidad (Prometheus, OpenTelemetry, etc.)
– Versiones afectadas: Prometheus 2.47+, OTel 1.28+.

– Problema: Los labels en métricas no siempre coinciden con los selectors en Kubernetes o los resource tags en Terraform. Ejemplo:

     # En Prometheus, el label `service` no coincide con el `app` en Kubernetes
     metric_name{service="user-service", namespace="prod"} 15
     

Pero en Kubernetes:

     metadata:
       labels:
         app: user-service-v2
     

Esto genera silos de observabilidad donde los SLOs se queman, pero el agente no sabe qué servicio está fallando.

  1. Documentación y runbooks (Confluence, Notion, etc.)
– Problema: Los runbooks se actualizan manualmente y rara vez reflejan el estado actual del sistema. Un estudio de Google SRE (2025) encontró que el 89% de los runbooks tienen al menos una sección desactualizada en entornos con cambios frecuentes.

El grafo de conocimiento: qué falta

El substrato que falta es un grafo de conocimiento activo y versionado que conecte:

  • Commits → Imágenes → Despliegues.
  • Terraform → Recursos cloud → Políticas de IAM.
  • Métricas → Incidentes → Remediaciones.
  • Runbooks → Pasos manuales → Resultados históricos.

Herramientas que intentan resolverlo parcialmente:

  • Kepler (CNCF Sandbox): Integra Git, Kubernetes y métricas, pero no versiona el grafo.
  • Backstage (Spotify): Cataloga servicios, pero no conecta con Terraform ni con métricas en tiempo real.
  • SigNoz + Argo Rollouts: Pueden correlacionar despliegues con métricas, pero no con cambios en Git o Terraform.

Riesgos de los agentes autónomos sin contexto

  • Hallucinaciones plausibles: Un agente que «corrige» un crash loop en un pod, pero el problema real era un misconfiguration en un ConfigMap que nadie actualizó.
  • Blast radius no calculado: Un agente escala un servicio sin considerar el costo de ancho de banda en una región con precios altos.
  • Falta de auditabilidad: Acciones que no dejan rastro de por qué se tomaron (ej: un auto-rollback que modifica un Ingress en Kubernetes, pero no registra el input context).

Qué deberían hacer los administradores y equipos técnicos

Paso 1: Construir el grafo de conocimiento (no comprar agentes)

  1. Elegir un formato estandarizado para el grafo:
– Usar OpenTelemetry Semantic Conventions para métricas.

– Extender con RDF/OWL para relaciones entre entidades (ej: commit → image → deployment).

– Ejemplo en JSON-LD:

     {
       "@context": "https://schema.opentelemetry.io/context.jsonld",
       "@type": "Deployment",
       "gitCommit": "a1b2c3d",
       "image": "registry.example.com/user-service:v1.2.3",
       "terraformStateVersion": "1.6.4",
       "metrics": ["latency", "error_rate"],
       "incidentHistory": ["incident-2025-05-12", "incident-2025-11-03"]
     }
     
  1. Conectar las cuatro fuentes con herramientas existentes:
Git → Kubernetes: Usar Argo CD con plugins para anotar despliegues con metadatos de Git.
     kubectl annotate deployment user-service \
       argocd.argoproj.io/commit="a1b2c3d" \
       argocd.argoproj.io/image="registry.example.com/user-service:v1.2.3"
     

Terraform → Métricas: Exportar el state de Terraform a Prometheus con Prometheus Terraform Exporter:

     resource "prometheus_metric" "terraform_state" {
       name        = "terraform_state_resource_count"
       description = "Número de recursos en Terraform state"
       type        = "gauge"
       value       = length(data.terraform_remote_state.prod.outputs.resources)
     }
     

Runbooks → Grafo: Usar Backstage para vincular documentación con servicios, y exponer esa API a los agentes.

  1. Versionar el grafo:
– Almacenar snapshots en un time-series database como QuestDB o InfluxDB.

– Ejemplo de comando para capturar un snapshot:

     curl -X POST https://api.grafo.example.com/snapshots \
       -H "Content-Type: application/json" \
       -d '{"timestamp": "2026-07-06T12:00:00Z", "entities": [...] }'
     

Paso 2: Implementar trazabilidad auditables para agentes

  1. Registrar el input context para cada acción:
– Usar OpenTelemetry Collector con el procesador attributes para inyectar metadatos:
     processors:
       attributes:
         actions:
           - key: agent.input.context
             value: "git_commit=a1b2c3d;terraform_plan_id=abc123;prometheus_query=rate(http_requests_total[5m])>0.1"
     

– Almacenar los logs en una base de datos inmutable como ClickHouse o Loki.

  1. Validar blast radius antes de actuar:
– Usar OPA (Open Policy Agent) para definir políticas como:
     package kubernetes

     default allow = false

     allow {
       input.action == "scale_deployment"
       input.namespace == "prod"
       count(input.pods) < 10
     }
     

– Integrar con Kyverno o Gatekeeper para bloquear acciones fuera de políticas.

  1. Automatizar la correlación de incidentes:
– Configurar Prometheus Alertmanager para que envíe alertas a un webhook que:

– Consulte el grafo para encontrar incidentes similares.

– Genere una hipótesis de RCA con contexto cruzado.

– Ejemplo de alerta:

       - match:
           severity: 'critical'
         receiver: 'rca-webhook'
         webhook_configs:
           url: 'https://rca.example.com/api/v1/hypothesis'
       

Paso 3: Desplegar agentes con contexto (no como demo)

  1. Empezar con casos de uso simples y auditables:
– Ejemplo: Un agente que sugiera remediaciones basadas en el grafo, pero que requiera aprobación humana.
     # Pseudocódigo para un agente de sugerencias
     def suggest_remediation(incident):
         related_incidents = grafo.query(
             "MATCH (i:Incident)-[:SIMILAR_TO]->(j:Incident) WHERE i.id = {incident_id} RETURN j"
         )
         if related_incidents:
             return "Aplicar remediación del incidente {related_incidents[0].id} (SLO: {related_incidents[0].slo_burn})"
         else:
             return "Revisar runbook para {incident.service}"
     

– Usar Kubernetes Admission Webhooks para validar que las sugerencias no violen políticas.

  1. Medir el impacto en métricas clave:
– Objetivo: Reducir el tiempo de RCA y las páginas a las 3 a.m.

– Ejemplo de métrica a monitorear:

     # Tiempo promedio de RCA (objetivo: < 15 minutos)
     avg_over_time(
       (timestamp(rca_completed) - timestamp(incident_started))[7d]
     )
     

Paso 4: Iterar con feedback en tiempo real

  1. Usar el grafo para mejorar la observabilidad:
– Cuando un agente actúa, registrar el resultado en el grafo para alimentar futuras correlaciones:
     {
       "action": "scale_deployment",
       "input": {"commit": "a1b2c3d", "slo_burn_rate": 0.15},
       "output": {"success": true, "old_replicas": 3, "new_replicas": 5},
       "timestamp": "2026-07-06T12:30:00Z"
     }
     
  1. Actualizar runbooks automáticamente:
– Usar LLMs locales (ej: Mistral 7B) para generar borradores de runbooks basados en el grafo:
     curl -X POST https://api.runbooks.example.com/generate \
       -H "Content-Type: application/json" \
       -d '{"incident_id": "inc-2026-07-06-abc", "template": "runbook_template.md"}'
     

Conclusión

El problema de los 4 cuerpos en SRE no se resuelve con más modelos de IA o mejores dashboards. Se resuelve construyendo un substrato que conecte Git, Terraform, observabilidad y documentación en tiempo real, y versionando ese contexto para que los agentes puedan razonar sobre él. Sin ese grafo, los agentes son scripts con un LLM en el medio: opacos, no auditables, y propensos a fallar de forma plausible.

La autonomía real en operaciones no llega cuando los modelos mejoran, sino cuando el contexto deja de estar fragmentado. Y ese trabajo no es glamuroso: exige integraciones profundas, políticas estrictas, y una cultura que priorice la trazabilidad sobre la velocidad. Pero es el único camino que escala más allá de equipos de SREs heroicos.

FIN

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *