Hoy en día es posible disponer de capacidad de cómputo y almacenamiento bajo demanda, según un modelo “pay-as-you-go”, gracias a los servicios de nube pública, como Amazon Web Services (AWS). Además de la reserva de recursos por periodos de tiempo determinados y a un coste prefijado (las denominadas “instancias reservadas”), AWS ofrece una modalidad de instancias cuyo precio varía de forma dinámica, según la oferta y demanda de recursos y la disponibilidad de los mismos en la propia infraestructura del proveedor. Estas son las denominadas “spot instances” y la idea es que se adjudican en base a una subasta entre los usuarios que pujan por ellas.
Más concretamente, el proceso de uso de una instancia spot es el siguiente: un usuario determina un precio máximo (bid) a pagar por una (o más) instancia(s) de un tipo determinado (según sus requisitos de CPU, memoria, almacenamiento, etc). Mientras el precio que determina el sistema para las instancias spot solicitadas sea inferior al precio especificado por el usuario, las instancias se desplegarán. En el momento en que el precio de las instancias spot supere al ofrecido por el usuario, las instancias se apagarán (con un preaviso de 2 minutos). Las instancias spot ofrecen la posibilidad de disponer de capacidad de cálculo/almacenamiento a un precio sensiblemente inferior al del mercado de instancias reservadas, siempre y cuando la aplicación que las use esté preparada para tolerar la interrupción de las instancias. Es decir, se trata de un compromiso entre precio y disponibilidad de recursos. A mayor precio ofrecido por el usuario, más posibilidades de obtener instancias spot por más tiempo, y viceversa, a mayor ahorro, más posibilidades hay de que las instancias spot sean interrumpidas. Para ayudar a los usuarios a calcular sus bids, AWS pone a su disposición un histórico de precios de hasta 3 meses.
El objetivo de este TFG es aplicar distintas técnicas de predicción sobre los precios de las instancias spot, con el objeto de proponer un bid que maximice la disponibilidad de las instancias spot a un coste óptimo.
Para la consecución del objetivo de este TFG se plantea la siguiente metodología:
1. Estudio del paradigma de la computación en cloud pública y familiarización con el concepto de instancias spot
2. Elaboración de un script que permita recuperar la información de precios de las instancias spot de forma automática
3. Revisión de técnicas de predicción sobre series temporales que puedan ser de aplicación sobre el problema propuesto y selección de las más adecuadas
4. Implementación de las técnicas de predicción seleccionadas sobre los conjuntos de datos extraídos de AWS
5. Evaluación de los resultados obtenidos al aplicar las técnicas de predicción seleccionadas.
Competencias Computación:
[C4] Capacidad para conocer los fundamentos, paradigmas y técnicas propias de los sistemas inteligentes y analizar, diseñar y construir sistemas, servicios y aplicaciones informáticas que utilicen dichas técnicas en cualquier ámbito de aplicación.
[C7] Capacidad para conocer y desarrollar técnicas de aprendizaje computacional y diseñar e implementar aplicaciones y sistemas que las utilicen, incluyendo las dedicadas a extracción automática de información y conocimiento a partir de grandes volúmenes de datos.
Competencias Ingeniería de Computadores:
[IC7] Capacidad para analizar, evaluar, seleccionar y configurar plataformas hardware para el desarrollo y ejecución de aplicaciones y servicios informáticos.
Competencias Tecnologías de la Información:
[TI2] Capacidad para seleccionar, diseñar, desplegar, integrar, evaluar, construir, gestionar, explotar y mantener las tecnologías de hardware, software y redes, dentro de los parámetros de coste y calidad adecuados.
[TI5] Capacidad para seleccionar, desplegar, integrar y gestionar sistemas de información que satisfagan las necesidades de la organización, con los criterios de coste y calidad identificados.
Se proporcionará acceso a la capa gratuita de Amazon Web Services, para obtener el historial de precios de las instancias spot.
Para el desarrollo del TFG, se emplearán herramientas gratuitas, a determinar durante el desarrollo del mismo. A priori, se propone el uso de Python, junto con diversos plugins para el tratamiento de series temporales y visualización de las mismas.
En cuanto al hardware, no se necesitan medios especiales, más alla de un PC o portátil con conexión a Internet. Si fuese necesario, se habilitaría un puesto de trabajo en el I3A.