10 research outputs found

    STaRS: A scalable task routing approach to distributed scheduling

    Get PDF
    La planificaci贸n de muchas tareas en entornos de millones de nodos no confiables representa un gran reto. Las plataformas de computaci贸n m谩s conocidas normalmente conf铆an en poder gestionar en un elemento centralizado todo el estado tanto de los nodos como de las aplicaciones. Esto limita su escalabilidad y capacidad para tolerar fallos. Un modelo descentralizado puede superar estos problemas pero, por lo que sabemos, ninguna soluci贸n propuesta hasta el momento ofrece resultados satisfactorios. En esta tesis, presentamos un modelo de planificaci贸n descentralizado con tres objetivos: que escale hasta millones de nodos, sin una p茅rdida de prestaciones que lo inhabilite; que tolere altas tasas de fallos; y que permita la implementaci贸n de varias pol铆ticas de planificaci贸n para diferentes situaciones. Nuestra propuesta consta de tres elementos principales: un modelo de datos gen茅rico para representar la disponibilidad de los nodos de ejecuci贸n; un esquema de agregaci贸n que propaga esta informaci贸n por una capa de red jer谩rquica; y un algoritmo de reexpedici贸n que, usando la informaci贸n agregada, encamina tareas hacia los nodos de ejecuci贸n m谩s apropiados. Estos tres elementos son f谩cilmente extensibles para proporcionar diversas pol铆ticas de planificaci贸n. En concreto, nosotros hemos implementado cinco. Una pol铆tica que simplemente asigna tareas a nodos desocupados; una pol铆tica que minimiza el tiempo de finalizaci贸n del trabajo global; una pol铆tica que cumple con los requerimientos de fecha l铆mite de aplicaciones tipo "saco de tareas"; una pol铆tica que cumple con los requerimientos de fecha l铆mite de aplicaciones tipo "workflow"; y una pol铆tica que otorga una porci贸n equitativa de la plataforma a cada aplicaci贸n. La escalabilidad se consigue a trav茅s del esquema de agregaci贸n, que provee de suficiente informaci贸n de disponibilidad a los niveles altos de la jerarqu铆a sin inundarlos, y el algoritmo de reexpedici贸n, que busca nodos de ejecuci贸n en varias ramas de la jerarqu铆a de manera concurrente. Como consecuencia, los costes de comunicaci贸n est谩n acotados y los de asignaci贸n muestran un comportamiento casi logar铆tmico con el tama帽o del sistema. Un millar de tareas se asignan en una red de 100.000 nodos en menos de 3,5 segundos, as铆 que podemos plantearnos utilizar nuestro modelo incluso con tareas de tan solo unos minutos de duraci贸n. Por lo que sabemos, ning煤n trabajo similar ha sido probado con m谩s de 10.000 nodos. Los fallos se gestionan con una estrategia de mejor esfuerzo. Cuando se detecta el fallo de un nodo, las tareas que estaba ejecutando son reenviadas por sus propietarios y la informaci贸n de disponibilidad que gestionaba es reconstruida por sus vecinos. De esta manera, nuestro modelo es capaz de degradar sus prestaciones de manera proporcional al n煤mero de nodos fallidos y recuperar toda su funcionalidad. Para demostrarlo, hemos realizado pruebas de tasa media de fallos y de fallos catastr贸ficos. Incluso con nodos fallando con un periodo mediano de solo 5 minutos, nuestro planificador es capaz de continuar dando servicio. Al mismo tiempo, es capaz de recuperarse del fallo de una fracci贸n importante de los nodos, siempre que la capa de red jer谩rquico que sustenta el sistema pueda soportarlo. Despu茅s de comprobar que es factible implementar pol铆ticas con muy distintos objetivos usando nuestro modelo de planificaci贸n, tambi茅n hemos probado sus prestaciones. Hemos comparado cada pol铆tica con una versi贸n centralizada que tiene pleno conocimiento del estado de cada nodo de ejecuci贸n. El resultado es que tienen unas prestaciones cercanas a las de una implementaci贸n centralizada, incluso en entornos de gran escala y con altas tasas de fallo

    Application Driven MOdels for Resource Management in Cloud Environments

    Get PDF
    El despliegue y la ejecuci贸n de aplicaciones de gran escala en sistemas distribuidos con unos parametros de Calidad de Servicio adecuados necesita gestionar de manera eficiente los recursos computacionales. Para desacoplar los requirimientos funcionales y los no funcionales (u operacionales) de dichas aplicaciones, se puede distinguir dos niveles de abstracci贸n: i) el nivel funcional, que contempla aquellos requerimientos relacionados con funcionalidades de la aplicaci贸n; y ii) el nivel operacional, que depende del sistema distribuido donde se despliegue y garantizar谩 aquellos par谩metros relacionados con la Calidad del Servicio, disponibilidad, tolerancia a fallos y coste econ贸mico, entre otros. De entre las diferentes alternativas del nivel operacional, en la presente tesis se contempla un entorno cloud basado en la virtualizaci贸n de contenedores, como puede ofrecer Kubernetes.El uso de modelos para el dise帽o de aplicaciones en ambos niveles permite garantizar que dichos requerimientos sean satisfechos. Seg煤n la complejidad del modelo que describa la aplicaci贸n, o el conocimiento que el nivel operacional tenga de ella, se diferencian tres tipos de aplicaciones: i) aplicaciones dirigidas por el modelo, como es el caso de la simulaci贸n de eventos discretos, donde el propio modelo, por ejemplo Redes de Petri de Alto Nivel, describen la aplicaci贸n; ii) aplicaciones dirigidas por los datos, como es el caso de la ejecuci贸n de anal铆ticas sobre Data Stream; y iii) aplicaciones dirigidas por el sistema, donde el nivel operacional rige el despliegue al considerarlas como una caja negra.En la presente tesis doctoral, se propone el uso de un scheduler espec铆fico para cada tipo de aplicaci贸n y modelo, con ejemplos concretos, de manera que el cliente de la infraestructura pueda utilizar informaci贸n del modelo descriptivo y del modelo operacional. Esta soluci贸n permite rellenar el hueco conceptual entre ambos niveles. De esta manera, se proponen diferentes m茅todos y t茅cnicas para desplegar diferentes aplicaciones: una simulaci贸n de un sistema de Veh铆culos El茅ctricos descrita a trav茅s de Redes de Petri; procesado de algoritmos sobre un grafo que llega siguiendo el paradigma Data Stream; y el propio sistema operacional como sujeto de estudio.En este 煤ltimo caso de estudio, se ha analizado c贸mo determinados par谩metros del nivel operacional (por ejemplo, la agrupaci贸n de contenedores, o la compartici贸n de recursos entre contenedores alojados en una misma m谩quina) tienen un impacto en las prestaciones. Para analizar dicho impacto, se propone un modelo formal de una infrastructura operacional concreta (Kubernetes). Por 煤ltimo, se propone una metodolog铆a para construir 铆ndices de interferencia para caracterizar aplicaciones y estimar la degradaci贸n de prestaciones incurrida cuando dos contenedores son desplegados y ejecutados juntos. Estos 铆ndices modelan c贸mo los recursos del nivel operacional son usados por las applicaciones. Esto supone que el nivel operacional maneja informaci贸n cercana a la aplicaci贸n y le permite tomar mejores decisiones de despliegue y distribuci贸n.<br /

    Dise帽o, Despliegue y Monitorizaci贸n de un Simulador Distribuido de Eventos Discretos.

    Get PDF
    Las Redes de Petri se emplean en la industria como una herramienta matem谩tica para la descripci贸n y an谩lisis de sistemas concurrentes y distribuidos. En este caso, es capaz de describir un modelo ejecutable en un simulador de eventos discretos. Tal modelo comprender铆a de un alto n煤mero de eventos para redes de gran escala, que implicar铆a la necesidad de un simulador distribuido. Se presenta la oportunidad de definir un nuevo paradigma para la composici贸n de problemas sobre eventos distribuidos; y como corresponde, una nueva escena de desarrollo para este modelo de computaci贸n. Son numerosas las posibles optimizaciones y mejoras que se pueden plantear para la ejecuci贸n de este entorno. Para ello, se asientan cuestiones de dise帽o del simulador distribuido. Como es natural, esta serie de simulaciones distribuidas no pueden ser probadas sin unas herramientas de despliegue adecuadas. Se deber谩 de tener en cuenta que la versatilidad requiere flexibilidad a la hora de poner en marcha el sistema. Un despliegue debe de conocer la completa estructura de nodos de simulaci贸n, que vendr谩 marcada por una definici贸n de red. De la misma manera, no se puede asertar un correcto funcionamiento del sistema sin las necesarias herramientas de monitorizaci贸n. Se a帽ade a la problem谩tica de despliegue nuevas nociones para la infraestructura de la monitorizaci贸n, y el correcto tratamiento sobre el trazado y m茅tricas del simulador, manteniendo las capacidades de escalabilidad del mismo. En conclusi贸n, se parte de una perspectiva en la que se debe completar la noci贸n del dise帽o de un simulador, para luego definir su metodolog铆a de despliegue, y finalmente, dar un 茅nfasis para establecer los componentes de monitorizaci贸n que expondr谩n el comportamiento del sistema.<br /

    Dise帽o de un sistema de configuraci贸n din谩mica de OpenStack

    Get PDF
    Dise帽ar e implementar un sistema que permita cambios r谩pidos y flexibles de configuraciones del sistema cloud Openstack y sus diferentes componentes. El problema principal es de complejidad, con la gran cantidad de servicios interdependientes que hay que configurar, poner en marcha, y comprobar su correcto funcionamiento. Pero tambi茅n cambiar la configuraci贸n en marcha desactivando servicios y configurando nuevos. Gesti贸n de aspectos distribuidos como autentifiaci贸n, m谩quinas virtuales, almacenamiento b谩sico, monitorizaci贸n. Adem谩s considerando aspectos de alta disponibilidad

    Automatizaci贸n del despliegue de simulaciones distribuidas en cloud h铆brido

    Get PDF
    Computer Science for Complex System Modeling (COSMOS) es un grupo de investigaci贸n dentro del Departamento de Inform谩tica e Ingenier铆a de Sistemas (DIIS) que trabaja en el desarrollo de sistemas distribuidos. Uno de los proyectos que se encuentra bajo desarrollo es la simulaci贸n de Sistema de Eventos Discretos (SED) con una gran amplitud. Su foco principal en estos 煤ltimos an 虄os es la puesta en marcha de un simulador de SED en un entorno distribuido. En este TFG se propone una prueba para el desarrollo y automatizaci贸n del despliegue de una infraestructura para la ejecuci贸n de simulaciones distribuidas en un entorno de Cloud H铆brido.Uno de los problemas que se afronta cuando este equipo se encuentra ante simulaciones con tama帽o amplio es la incapacidad de realizar estas mismas en un 煤nico nodo, este problema se solventa con el uso de un simulador distribuido. La soluci贸n anterior genera de nuevo un obst谩culo que consiste en que la operativa para la puesta en marcha de este simulador y la posterior recogida de datos es complicada y poco c贸moda, por lo que es aqu铆 donde entra en juego el Trabajo de Fin de Grado (TFG) que se documenta en esta memoria.El proyecto que se desarrolla proporciona una soluci贸n para facilitar la operativa de las simulaciones. Esto se consigue con el uso de Slurm, un planificador de tareas desplegado en Cloud H铆brido. Elegir un planificador de software libre no ha sido una decisi贸n f谩cil, puesto que, hoy en d 虂谋a, existen m煤ltiples herramientas en el mercado, todas ellas similares y muy completas. Tras seleccionar el planificador m 虂as adecuado, se ha podido desplegar el sistema y elaborar una soluci贸n. La soluci贸n propone una infraestructura heterog茅nea que hace uso de Google Cloud Platform (GCP) como proveedor del cluster en Cloud P煤blico, y, una cluster on-premise como proveedor del Cloud Privado.El despliegue del sistema en este entorno h 虂谋brido se encuentra automatizado para facilitar su futura puesta en marcha en otras infraestructuras. Esta automatizaci贸n ha sido realizada haciendo uso de Terraform y Ansible, dos programas de modelizaci贸n de recursos. El primero ha sido usado para los recursos Cloud P煤blico (m谩quinas virtuales, zonas DNS, firewall, etc), mientras que el segundo ha sido usado para los recursos de administraci贸n de sistemas del Cloud Privado.Para terminar se han realizado dos tipos de evaluaciones. En primer lugar, se han validado los m贸dulos de automatizaci贸n de creaci贸n y modelizaci贸n de recursos, y de esta manera se ha demostrado que los m贸dulos desarrollados llevan a cabo su trabajo de manera correcta. Y, en segundo lugar, se han llevado a cabo pruebas con distintos casos de uso de despliegues de simulaciones en Cloud Privado, Cloud P煤blico y Cloud H铆brido para comprobar la robustez y las capacidades del sistema desplegado. Una vez validado el sistema se han hecho pruebas en un entorno real de simulaci贸n distribuida. Tras comprobar que las simulaciones se ejecutaban de manera correcta con una asignaci贸n de recursos adecuada, y se pod铆a obtener la salida de estas simulaciones de manera centralizada y sencilla, se dio por evaluado de manera correcta el sistema.Como resultado de ese proyecto, no solo se ha elaborado un TFG, sino que tambi茅n se ha colaborado en la publicaci贸n de un articulo de investigaci贸n que ha sido aprobado, publicado y seleccionado como mejor art铆culo de la conferencia en la GECON - International Conference on the Economics of Grids, Clouds, Systems, and Services. Este proyecto servir 虂a como base para futuros usuarios, profesores y grupos de investigaci贸n que deseen seguir la linea de investigaci贸n del despliegue de una infraestructura para simulaciones distribuidas en un entorno de Cloud H铆brido.<br /

    Mobile Agent security using Proxy-agents and Trusted domains

    No full text
    Commercial or wide-network deployment of Mobile Agent Systems is not possible without satisfying security architecture. In this paper we propose architecture for secure Mobile Agent Systems, using Trusted Domains and Proxy agents. Existing approaches are based on security services at the level of an agent system, library or specific objects. Our concept uses proxy agents to enable transparent security services both to security-aware mobile agents and legacy agents. Per-agent and domain-level security is provided. Proposed concept can be used with non-compatible environments and legacy systems

    Dise帽o e implementaci贸n de un simulador distribuido de alta escala de sistemas de eventos discretos.

    No full text
    En la actualidad los sistemas tienen cada vez un mayor tama帽o y complejidad que requiere la utilizaci贸n de modelos que describan su comportamiento. La soluci贸n a este problema consiste en la simulaci贸n de sistemas para reproducir el comportamiento de un sistema din谩mico mediante la interpretaci贸n de un modelo. Sin embargo, para poder simular sistemas de gran tama帽o y complejidad es necesario que la simulaci贸n y las herramientas que se utilicen sean escalables. Para lograrlo se ha realizado el desarrollo e implementaci贸n de un simulador distribuido de sistemas de eventos discretos modelados por redes de Petri. El simulador utiliza el m茅todo de sincronizaci贸n conservativo mediante el uso de los mensajes de lookahead. Se ha realizado un an谩lisis profundo del lookahead, de su c谩lculo y de su gesti贸n, obteniendo diferentes alternativas para mejorar el rendimiento del simulador. Se debe a que para simulaciones de alta escala sus prestaciones son un aspecto clave, y dependen principalmente del mecanismo de lookahead. Adem谩s, se presenta una soluci贸n para la simulaci贸n de alta escala que se ha llamado simulaci贸n a nivel de regiones cuyo prop贸sito es acelerar la simulaci贸n.<br /

    Dise帽o e implementaci贸n de un compilador de Redes de Petri de grandes dimensiones.

    No full text
    El an谩lisis y la experimentaci贸n del comportamiento de sistemas en el 谩mbito de la ingenier铆a ha cobrado una relevancia incalculable en el transcurso de los 煤ltimos a帽os con el aumento exponencial de su tama帽o y complejidad. Debido a ello, es muy complicado poder experimentar con prototipos de sistemas y as铆 poder conocer las posibles prestaciones y posibles puntos d茅biles de estos prototipos, ya que es necesario disponer de una gran infraestructura para poder hacer pruebas de este calibre. Como soluci贸n a este problema, la simulaci贸n de estos prototipos permite reproducir su comportamiento con el fin de obtener la misma informaci贸n que en el caso de montar toda la infraestructura que ser铆a necesaria. Para poder realizar la tarea de la simulaci贸n de los prototipos es necesario tener un sistema en el que se pueda establecer una representaci贸n de los prototipos la cual permita su simulaci贸n. En este trabajo se va a tratar con sistemas de eventos discretos a partir de una formalizaci贸n usando Redes de Petri. Para poder describir los sistemas que van a ser simulados es necesario establecer un lenguaje en el que se puedan declarar cada uno de los componentes que van a ser part铆cipes en la simulaci贸n as铆 como cada una de las relaciones entre dichos componentes. Este va a ser uno de los puntos de este trabajo: crear un lenguaje de descripci贸n de sistemas utilizando Redes de Petri como medio formal y que permita el despliegue y linkado de las componentes en un entorno de ejecuci贸n distribuido. Adem谩s de poder formalizar sistemas en un lenguaje que pueda permitir su simulaci贸n, es necesario que los sistemas descritos puedan ser de grandes dimensiones, dada la complejidad de los sistemas actuales, por lo que el lenguaje de descripci贸n debe de ser capaz de dar la posibilidad de describir sistemas de grandes dimensiones que partir de la m铆nima expresi贸n textual. Con ello, se va a poder modelar grandes sistemas de manera r谩pida y sencilla. Con ello, el compilador y el linker de Redes de Petri desarrollado es una primera versi贸n para la formalizaci贸n de sistemas de grandes dimensiones y su traducci贸n para que los simuladores ya existentes puedan ejecutar simulaciones con sistemas de grandes dimensiones.<br /

    Dise帽o e implementaci贸n de un servicio web para gesti贸n de simulaciones distribuidas.

    No full text
    Primera implementaci贸n de Framework Web de modelado y simulaci贸n distribuida, que recoge la capacidad de una representaci贸n gr谩fica y textual de los modelos que a su vez pueden ser almacenados, modificados o eliminados en el Sistema de la Informaci贸n creado. Adem谩s se integran las herramientas de compilaci贸n/simulaci贸n ya creadas en otros proyectos junto a la persistencia de sus resultados en Base de Datos y la creaci贸n de un sistema de automatizaci贸n, tambi茅n integrado, de despliegue de m谩quinas en el Cloud para simulaci贸n distribuida de grandes modelos.<br /

    Dise帽o e implementaci贸n de un simulador distribuido de eventos discretos con mecanismos de balanceo de carga

    No full text
    El an谩lisis y comprensi贸n del comportamiento de sistemas en el 谩mbito de la ingenier铆a ha cobrado una vital importancia en los 煤ltimos tiempos con el aumento exponencial de su tama帽o y complejidad. Debido a ello, se hace muy complicado el hecho de crear prototipos o clones de un sistema para analizar su comportamiento o probar nuevas mejoras del mismo. Para dar soluci贸n a este problema, la simulaci贸n de sistemas permite reproducir el comportamiento de un sistema din谩mico mediante la interpretaci贸n de un modelo que representa de manera fidedigna su funcionamiento.Sin embargo, para poder simular sistemas de gran tama帽o y complejidad, se requiere que esta simulaci贸n y las herramientas que lo soportan sean escalables. Para ello, se ha abordado el desarrollo e implementaci贸n de un simulador distribuido que reproduce el comportamiento de un sistema de eventos discretos modelado por Redes de Petri, y adem谩s, se han incorporado mecanismos que sean capaces de redistribuir la carga de trabajo que soporta cada uno de los nodos que interviene en la simulaci贸n.Estos mecanismos de balanceo de la carga son el aspecto innovador que aporta este trabajo al campo de la simulaci贸n distribuida conservativa, ya que la soluci贸n propuesta de redistribuir la partici贸n de modelo que recibe un nodo de simulaci贸n durante el proceso de simulaci贸n sin llegar a detenerla es novedosa, a pesar de que en otros trabajos anteriores se hayan abordado soluciones respecto al balanceo de la carga en simulaciones distribuidas<br /
    corecore