Tesis:

A Technology-Agnostic Approach to Auto-Scale Services in Heterogeneous Clouds


  • Autor: RAMPÉREZ MARTÍN, Víctor

  • Título: A Technology-Agnostic Approach to Auto-Scale Services in Heterogeneous Clouds

  • Fecha: 2021

  • Materia: Sin materia definida

  • Escuela: E.T.S DE INGENIEROS INFORMÁTICOS

  • Departamentos: LENGUAJES Y SISTEMAS INFORMATICOS E INGENIERIA DE SOFTWARE

  • Acceso electrónico: http://oa.upm.es/67259/

  • Director/a 1º: SORIANO CAMINO, Francisco Javier
  • Director/a 2º: LIZCANO CASAS, David

  • Resumen: In recent years we have seen a digital revolution that is creating more digitised societies, in which many aspects of our daily lives depend on Internet services. It is therefore not surprising that computational resources have become essential services in these societies. As a result, cloud computing emerges as a way to offer computing resources on demand and with a payper- use model. One of the key aspects of cloud computing is elasticity, being the ability to acquire and release computing resources on demand. These requirements are often formally expressed in a Service Level Agreement (SLA). The wide variety of these SLAs makes it difficult for consumers to adequately estimate the amount of computational resources needed at any given time. To solve this problem, auto-scaling systems are responsible for ensuring compliance with SLAs automatically, adding and/or releasing the necessary amount of computational resources needed at any given moment, minimising over-provisioning and under-provisioning times. Despite the wide variety of auto-scaling systems, there are a number of limitations and shortcomings that prevent the full exploitation of their potential. On the one hand, the proposals of the main cloud computing providers rely on reactive auto-scaling techniques, which lack the necessary anticipation to avoid violating SLAs. Moreover, these systems often do not automatically detect which resource needs to be scaled. Similarly, it is also often left to the consumer to translate their requirements (SLAs) into specific configurations of these systems. Finally, auto-scaling systems that can be used in multi-cloud environments are scarce, mainly due to the lack of a set of monitoring metrics that can be measured across multiple providers. To address these shortcomings and limitations, this work has designed and implemented FLAS (Forecasted Load Auto-Scaling), an SLA-centric autoscaling system for distributed systems that automatically detects bottleneck computational resources and decides how much and when additional resources should be added or released to meet the SLAs. For this purpose, FLAS combines proactive and reactive auto-scaling techniques. In addition, a knowledge-based system has been designed that is able to translate, automatically and transparently for the consumer, SLAs into conditions expressed through low-level metrics. Finally, a repository of vendorneutral monitoring metrics has been built that can be measured in these providers (multi-cloud environments) by means of a set of functions that allow mapping neutral metrics with those exported by each provider. In order to evaluate this work, a series of experiments have been carried out that have demonstrated its validity. On the one hand, FLAS has been evaluated as an auto-scaler of a distributed publish-subscribe cloud system. The results of this evaluation show that FLAS is capable of ensuring compliance with the requirements of the SLAs more than 99% of the time, taking the most appropriate decisions and scaling actions at all times. With all this, it can be concluded that it is possible to automatically scale cloud services through the use of auto-scaling systems that allow (i) compliance and adherence to the SLAs specified by the cloud consumers, (ii) automatic detection of the computational resources that are the bottleneck, and (iii) monitoring of the essential metrics for scaling decisions in multicloud environments. ----------RESUMEN---------- En los últimos años hemos sido testigos de una revolución digital que está generando sociedades más digitalizadas, en las cuales, gran parte de los aspectos de nuestra vida cotidiana dependen de servicios en Internet. Por ello, no es de extrañar que los recursos computacionales se hayan convertido en servicios esenciales en estas sociedades. Como resultado, la computación en la nube surge como una forma de ofrecer recursos de computación bajo demanda y con un modelo de pago por uso. Uno de los aspectos claves de la computación en la nube es la elasticidad, siendo esta la capacidad para adquirir y liberar recursos computacionales bajo demanda. Estos requisitos se suelen expresar formalmente en lo que se conoce como Acuerdo de Nivel de Servicio o Service Level Agreement (SLA). La gran variedad de estas SLAs, hace que sea complicado estimar de forma adecuada por los consumidores la cantidad de recursos computacionales necesarios en cada momento. Para solventar ese problema, los sistemas de auto-escalado se encargan de asegurar el cumplimiento de las SLAs de forma automática, añadiendo y/o liberando la cantidad necesaria de recursos computacionales necesaria en cada instante minimizando los tiempos de aprovisionamiento por exceso y por defecto. A pesar de la gran variedad de sistemas de auto-escalado, existen una serie de limitaciones y carencias que impiden explotar por completo su verdadero potencial. Por un lado, las propuestas de los principales proveedores de computación en la nube apuestan por técnicas de auto-escalado reactivas, que carecen de la anticipación necesaria para no violar las SLAs. Además, estos sistemas no suelen detectar de forma automática que recurso es el que debe ser escalado. Del mismo modo, también se suele dejar del lado del consumidor la traducción de sus requisitos (SLAs) en configuraciones concretas de estos sistemas. Finalmente, los sistemas de auto-escalado que pueden ser utilizados en entornos multi-cloud son escasos, debido principalmente a la falta de un conjunto de métricas de monitorización que puedan ser medidas en múltiples proveedores. Para abordar estas carencias y limitaciones, en el presente trabajo se ha diseñado e implementado FLAS (Forecasted Load Auto-Scaling), un sistema de auto-escalado para sistemas distribuidos centrado en las SLAs que detecta de forma automática los recursos computacionales que son el cuello de botella y decide la cantidad y el momento en que deben añadirse o liberarse recursos adicionales para cumplir las SLAs. Para ello, FLAS combina técnicas de auto-escalado proactivas y reactivas. Además, se ha diseñado un sistema basado en el conocimiento capaz de traducir, de forma automática y transparente para el consumidor, las SLAs en condiciones expresadas mediante métricas de bajo nivel. Finalmente, se ha construido un repositorio de métricas de monitorización independientes del proveedor y que pueden ser medidas en estos proveedores (entornos multi-cloud) mediante un conjunto de funciones que permiten relacionar las métricas neutrales con las exportadas por cada proveedor. Para evaluar este trabajo, se han llevado a cabo una serie de experimentos que han demostrado la validez del mismo. Por un lado, se ha evaluado FLAS como auto-escalador de un sistema distribuido publicador-subscriptor cloud. Los resultados de esta evaluación muestran como FLAS es capaz de asegurar el cumplimiento de los requisitos de las SLAs durante más del 99 % del tiempo, tomando las decisiones y acciones de escalado más apropiadas en cada instante. Con todo ello, se puede concluir que es posible escalar de forma automáticas servicios cloud mediante el uso de sistemas de auto-escalado que permitan (i) cumplimiento y adherencia a las SLAs especificadas por los consumidores cloud, (ii) detección automática de los recursos computacionales que son el cuello de botella, y (iii) la monitorización de las métricas esenciales para la toma de decisiones de escalado en entornos multi-cloud.