Hemos implementado un servicio de compilación sobre la nube aquí en Pariksha.Co
Primero divida su servicio en dos divisiones, una donde cargará sus preguntas y otra donde los usuarios enviarán su código.
Por ejemplo, supongamos que divide un proceso de servicio de compilación en dos pasos.
- Soy un consultor en la nube con 2 años de experiencia y quiero cambiar mi carrera a AWS, ¿debo ir al curso de arquitecto de AWS o al curso de desarrollador de AWS?
- ¿Cuándo se llenará 'The Cloud' y no podrá tomar más datos?
- ¿Cuál es el servicio en la nube con más GB sin pagar?
- ¿Cuál es la diferencia entre cloud computing y Amazon Web Services?
- ¿Cuáles son los beneficios de usar el alojamiento en la nube sobre el alojamiento tradicional?
Primero, recibe información del usuario, como el código enviado, el idioma y la pregunta, lo que será bastante fácil.
Ahora debe decidir cómo su servicio compilará múltiples envíos al mismo tiempo. En nuestro caso, usamos docker. Tenemos una imagen acoplable que contiene compiladores de varios idiomas. Creamos un contenedor especial con esa imagen para cada compilación. Dentro de ese contenedor, compile el código y ejecútelo contra los archivos del caso de prueba de la pregunta respectiva, luego simplemente guarde los resultados de la compilación y elimine el contenedor. Resolverá el problema de los envíos múltiples. También debe pensar en la utilización de la memoria. Cuando varios usuarios envían su código al mismo tiempo, su servicio podría detenerse debido a la falta de memoria.
Al final de los usuarios, puede solicitar continuamente el servicio de compilación a menos que reciba la respuesta del envío del código.
Es solo una idea aproximada de desarrollar un servicio de compilación. La dockerización del servicio realmente nos ayudó a resolver muchos problemas.