cambiar a curso:   2018-19   2020-21


Grado en Ingeniería Informática


TRABAJOS FIN DE GRADO
curso: 2019-20

Explorando las prestaciones de Singularity vs Docker


Tecnologías Específicas

Ingeniería de Computadores
 


Descripcion y Objetivos

Actualmente se está imponiendo el uso de los contenedores para la gestión de aplicaciones Cloud basadas en microservicios [1]. Los contenedores son una tecnología de virtualización ligera a nivel de sistema operativo que empaqueta el software incluyendo todo lo necesario para su ejecución (aplicación más dependencias).  La clave de su éxito radica en que los contenedores son ligeros y portables, esto es, suponen poca sobrecarga para las aplicaciones y pueden ejecutarse en cualquier máquina con la tecnología instalada. Docker [2] es hoy en día la tecnología de facto en la industria pero, no es trivial su uso con las aplicaciones de computación científica en entornos HPC (High Performance Computing) [3]. Así, recientemente surge Singularity [4] [5]: una solución basada en contenedores creada desde sus orígenes pensando en el software científico HPC, que facilita la movilidad y replicación de los experimentos científicos. Singularity difiere de la conocida tecnología de contenedores Docker en el modelo de seguridad.

El objetivo de este Trabajo Fin de Grado (TFG) es la caracterización de las prestaciones de Singularity en comparación con Docker.  Para la consecución con éxito de este objetivo se han de abordar los siguientes sub-objetivos:

  • Estudio de la tecnología de virtualización basada en contenedores
  • Análisis cualitativo de Singularity y Docker
  • Instalación de una plataforma de contenedores Singularity
  • Análisis de las prestaciones del sistema, en comparación con Docker
 


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:

  1. Estudiar la tecnología de contenedores para conocer los conceptos básicos relacionados y sus características.
  2. Estudiar la solución estándar Docker para conocer las funcionalidades que presenta.
  3. Estudiar Singularity y comprender las diferencias frente a Docker.
  4. Diseñar e implementar una plataforma de contenedores Singularity.
  5. Desplegar diferentes benchmarks con alto uso de CPU, entrada/salida y red.
  6. Analizar las prestaciones del sistema, en comparación con Docker.

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.

[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

  • Software de código abierto
  • PC personal y clústeres HPC disponibles en el I3A
 


Bibliografía

[1] Virtualización basada en contenedores: https://searchdatacenter.techtarget.com/es/definicion/virtualizacion-basada-en-contenedores-virtualizacion-a-nivel-de-sistema-operativo. Último acceso: 2 octubre 2019

[2] Docker: https://www.docker.com/. Último acceso: 2 octubre 2019

[3] Gannon, Dennis & Sochat, Vanessa. (2017). Singularity: A Container System for HPC Applications. Capítulo de libro. Cloud Computing for Science and Engineering, Edition: 2. Disponible en: https://cloud4scieng.org/singularity-a-container-system-for-hpc-applications/. Último acceso: 2 octubre 2019

[4] Singularity: https://sylabs.io/docs/.  Último acceso: 2 octubre 2019

[5] Tutorial de 3horas sobre Singularity: https://github.com/NIH-HPC/Singularity-Tutorial. Último acceso: 2 octubre 2019

 


Tutores


CAMINERO HERRÁEZ, Mª BLANCA
CARRIÓN ESPINOSA, CARMEN
 

Alumno


REINOSA SIMÓN, RAÚL