Resumen
La computación en la nube ha traído consigo muchas ventajas derivadas de sus características particulares, proporcionando a sus usuarios varios beneficios pero también nuevos retos en el aprovisionamiento de servicios de hardware y software. Entre los desafíos más significativos está el aprovisionamiento adecuado y de alta calidad de los servicios que el proveedor ofrece a sus clientes. Dado el amplio número de proveedores de plataformas en la nube, se hace indispensable que éstos ofrezcan servicios de calidad, a fin de satisfacer las expectativas de sus clientes.
Las características de calidad de los servicios (Quality of Services, QoS) que son pactadas entre clientes y proveedores se ven reflejadas en los acuerdos de nivel de servicios (Service Level Agreement, SLA), que también describen las penalizaciones que se deben aplicar en caso de incumplimientos del SLA. De ahí, la necesidad de conocer el estado actual de los servicios para comprobar si los términos del SLA se cumplen.
Los métodos y herramientas de monitorización juegan un papel crucial en este contexto ya que proporcionan información sobre la utilización de los servicios y su nivel de calidad. A pesar de que existen muchas soluciones de monitorización de propósito general, éstas no se adaptan adecuadamente debido a que es habitual necesitar monitorizar aspectos específicos de los servicios con respecto a los recursos concretos de la plataforma. Por otra parte, existen soluciones de monitorización específicas para la nube, pero estas presentan limitaciones importantes a la hora de especificar necesidades de monitorización particulares ya que están centradas en monitorizar atributos de calidad de bajo nivel (uso de CPU, memoria en disco, etc) o son muy rígidas para poder modificar los requisitos en tiempo de ejecución. Además, algunas soluciones existentes están limitadas a ciertas plataformas cloud y otras no permiten explotar datos de monitorización provistos por otras herramientas ya que funcionan de manera aislada. De esta forma, surge la necesidad de un método de monitorización de servicios cloud que permita mitigar los problemas descritos y que además, explote datos obtenidos por soluciones de terceros, ya sean herramientas especializadas en monitorizar ciertos atributos de calidad, agentes, datos proporcionados por las plataformas cloud, entre otros.
La hipótesis de esta tesis es que la utilización de modelos en tiempo de ejecución, una técnica que se enmarca en la Ingeniería Dirigida por Modelos, puede constituir una solución apropiada ya que estos modelos permitirán cambiar dinámicamente los requisitos de monitorización sin la necesidad de cambiar la infraestructura de monitorización. Por tanto, el principal objetivo de esta tesis doctoral es la definición y validación empírica de un método de monitorización de servicios cloud (Cloud MoS@RT) que explote los modelos en tiempo de ejecución para hacer frente a los desafíos de monitorización de servicios cloud previamente mencionados. Además, se ha diseñado e implementado una infraestructura de monitorización que soporta el método propuesto. Finalmente, el método y la infraestructura de monitorización han sido validados empíricamente mediante un cuasi-experimento y tres replicaciones en España, Paraguay y Ecuador.
Por tanto, esta tesis doctoral presenta una solución de monitorización innovadora, ya que al emplear modelos en tiempo de ejecución, proporciona un alto grado de flexibilidad en la especificación de requisitos de monitorización de servicios cloud, evitando la re-implementación de la infraestructura, todo esto debido a que cualquier modificación en los requisitos de monitorización se incluyen en el modelo en tiempo de ejecución. Por otro lado, la solución es interoperable debido a que permite la captura e integración de datos de monitorización desde distintos escenarios y fuentes de datos.