Ir al contenido

Documat


Resumen de A technology-agnostic approach to auto-scale services in heterogeneous clouds

Víctor Rampérez Martín

  • En los últimos años hemos sido testigos de una revolución digital sin precedentes, la cual está generando sociedades cada vez más digitalizadas, en las cuales, gran parte de los aspectos de nuestra vida cotidiana dependen, de una forma u otra, 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 la luz, el gas o el agua. Como resultado, la computación en la nube o Cloud Computing, surge como una forma de ofrecer recursos de computación con un modelo similar al de otros servicios esenciales, esto es, 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, con el fin de cumplir los requisitos exigidos por el consumidor. Estos requisitos se suelen expresar formalmente en lo que se conoce como Acuerdo de Nivel de Servicio o Service Level Agreement (SLA). No obstante, la gran variedad de estas SLAs, que pueden ser de diversa naturaleza dependiendo del objetivo a optimizar (e.g. coste económico, consumo de energía o rendimiento), hace que sea muy complicado estimar de forma adecuada por los consumidores la cantidad de recursos computacionales necesarios en cada momento para satisfacer sus necesidades.

    Para solventar ese problema, los sistemas de auto-escalado (auto-scalers), se encargan de asegurar el cumplimiento de las SLAs de los consumidores de forma automática, añadiendo y/o liberando la cantidad necesaria de recursos computacionales necesaria en cada instante para cumplir los objetivos del consumidor, minimizando los tiempos de aprovisionamiento por exceso (over-provisioning) y por defecto (under-provisioning).

    No obstante, a pesar de la gran variedad de sistemas de auto-escalado que existen a día de hoy, tanto en el ámbito industrial como en el académico, existen una serie de limitaciones y carencias que impiden explotar por completo el verdadero potencial de estos sistemas. 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 tomar decisiones de escalado sin violar las SLAs. Además, estos sistemas no suelen detectar de forma automática que recurso es el que actúa como cuello de botella, y por tanto debe ser escalado, sino que es un conocimiento que se presupone al consumidor. 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, lo cual no es una tarea sencilla y requiere de conocimiento experto. Finalmente, los sistemas de auto-escalado que pueden ser utilizados en entornos multi-cloud (i.e. uso de varios proveedores de computación en la nube distintos) son escasos, debido principalmente a la falta de un conjunto de métricas de monitorización que puedan ser medidas en múltiples proveedores. Esto último provoca que no se puedan explotar las ventajas de los entornos multi-cloud, obligando y restringiendo la utilización de un único proveedor de servicios de computación en la nube.

    Son precisamente estas carencias y limitaciones las que se abordan en el presente trabajo. Para ello, se ha diseñado e implementado FLAS (Forecasted Load Auto-Scaling), un sistema de auto-escalado para sistemas distribuidos centrado en las SLAs del consumidor que detecta de forma automática el/los recurso/s 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, las cuales permiten predecir el comportamiento de los parámetros de las SLAs en instantes futuros en función de la carga de trabajo, con técnicas reactivas que permiten al sistema tomar decisiones de escalado cuando estas predicciones fallan.

    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, lo que elimina al consumidor la carga de tener que realizar estas traducciones. Finalmente, se ha realizado un amplio estudio de los servicios en la nube ofrecidos por los principales proveedores de estos servicios (i.e. Amazon Web Services, Google Cloud y Microsoft Azure) para determinar (i) los servicios equivalentes entre estos proveedores y (ii) las métricas de monitorización equivalentes para cada uno de estos servicios, de entre el conjunto de métricas exportadas por cada proveedor. Con este estudio, se ha construido un repositorio de métricas de monitorización a distintos niveles, 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 (E-SilboPS). Los resultados de esta evaluación demuestran 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, bajo una amplia variedad de cargas de trabajo y explotando los beneficios de las técnicas reactivas y proactivas de escalado. Además, también se ha demostrado como el algoritmo de escalado, diseñado e implementado en FLAS, es capaz de detectar aquellos casos en los que no es eficiente llevar a cabo una acción de escalado, ya que esta puede incurrir en una violación de la SLA más duradera que el no realizar ninguna acción. Hasta donde sabemos, podemos considerar a FLAS el primer sistema de auto-escalado cloud de su tipo que se integra con sistemas cloud publicador-subscriptor basados en contenido.

    Por otro lado, la evaluación de la última parte de este trabajo ha demostrado la validez y adecuación de esta solución para eliminar del cloud-consumer la tarea de traducir manualmente las SLAs en objetivos de bajo nivel implementables en los sistemas actuales de auto-escalado y darle a su vez la oportunidad de explotar entornos multi-cloud. Se han realizado varios experimentos utilizando distintos tipos de servicios cloud a distintos niveles en los tres principales proveedores cloud (Amazon Web Services, Google Cloud y Microsoft Azure).

    Más concretamente, el sistema basado en conocimiento que se presenta en este trabajo, ha demostrado su capacidad para realizar estas traducciones entre objetivos de alto nivel y objetivos de bajo nivel, teniendo en cuenta el contexto de aplicación, así como una gran variedad de otros factores (tipo de sistema cloud, naturaleza de los objetivos de alto nivel, etc). Además, su diseño permite expandir esta solución con el conocimiento adicional de expertos de forma dinámica.

    Finalmente, esta evaluación también demostró la adecuación y validez del repositorio de métricas independientes del proveedor presentadas en este trabajo. Los resultados de la evaluación, muestran como gracias a estas métricas, las aplicaciones cloud pueden explotar los beneficios de los entornos multi-cloud de una forma transparente, tanto para el cloud-consumer, como para la propia aplicación, permitiendo el cumplimiento de requisitos tan específicos y actuales como el cumplimiento de las leyes de protección de datos o la utilización de centros de procesamiento de datos en áreas geográficas distintas.

    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.


Fundación Dialnet

Mi Documat