Computación de Altas Prestaciones en entornos contenerizados
Fecha
2021Resumen
Today Kubernetes deployments have had a major impact on web applications
based on microservices architectures. Its most notable potential is the ability to
scale and manage the services associated with these applications that run in
the cloud, usually with container based technology. A wide variety of tools and
environments are available that enable enhancements to Kubernetes deployments. However, one of the drawbacks that arise in this area is that it is not
precisely known which software has the ideal characteristics to provide better
performance in specific problems or, if not, the execution is better on a system
without containerization. The objective of this project is to develop a comparison of runtime environments with and without containers in order to analyze
whether Kubernetes is a viable alternative to running on a server without containerization for High Performance Computing (HPC) workloads.
In order to carry out this objective, the “GraphCloud ” application has been
created for this project, which consists of a computer service that allows applications to be launched remotely from authorized clients. This application is under
the development stack called ” MEVN ” (Mongodb, Express, Vue.js and node.js)
allowing, in addition, to apply various technologies in the field of High Performance Computing. At the same time, we must emphasize that an exhaustive
performance analysis will be carried out on Machine Learning algorithms and
Gaussian filter on images, executing each one both sequentially and in parallel.
The project has been developed using technology in three systems, in a personal computer (processor with 4 cores), in the IaaS of the University of La Laguna (corresponding to a structure of virtualized machines of a core) and, later,
in the private server (Verode) of the research group ”High Performance Computing”(server with 40 integrated cores). The performance analysis we have conducted focuses on the latter system. En la actualidad los despliegues con Kubernetes han tenido un gran impacto
en las aplicaciones web basadas en arquitecturas de microservicios. Su potencialidad más destacable es la capacidad para escalar y administrar los servicios
asociados a estas aplicaciones que se ejecutan en la nube, normalmente con
tecnología basada en contenedores. Se dispone de una gran variedad de herramientas y entornos que posibilitan mejoras de los despliegues con Kubernetes.
Sin embargo, uno de los inconvenientes que surgen en este ámbito es que, no se
conoce de manera precisa qué software posee las características idóneas para
proporcionar un mejor rendimiento en problemáticas específicas o, si en su defecto, es mejor la ejecución sobre un sistema sin contenerización. Este proyecto
se plantea el objetivo de desarrollar una comparativa de entornos de ejecución
con y sin contenedores con el fin de analizar si Kubernetes es una alternativa
viable frente a la ejecución en un servidor sin contenerización para cargas de
trabajo en computación de altas prestaciones.
Con el fin de llevar a cabo este objetivo, se ha creado para este proyecto la
aplicación ”GraphCloud” que, consiste en un servicio de cómputo que permite
poder lanzar aplicaciones de manera remota desde clientes autorizados. Este
aplicativo, se encuentra bajo el stack de desarrollo denominado ”MEVN” (Mongodb, Express, Vue.js y node.js) permitiendo, además, aplicar diversas tecnologías
en el ámbito de la Computación de Altas Prestaciones. Al mismo tiempo, debemos destacar que se va a realizar un exhaustivo análisis de rendimiento sobre
algoritmos de Machine Learning y filtro Gaussiano sobre imágenes, ejecutando
cada uno tanto de forma secuencial como de forma paralela.
El proyecto se ha desarrollado haciendo uso de la tecnología en tres sistemas,
en un ordenador personal (procesador con 4 cores), en el IaaS de la universidad
de la Laguna (correspondiente a una estructura de máquinas virtualizadas de
un core) y, posteriormente, en el servidor privado (Verode) del grupo de investigación ”Computación de Altas Prestaciones” (servidor con 40 cores integrados). El
análisis de rendimiento que hemos realizado se centra en este últimos sistema.