|
Grado en Ingeniería Informática |
TRABAJOS FIN DE GRADO curso: 2021-22
Computación serverless en entornos de computación en la niebla de bajo coste. |
Tecnologías Específicas
Ingeniería de Computadores Tecnologías de la Información
Descripcion y Objetivos
La computación en la niebla surge como un complemento a la computación en la nube, que persigue acercar los recursos de cómputo y almacenamiento a los datos allí donde éstos se generan. Esto permite reducir tiempos de respuesta y optimizar ancho de banda, entre otras mejoras, aspectos que resultan críticos en muchos casos de uso relacionados con Internet de las Cosas. Una de las múltiples opciones de implementación es el uso de computadores monoplaca, de los que la Raspberry Pi es quizás su modelo más popular.
Por otro lado, la computación serverless, también llamada FaaS (Function as a Service) es un modelo de ejecución en el que el proveedor del servicio en la nube ejecuta un fragmento de código o función asignándole sobre la marcha los recursos computacionales necesarios para ello. El usuario no tiene que preocuparse de la gestión de estos recursos, siendo transparente para él. La función se ejecuta generalmente dentro de contenedores sin estado que se activan ante la llegada de un evento (por ejemplo, peticiones HTTP o eventos programados (trabajos cron)).
El objetivo general de este TFG es explorar las posibilidades que ofrece la computación serverless en el contexto de la computación en la niebla. En particular, se revisarán de forma cualitativa las tecnologías serverless susceptibles de ser desplegadas en los computadores de bajo coste. Este estudio nos permitirá seleccionar la tecnología serverless más adecuada para ser desplegada junto a Kubernetes y explorar sus prestaciones cuantitativas para un entorno de computación en la niebla de bajo coste basado cuyos nodos de cómputo son Raspberry Pi.
Metodología y Competencias
Para el desarrollo de este TFG se hará uso de una metodología ágil basada en Scrum. Se mantendrán reuniones quincenales con los tutores para el correcto seguimiento y retroalimentación del trabajo.
En cuanto al plan de trabajo, a priori se definen las siguientes fases:
- Estudio de Docker y Kubernetes
- Estudio de la tecnología serverless.
- Análisis cualitativo de distintas implementaciones serverless de código abierto.
- Despliegue de un clúster con Kubernetes sobre Raspberry Pis
- Despliegue de una tecnología serverless sobre el clúster de Kubernetes.
- Implementación de una o varias aplicaciones serverless sencillas de prueba, siguiendo una arquitectura de microservicios.
- Evaluación de prestaciones de la(s) aplicación(es) desarrolladas.
Las competencias que se aplican en el caso de la Tecnología de Ingeniería de Computadores son:
[IC3] Capacidad de analizar y evaluar arquitecturas de computadores, incluyendo plataformas paralelas y distribuidas, así como desarrollar y optimizar software para las mismas.
[IC4] Capacidad de diseñar e implementar software de sistema y de comunicaciones.
[IC7] Capacidad para analizar, evaluar, seleccionar y configurar plataformas hardware para el desarrollo y ejecución de aplicaciones y servicios informáticos.
Medios a utilizar
- Placas Raspberry Pi, PC o portátil
- Software de código abierto: Docker, Kubernetes, Kubeless, Fission, OpenWhisk, OpenFaaS.
Bibliografía
Tutores CARRIÓN ESPINOSA, CARMEN CAMINERO HERRÁEZ, Mª BLANCA | Alumno CASTRO NAVARRO, ALEJANDRO
|
| |