Небольшая песочница функций (ненадежное выполнение кода) в C#, Python и Node.js

Я поставил задачу разработать приложение, которое принимает код пользователей на нескольких языках (C#, Python и Node.js) и запускает их на сервере.

Мы просто хотим получить доступ к пользователю для выполнения очень крошечных функций для вычисления некоторых математических вычислений с очень ограниченным доступом к нескольким библиотекам (доступ к потоковой передаче, вводу-выводу, сети,... не требуется).

Предположим, что пользователь должен написать такую ​​функцию на указанных выше языках:

public int Calculate(string a, string b)
{
      return Convert.ToInt32(a) + Convert.ToInt32(b);
}

Я знаю, что удобнее и безопаснее запускать их в изолированных средах (Docker, VM и т. Д.).

Предполагая, что у меня есть 100000 функций, которые будут запускаться каждую минуту (или меньше), эти решения потребляют ресурсы в моем случае использования, и я не могу запускать среду (например, докер) для каждой функции.

Единственный способ, которым я думаю, - это загрузить и запустить API для каждого пользователя на веб-сервере (IIS или NGINX), чтобы ограничить их доступ и использование ресурсов. Поскольку это решение много лет тестировалось в компаниях, предоставляющих общий хостинг, оно безопасно и легко управляемо.

Можно ли реализовать какой-нибудь легкий подход?

0 ответов

Другие вопросы по тегам