Replies: 2 comments 2 replies
-
|
Toda opinião é valiosa, mas gostaria explicitamente da opinião do @DaviAMSilva, que queria essa funcionalidade. |
Beta Was this translation helpful? Give feedback.
0 replies
-
|
Já criei um protótipo de runner que consegue escolher qual handler utilizar de acordo com o valor de |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment

Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Runners
Pessoal, tenho uma ideia futura pro projeto baseada na forma que o GitHub Actions funciona, e seria a maior demonstração de tecnologia no nosso projeto até agora.
É a possibilidade de executar de forma descentralizada códigos enviados pelos usuários, sem que eles tenham que sair do navegador.
Como isso seria feito?
Minha sugestão inicial é a seguinte.
Nosso servidor teria uma lista de IPs definidos num dotenv, e uma API que comunica com eles para encontrar o primeiro IP que está atualmente hospedando algum runner—executador de código—para a linguagem que o usuario está usando.
Se algum runner estiver disponível, nosso servidor principal envia o código do usuário para o runner.
O runner estará rodando um processo escutando em determinada porta, e assim que recebe os dados ele cria um container baseado em uma imagem, roda o código dentro dele e retorna a saída, que é enviada de volta para o servidor central.
Para não sobrecarregar nossos runners, podemos verificar se o host possui recursos suficientes pra criar um novo container sem impactar no desempenho do resto do computador. Claro, o runner teria limites de memória e tempo de execução do programa.
Escalabilidade
Como nosso serviço de runners seria descentralizado, a sobrecarga no servidor principal seria reduzida. Vários indivíduos de confiança poderiam hospedar os próprios runners, desde que consigamos fazer isso de forma segura.
Poderíamos até comunicar diretamente entre o navegador e o runner, sem o servidor do site no caminho. Imagino que seria bem difícil e traria preocupações de segurança e.g. exibir o IP do runner
Beta Was this translation helpful? Give feedback.
All reactions