Llana Díaz, Luis FernandoMartín Martín, EnriqueSánchez Paredes, JonathanVelázquez Alonso, Alberto2023-06-182023-06-182017https://hdl.handle.net/20.500.14352/20468Trabajo de Fin de Grado en Ingeniería Informática (Universidad Complutense, Facultad de Informática, curso 2016/2017)La motivación original de este proyecto es la mitigación de riesgos en el uso de un juez virtual, que es una aplicación que facilita el envío, ejecución y evaluación de ejercicios prácticos vía Internet. Los jueces virtuales más populares en entornos educativos son FLOP [27], DOMJudge, Mooshak y AceptaElReto. Este tipo de aplicaciones compilan y ejecutan código arbitrario, y por tanto precisan un entorno de ejecución seguro, aislado y en el que pueda limitarse el uso de recursos como memoria o tiempo de CPU. Además, dado que los alumnos pueden enviar sus prácticas en cualquier momento del día, estos sistemas necesitan alta disponibilidad. Este proyecto pretende dar respuesta a estas necesidades creando un entorno de ejecución seguro, controlado y de alta disponibilidad para la ejecución remota de código arbitrario. Para ello recogeremos los requisitos de la aplicación y analizaremos las distintas alternativas a partir de sus características y adecuación a los requisitos. Finalmente desarrollaremos una aplicación que dé solución a las necesidades indicadas basándonos en los requisitos y en los resultados de nuestra investigación.The original motivation for this project is risk mitigation for the use of a virtual judge, which is an application that facilitates sending, running and grading practical assignments online. Some popular virtual judges in educational environments are FLOP, DOMJudge, Mooshak and AceptaElReto. This kind of applications compile and execute arbitrary code, so they require a running environment that is secure, isolated and that can limit resource usage such as memory or CPU time. Also, given that students can send their assignments at any time, these systems need high availability. This project intends to give an answer to these needs by providing a secure, controlled and high availability running environment for the remote execution of arbitrary code. To this end we will gather this application’s requirements and we will analyze the different alternatives based on their features and adherence to requirements. Finally, we will develop an application that can solve the stated needs, based on the requirements and the results of our research.spaAtribución-NoComercial 3.0 EspañaSistema distribuido para la ejecución controlada de código arbitrariobachelor thesisopen access004.75:004.451(043.3)004.056(043.3)DockerKubernetesCeleryRedisRabbitMQTaskQueueOrquestaciónClústerSistema DistribuidoOrchestrationClusterDistributed SystemSistemas expertosSeguridad informática