La integración de sistemas de Inteligencia Artificial, procesos de procesamiento de datos e infraestructuras IT se ha convertido en uno de los desafíos más significativos para las organizaciones modernas. A menudo, se termina ensamblando una serie de scripts ad-hoc y microservicios, creando un «patchwork» difícil de gestionar, escalar y mantener. Este enfoque fragmentado conduce a altos costos operativos, retrasos en el desarrollo y una ineficiencia general que impacta directamente en la capacidad de innovar. Un entorno con 2.000 endpoints y más de 300 VMs, como el que gestiono, no puede permitirse soluciones artesanales cuando se trata de automatización y AI. Se necesita un framework robusto que unifique la gestión de estos elementos, reduciendo la complejidad y aumentando la productividad.
Tested on: Ubuntu 24.04 LTS · Python 3.10 · Docker 26.x · Agosto 2026
Requisitos Previos / Entorno de Prueba
Para replicar los ejemplos y empezar a utilizar Modular, es necesario tener un entorno con:
- Python: Versión 3.8 o superior.
- pip: El gestor de paquetes Python.
- Git: Para clonar el repositorio de Modular.
- Docker (opcional): Para ejecutar los módulos en contenedores aislados, útil para la escalabilidad y la gestión de dependencias.
# Instalar Python (si no está ya presente)
sudo apt update
sudo apt install python3 python3-pip git -y
# Verificar las versiones
python3 --version
pip --version
git --version
# Instalar Docker (si se va a usar)
sudo apt install docker.io -y
sudo usermod -aG docker ${USER}
newgrp docker
1. Instalación y Primer Workflow con Modular
La instalación de Modular es sencilla. Una vez instalado Python y pip, basta con clonar el repositorio e instalar las dependencias. El corazón de Modular reside en su capacidad para definir workflows como grafos de módulos interconectados, donde cada módulo ejecuta una operación específica.
Instalación
Clonamos el repositorio e instalamos el framework. Es buena práctica crear un entorno virtual Python para aislar las dependencias.
# Clonar el repositorio Modular
git clone https://github.com/modular/modular.git
cd modular
# Crear y activar un entorno virtual
python3 -m venv venv
source venv/bin/activate
# Instalar Modular y sus dependencias
pip install -e .
Definir un Workflow Sencillo
Creamos un archivo my_workflow.py que define dos módulos: uno que genera un mensaje y otro que lo procesa. Este ejemplo ilustra la composición básica.
# my_workflow.py
from modular import module, workflow
@module
def generate_message(name: str) -> str:
return f"Hola, {name}! Bienvenido a Modular."
@module
def process_message(message: str) -> str:
return f"Mensaje procesado: '{message.upper()}'"
@workflow
def simple_greeting_workflow(name: str):
message = generate_message(name=name)
processed = process_message(message=message)
return processed
if __name__ == '__main__':
result = simple_greeting_workflow(name="Rosario")
print(result)
Para ejecutar este workflow, basta con lanzar el script Python:
python3 my_workflow.py
El output será Mensaje procesado: 'HOLA, ROSARIO! BIENVENIDO A MODULAR.'. Esto demuestra cómo Modular gestiona el paso de datos entre los módulos de forma transparente.
Lee también: Hardening SSH en Linux: Guía Completa 2026
2. Integración con Componentes AI y Datos Reales
El verdadero potencial de Modular emerge cuando se integra con componentes AI reales, como modelos de Machine Learning, y fuentes de datos externas. Imaginemos que queremos crear un workflow que tome un texto, lo envíe a un modelo de análisis de sentimiento (simulado por simplicidad) y luego guarde el resultado.
# ai_data_workflow.py
from modular import module, workflow
import pandas as pd # Para simular la gestión de datos
@module
def fetch_text_data(source_id: str) -> str:
# Simula la recuperación de datos de una DB o API
data = {"1": "El servicio es excelente y rápido.", "2": "Tuve problemas con la entrega."}
return data.get(source_id, "Texto no encontrado")
@module
def analyze_sentiment(text: str) -> dict:
# Simula un modelo AI de análisis de sentimiento
if "excelente" in text.lower() or "rápido" in text.lower():
sentiment = "positivo"
score = 0.9
elif "problemas" in text.lower():
sentiment = "negativo"
score = 0.3
else:
sentiment = "neutro"
score = 0.5
return {"text": text, "sentiment": sentiment, "score": score}
@module
def store_results(analysis: dict) -> None:
# Simula el guardado de los resultados en una base de datos o archivo
df = pd.DataFrame([analysis])
# En un caso real: df.to_sql('sentiment_results', con=db_connection)
print(f"Resultado guardado: {df.to_dict(orient='records')}")
@workflow
def sentiment_analysis_pipeline(data_source_id: str):
text_data = fetch_text_data(source_id=data_source_id)
sentiment_output = analyze_sentiment(text=text_data)
store_results(analysis=sentiment_output)
if __name__ == '__main__':
# Ejecutamos el workflow para dos fuentes de datos diferentes
print("\n--- Análisis 1 ---")
sentiment_analysis_pipeline(data_source_id="1")
print("\n--- Análisis 2 ---")
sentiment_analysis_pipeline(data_source_id="2")
Para ejecutar este ejemplo, asegúrate de haber instalado pandas:
pip install pandas
python3 ai_data_workflow.py
Este workflow demuestra cómo Modular puede orquestar pasos distintos: recuperación de datos, inferencia AI y persistencia. Cada @module es una unidad lógica que puede ser desarrollada y probada independientemente. Lee también: Agency Agents: Orquestación de Agentes AI
Errores Comunes y Resolución de Problemas
- Dependencias faltantes:
ModuleNotFoundErrores el error más común. Asegúrate de que todas las librerías Python utilizadas en tus módulos estén instaladas en el entorno virtual. Usapip install -r requirements.txtsi tienes un archivo de requisitos. - TypeError en los parámetros de los módulos: Modular usa type hints para validar los tipos de entrada y salida de los módulos. Si pasas un tipo que no coincide con el esperado, obtendrás un
TypeError. Revisa las firmas de tus funciones@module. - Problemas de ejecución con Docker: Si utilizas Docker para tus módulos, asegúrate de que el servicio Docker esté activo (
sudo systemctl status docker) y que tu usuario tenga los permisos necesarios (sudo usermod -aG docker ${USER}). - Workflows complejos no se inician: Para workflows muy grandes, verifica la lógica de conexión entre los módulos. Un ciclo infinito o un módulo que espera una entrada nunca generada pueden bloquear la ejecución. Utiliza herramientas de depuración estándar de Python para inspeccionar el flujo.
FAQ — Preguntas Frecuentes
¿Modular soporta la ejecución distribuida de los workflows?
Sí, Modular está diseñado para soportar la ejecución distribuida. Cada módulo puede ser configurado para ejecutarse en diferentes recursos computacionales, incluyendo contenedores Docker, Kubernetes o servidores remotos, facilitando la escalabilidad horizontal y la optimización del uso de los recursos. Esto es crucial para cargas de trabajo intensivas típicas de la AI.
¿Puedo integrar Modular con mis modelos de Machine Learning preexistentes?
Absolutamente sí. Modular actúa como una capa de orquestación. Puedes encapsular tus modelos ML (ya sean en TensorFlow, PyTorch, scikit-learn o cualquier otro) dentro de un @module. Este módulo recibirá las entradas, ejecutará la inferencia y devolverá las salidas, integrándose perfectamente en el workflow general.
¿Cuál es la diferencia entre Modular y un orquestador de workflow genérico como Apache Airflow?
Aunque ambos son orquestadores, Modular se concentra específicamente en la orquestación de componentes AI y datos, con un fuerte énfasis en la modularidad y la composición a través de decoradores Python. Airflow es más genérico, basado en DAG (Directed Acyclic Graph) y más orientado al procesamiento por lotes y ETL tradicionales. Modular ofrece una abstracción más elevada para las tareas de AI/ML.
¿Cómo gestiona Modular el versionado de los módulos y los datos?
Modular no incluye un sistema de versionado nativo para los datos o los modelos AI, pero está diseñado para integrarse con herramientas externas. Puedes utilizar Git para el versionado del código de los módulos y soluciones como MLflow o DVC (Data Version Control) para rastrear versiones de modelos y conjuntos de datos, insertando estas interacciones dentro de tus módulos.
Conclusiones con Puntos Clave Operativos
Modular ofrece un enfoque elegante y potente para orquestar workflows complejos que involucran AI y datos. Su arquitectura modular y la integración nativa con Python lo convierten en una herramienta valiosa para ingenieros ML, científicos de datos y equipos DevOps que buscan superar los desafíos de escalabilidad y mantenibilidad. Adoptar un framework como Modular significa reducir la deuda técnica, acelerar el desarrollo y garantizar que tus sistemas AI sean robustos y fáciles de evolucionar. Empieza con workflows sencillos, luego expande gradualmente la integración con tus modelos y fuentes de datos. La clave es la modularidad: piensa en cada paso como un componente reutilizable.
Fuentes
Actualizado: agosto 2026