[en] The main objective of this thesis is the analysis and design of solutions for the efficient management and deployment of IoT and Edge nodes capable of intelligently managing tasks within a Computing Continuum ecosystem, optimising resources in the best possible way and allowing them to dynamically adapt to changes in the infrastructure. To achieve this, the details of the new Computing Continuum paradigm are analysed, which integrates typical IoT elements with a unified Edge and Cloud Computing architecture. In this way the entire network of devices in the system, from those closest to the user to those furthest away, are able to perform computational tasks of the services, providing a distributed processing design as a continuum throughout the architecture. However, this new vision makes the process of allocating the workload and managing resources much more difficult given the heterogeneous and diverse nature of the devices. Moreover, it is now necessary to consider characteristics that are not usually common in Cloud Computing models, such as the latency of the node, the bandwidth, whether it has a battery, the speed of its processor, the availability of certain instructions or hardware features, etc. In this thesis we analyse the optimisation problem that underlies the process of distributing workloads among the nodes. This problem is called the Task Allocation Problem (TAP), which is defined as the process of determining where the computation of each task is performed in order to optimise certain parameters, such as latency, execution time, cost, energy consumption, geographical position, and even whether the node is moving or is powered by a battery. The TAP can be formalised as a Generalised Assignment Problem (GAP) which has been widely shown to be an NP-Hard problem. Therefore, in some cases it is difficult for devices with lower computational power to solve the problem. As an innovation of this thesis, the use of Reinforcement Learning (RL) is proposed to deal with TAP so that lighter devices are able to solve it easily and accurately. The strength of reinforcement learning is its ability to adapt and even predict dynamically, this was demonstrated in one of the results of this thesis where RL is used for intelligent energy management of devices in a Smart House. Likewise, other techniques have been applied to solve the problem in different ways giving greater or lesser accuracy in order to reduce the execution time. Precisely, it has been considered of special value in the design of the final solution to include the ability to choose the method of solving the problem dynamically depending on the size of the problem. Finally, during the development of the solutions, the Kubernetes tool stands out as the de facto platform for the management and deployment of services in a network of nodes. Although it is one of the most common tools in the industry, its purely Cloud Computing-based approach makes its application in Continuum environments difficult. For this reason, one of the other contributions of this thesis involves the modification of different modules of K8s to adapt it to the Continuum and to be able to consider the characteristics of this paradigm in the process of distributing services to the nodes (pod-node allocation process).

[es] El objetivo principal de esta tesis es el análisis y diseño de soluciones para la gestión y el despliegue eficiente de nodos IoT y Edge capaces de administrar tareas de manera inteligente dentro de un ecosistema de Computing Continuum, optimizando los recursos de la mejor manera posible y permitiendo que se adapten dinámicamente a los cambios en la infraestructura. Para lograrlo se analizan los detalles del nuevo paradigma del Computing Continuum, el cual integra los elementos típicos de IoT con una arquitectura unificada de Edge y Cloud Computing. De esta forma toda la red de dispositivos del sistema, desde los mas cercanos al usuario hasta los mas alejados, son capaces de realizar tareas de cómputo de los servicios, proporcionando un diseño de procesamiento distribuido como un continuo por toda la arquitectura. Sin embargo, esta nueva visión dificulta en gran medida el proceso de distribución de trabajo y la gestión de los recursos dada la naturaleza heterogénea y muy diversas de los dispositivos. Además, ahora es necesario considerar características que no suelen ser comunes en los modelos de Cloud Computing, como puede ser la latencia del nodo, el ancho de banda, si tiene batería, la velocidad de su procesador, la disponibilidad de ciertas instrucciones o características hardware, etc. En esta tesis se analiza el problema de optimización que subyace en el proceso de distribución de cargas de trabajo entre los nodos. Este problema se denomina el Problema de Asignación de Tareas (TAP), el cual se define como el proceso de determinar dónde se realiza el cómputo de cada tarea para optimizar ciertos parámetros, como la latencia, el tiempo de ejecución, el coste, el consumo de energía, la posición geográfica, e incluso si el nodo se está moviendo o se alimenta con una batería. El TAP se puede formalizar como un Problema de Asignación Generalizado (GAP) es cual se ha demostrado ampliamente que es un problema NP-Hard. Por ello mismo en algunos casos es difícil para los dispositivos con menor potencia de computo resolver el problema de manera general. Como innovación de esta tesis se propone el uso de Aprendizaje por Refuerzo (RL) para tratar el TAP y que los dispositivos mas livianos sean capaces de resolverlo fácilmente y con precisión. La bondad del aprendizaje por refuerzo es su capacidad de adaptarse e incluso predecir dinámicamente, esto se demostró en uno de los resultados de esta tesis donde se usa RL para la gestión energética inteligente de dispositivos en una Smart House. Igualmente, se han aplicado otras técnicas para resolver el problema de diferente manera dando mayor o menor precisión en pro reducir el tiempo de ejecución. Precisamente se ha considerado de especial valor en el diseño de la solución final incluir la capacidad de elección del método de resolución del problema de manera dinámica en función del tamaño del mismo. Finalmente, durante el desarrollo de las soluciones destaca como plataforma de facto para la gestión y despliegue de servicios en una red de nodos la herramienta Kubernetes. Si bien es una de las herramientas más comunes en la industria, su enfoque puramente basado en el Cloud Computing dificulta su aplicación en entornos del Continuum. Por esta razón, otra de las aportaciones de esta tesis implica la modificación de diversos módulos de K8s para adaptarlo al Continuum y que pueda ser capaz de considerar las características propias de este paradigma en el proceso de distribución de servicios a los nodos (proceso de asignación pod-node).