Я считаю, что каждый пользователь может создать виртуальную машину, а затем использовать dist-cc для компиляции с использованием других виртуальных машин в облаке.
Распространена ли такая практика в среде разработки? Будет ли производительность намного хуже, чем просто предоставить пользователям доступ к физическому компьютеру?
Ваша победа с виртуальными машинами заключается в управляемости и отказоустойчивости / высокой доступности.
Вы получите снижение производительности, запустив что-то на виртуальной машине, а не на реальном оборудовании. Удар может быть небольшим или большим, в зависимости от типа нагрузки, которую вы создаете, и от того, как настроены виртуальные машины.
ЕСЛИ вы стремитесь к максимальной скорости компилируемой фермы, я бы, вероятно, не стал виртуализировать. Однако виртуальные машины можно настроить довольно быстро, особенно если вы можете получить для них быстрый диск. Заботы о накладных расходах на управление часто могут перевесить производительность.
Я предлагаю гибридный подход: пусть пользователи устанавливают некоторое количество виртуальных машин для своей среды разработки, а ферма distcc будет физическими ящиками. Их легко настроить, поскольку они делают только одно ... вы можете создать изображение или использовать что-то вроде cfengine / Chef, чтобы настроить их, если они умрут на вас. Это даст пользователям их собственное пространство, которое они могут использовать, и даст вам максимальную производительность из блоков компилятора.