Служебная тюрьма, запущенная из ограниченной учетной записи пользователя, звучит как лучшая отправная точка (т. Е. NOT root или тот же пользователь, который запускает ваш веб-сервер)
Чтобы предотвратить огромные порции бессмысленных данныхбудучи записанным на диск, вы можете использовать дисковые квоты или отдельный том, который вы не против заполнить (при условии, что вы не проводите параллельное тестирование под одним и тем же пользователем - или вы в конечном итоге столкнетесь с раздражающими условиями гонки)
Если вы хотите сделать что-то более масштабируемое и безопасное, вы можете использовать для связи динамические виртуализированные хосты с вашим собственным сервером / клиентским решением - у вас есть пул «агентов», которые получают инструкции для копирования и компиляции из репозитория X илиподелиться, затем выполнить ряд тестов и записать результат обратно через тот же протокол сервер / клиент.Ваш хост-процесс может отслеживать чрезмерное использование диска и, при необходимости, сообщать о предупреждениях, агенты могут выполнять или не выполнять код в изолированной тюрьме, а если вы супер параноик, вы уничтожаете агента после каждого запуска и запускаете новую виртуальную машину.когда следующий образец готов к тестированию.Если вы выполняете эту крупномасштабную работу в облаке (например, более 100 агентов, работающих на EC2), у вас будет достаточно раскрутки, чтобы удовлетворить спрос и, следовательно, снизить ваши расходы.Опять же, если вы собираетесь масштабироваться, вы можете использовать что-то вроде Amazon SQS для буферизации запросов, или если вы делаете экспериментальный пример проекта, тогда вы можете сделать что-то намного проще (просто подумайте о распределенных системах параллельной обработки, например, seti @ home)