Desplegar Temporal IA Workflows: Introducción
Tabla de contenidos
Parte 1 de 3. Lee la Parte 2 para desplegar el servidor de Temporal y los workers en Kubernetes.
Temporal elimina los problemas de confiabilidad que persiguen a los pipelines de IA. Lo aprendí por las malas: workflows de n8n se rompieron cuando una llamada a OpenAI expiró, dejando datos dispersos en tres bases de datos y una cola de mensajes. Recuperarlo tomó 4 horas de limpieza manual y perdimos el 12% del contenido de ese día. La historia completa está en Conoce al Ingeniero. El saga pattern de Temporal resolvió esto por completo. Pero desplegarlo en Kubernetes con persistencia, seguridad y escalado de producción me tomó tres semanas de prueba y error. Esta guía entrega el despliegue paso a paso que desearía haber tenido desde el día uno. Consulta la documentación de Temporal para detalles del SDK y los docs de Kubernetes para configuración del cluster.
¿Qué es Temporal?
Temporal es un motor de orquestación de workflows open-source diseñado para procesos multi-paso de larga duración. Garantiza confiabilidad mediante:
- Reintentos Automáticos: Backoff configurable para fallos transitorios: timeouts de API, fallos de red
- Compensation Handlers: Saga pattern que deshace trabajo parcial cuando los workflows fallan
- Persistencia de Estado: El estado del workflow sobrevive a reinicios de workers, fallos de nodos, upgrades de cluster
- Distributed Tracing: Trazabilidad completa para cada ejecución de workflow y activity
- Versioning: Actualiza definiciones de workflow sin romper ejecuciones activas
La arquitectura se centra en colas de tareas: el servidor gestiona el estado del workflow, el historial y el emparejamiento de tareas, mientras los workers ejecutan activities individuales. Puedes escribir workers en Go, Python, Java o TypeScript. Recurro a Temporal cuando un workflow abarca más de dos llamadas API o involucra múltiples almacenes de datos. Para una comparativa de herramientas, lee n8n vs Temporal.
Cómo funciona Temporal por dentro
Antes de desplegar, conoce los cuatro servicios core del servidor de Temporal:
- Frontend: Maneja peticiones de clientes, iniciar workflows, señalizar, consultar. Expone el puerto 7233.
- History: Mantiene el estado del workflow, historial de eventos y timers. Usa Cassandra, PostgreSQL o MySQL.
- Matching: Empareja tareas con workers disponibles. Gestiona las colas de tareas y el rate limiting.
- Worker: Workflows internos de Temporal para replicación, archivado y jobs por lotes.
Todos los servicios se comunican mediante gRPC y escalan de forma independiente para cargas de alto volumen. En producción, ejecuto Frontend y History en nodos dedicados para evitar contención de recursos. Ajusta PostgreSQL según la documentación de PostgreSQL y configura Elasticsearch según la guía de Elasticsearch. Para patrones relacionados, consulta Pipelines de IA Event-Driven.
Prerrequisitos
- Cluster de Kubernetes (1.25+) con al menos 3 nodos para producción
- kubectl configurado con acceso de admin al cluster
- Container registry (Docker Hub, ECR, GCR) para imágenes de worker
- PostgreSQL 14+ (para persistencia)
- Elasticsearch 8+ (para visibilidad de workflows)
- Helm 3.0+ (opcional, usamos manifests raw para control total)
Revisa Seguridad en Automatización de IA para mejores prácticas de seguridad en tu despliegue de IA en Kubernetes.
Preguntas Frecuentes
¿Qué hace diferente a Temporal de una cola de mensajes? Temporal es un motor de ejecución durable, no solo una cola. Preserva el estado completo del workflow ante fallos, soporta compensación saga y proporciona visibilidad de ejecuciones. Una cola de mensajes solo entrega mensajes: no gestiona estado ni reintentos.
¿Necesito Elasticsearch para Temporal? Elasticsearch impulsa el visibility store, el índice searchable de cada ejecución. Sin él, solo puedes listar por ID. Con él, filtras por estado, tipo, atributos personalizados y rangos de tiempo. Para pipelines de IA en producción, Elasticsearch es muy recomendado.
¿Puedo ejecutar Temporal sin Kubernetes? Sí. Temporal funciona en bare metal, VMs o Docker Compose. Sin embargo, Kubernetes proporciona el escalado, auto-reparación y gestión declarativa que exigen las cargas de IA en producción. Esta guía se centra en Kubernetes por esas razones.
¿Cuál es el despliegue mínimo de producción? Como mínimo, una instancia de PostgreSQL, un servidor de Temporal y un worker. Para resiliencia, ejecuta al menos 3 réplicas del servidor, PostgreSQL con replicación y workers distribuidos en varios nodos.
¿Cómo maneja Temporal el cifrado de secretos? Temporal cifra los datos de workflow en reposo usando una clave configurable. En Kubernetes, almacena los secretos en recursos Secret nativos y móntalos como variables de entorno o archivos en tus pods de worker.
¿Listo para desplegar? Continúa a la Parte 2 donde configuramos secrets, ConfigMaps, PostgreSQL, Elasticsearch, el servidor de Temporal y tu primer worker en Python.