Quiero aprender a implementar un compilador como un servicio en la nube. Por favor, ilumíneme con los detalles necesarios como principiante. ¿Dónde debo comenzar y cómo?

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.

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.