[en] The main purpose of this thesis is to contribute to Cloud environments by improving energy consumption and Quality of Service (QoS), by means of the Service Level Agreement (SLA), through techniques that allow the correct decisions to be executed at the correct moment. Resource planning allows the needs and demands of each physical and virtual machine to be adapted to improve the overall system performance. By performing optimal task assignations and Virtual Machine migrations, datacenters become more stable and efficient, requiring less supervision and corrections, guaranteeing the indispensable number of active physical machines running properly and avoiding the performing of redundant actions. Two types of environments were dealt with during this thesis. Firstly, static environments were the focus, where the Bin Packing Problem was solved to optimise the energy and makespan proposing a multi-objective genetic algorithm (BLEMO). The next focus was on dynamic environments, in which different proposals were developed. Initially, a virtual machine selection algorithm (WPSP) was proposed to reduce the number of migrations and SLA violations. The proposal included a VM to host allocation algorithm (MDG) in order to reduce the total inter-host communications, and so optimising the network bandwidth. Next, the use of Bollinger Bands (BB) was combined with the NeuralProphet framework (BB+NeoPro) to generate long-term predictions. These enable consolidation of the VM to host allocations, reducing the number of migrations, energy consumption and SLA Violations. Furthermore, an improved version of BB+NeoPro was proposed by combining WPSP, BB and Facebook Prophet (WBF). This proposal was tested with different Cloud workloads from several providers in order to validate its robustness.

[es] El propósito principal de esta tesis es contribuir a los entornos Cloud en la mejora del consumo energético y de la Calidad de Servicio (QoS), por medio de los Acuerdos de Nivel de Servicio (SLA), mediante técnicas que permitan tomar el número adecuado de buenas decisiones. Realizando las asignaciones de tareas y migraciones de máquines virtuales adecuadas, se puede llegar a obtener centros de datos más estables y eficientes, requiriendo una menor supervisión y correcciones, garantizando una cantidad esencial de máquinas físicas activas funcionando correctamente y evitando la realización de acciones redundantes. En esta tesis se ha tratado con dos tipos de entornos con cargas de trabajo reales. En primer lugar, en los entornos estáticos, se ha resuelto el Bin Packing Problem optimizando la energía y el tiempo de ejecución (makespan) mediante un algoritmo genético multiobjetivo (BLEMO). En el segundo problema, los entornos dinámicos, se han desarrollado diferentes propuestas. Se ha propuesto un algoritmo de selección de máquinas virtuales (WPSP) para reducir el número de migraciones y Violación de SLA, junto con un algoritmo de asignación de host (MDG) para reducir las comunicaciones entre hosts, optimizando el ancho de banda. Se ha combinado el uso de las Bandas de Bollinger con el framework Neural Prophet (BB+NeoPro) para generar predicciones a más largo plazo, estabilizando el centro de datos y optimizando el número de migraciones, energía y Violación de SLA. Finalmente, se ha desarrollado una versión mejorada de BB+NeoPro combinando WPSP, BB y Facebook Prophet (WBF), probándola con diferentes cargas de trabajo del Cloud para validar su robustez. Además, se ha extendido el simulador Cloudsim, creando MetaCloudsim, incorporando nuevas funcionalidades, técnicas, cargas de trabajo, algoritmos y herramientas.