Tesis "Método de procesamiento continuo para la construcción y manejo de estructuras de procesamiento agnósticas de la infraestructura"
Sustentante: Dante Domizzi Sánchez Gallegos
Director: Dr. José Luis González Compeán, Cinvestav Unidad Tamaulipas.
Sinodales: Dr. Iván López Arévalo, Cinvestav Unidad Tamaulipas; Dr. Ricardo Landa Becerra, Cinvestav Unidad Tamaulipas; Dr. José Luis González Compeán, Cinvestav Unidad Tamaulipas; Dr. Rafael Mayo García, CIEMAT, España; Dr. Raúl Rivera Rodríguez, CICESE.
Resumen:
Los motores de flujos de trabajo (e.g., Parsl, Makeflow y Pegasus) y los gestores de tuberías para el procesamiento de datos (e.g., Nextflow y Jenkins) son marcos de diseño y construcción usados habitualmente para crear estructuras de procesamiento (e.g., tuberías, flujos de trabajo o patrones de diseño), las cuales definen las reglas para integrar múltiples aplicaciones como una sola pieza de software. Tradicionalmente, estos marcos de construcción han sido utilizados para diseñar software de gran escala (e.g., tuberías de entrega continua e integración continua, así como tuberías de big data) y, recientemente, para diseñar sistemas complejos de procesamiento de datos (e.g., sistemas para procesos de toma de decisiones y sistemas de ciencia de datos). Estos sistemas no solo coordinan la ejecución de las aplicaciones que los conforman, sino que también orquestan el manejo, almacenamiento e indexamiento de las múltiples versiones de datos producidas por sus aplicaciones (llamados en la literatura productos/activos digitales). Estos productos pueden, potencialmente, ser visualizados, consumidos y/o compartidos por múltiples usuarios finales, creando de esta forma un ciclo de vida. Estas tareas de gestión suelen ser delegadas, en tiempo de ejecución, a gestores de recursos computacionales y de carga de trabajo (e.g., HTCondor o Slurm). Tanto los sistemas de aplicaciones como los gestores de recursos son comúnmente desplegados sobre el mismo contexto computacional. Por ejemplo, sobre servidores de centros de datos o máquinas virtuales/físicas en sitos de altas prestaciones (e.g., Grid y clústeres de servidores). Sin embargo, en años recientes, estas estructuras se han comenzado a desplegar en la nube, lo cual ha llevado a que las organizaciones delegen el control del manejo de procesos, y sobre todo de datos de estos sistemas de aplicaciones, a los proveedores de servicios en la nube. Esto produce una dependencia funcional con la infraestructura, plataforma y software de dichos proveedores. Adicionalmente, la interconexión entre los gestores de recursos y los sistemas de aplicaciones termina produciendo, en tiempo de ejecución, cuellos de botella durante el manejo de las etapas asociadas al ciclo de vida de productos digitales. En este trabajo de tesis, se propone agregar la propiedad de agnosticismo a las estructuras de procesamiento como una solución para mitigar los efectos relacionados a la dependencia de estas con las plataformas e infraestructuras donde se despliegan, así como la potencial ruptura de coordinación del manejo de los datos intercambiados por aplicaciones/procesos en tiempo de ejecución. Para agregar esta propiedad a las estructuras de procesamiento, se propone un modelo de encapsulación de bloques de construcción autocontenidos (los bloques incluyen un ambiente de trabajo que garantiza la ejecución de las aplicaciones para eliminar dependencias con plataformas de software) y autosimilares (esto posibilita la interconexión de aplicaciones en una estructura para evitar la dependencia con lenguajes de programación). Además, un modelo de comunicación integrado a un modelo programación orientado al código permite resolver, en tiempo de despliegue, los conflictos del acoplamiento de estos bloques con bloques de orquestación de datos, tales como almacenamiento y logística de entrega/recepción de datos, lo cual reduce la dependencia con la infraestructura. Por otro lado, un modelo de procesamiento de paralelismo implícito evita delegar tareas a gestores de recursos y reduce, en tiempo de ejecución, los efectos de cuellos de botella producidos por las aplicaciones dentro de una estructura de procesamiento, los cuales pueden reaccionar a cambios en la carga de trabajo o en la infraestructura. Un prototipo basado en el método propuesto fue evaluado en diferentes estudios de caso basados en aplicaciones para el procesamiento de imágenes satelitales, contenidos médicos (señales de electrocardiograma y tomografías), y datos meteorológicos. En la evaluación, se demostró la flexibilidad del método propuesto para construir diferentes estructuras de procesamiento agnósticas para el manejo de ciclos de vida de productos digitales. Además, la evaluación reveló la eficiencia del método propuesto comparado con motores de flujos de trabajo y gestores de tuberías disponibles en el estado del arte.