Как я могу выяснить, какие аппаратные спецификации мне необходимы для адекватной поддержки определенного количества пользователей и виртуальных машин? Существуют ли рекомендации по минимальному количеству ресурсов на пользователя и т.д.?
Давайте рассмотрим различные варианты программного обеспечения, которое вы хотите запустить:
Если у вас есть один сервер баз данных, общий для всех разработчиков, вы должны запустить сервер баз данных с доступом ко многим ядрам ЦП и как можно большему количеству оперативной памяти. Быстрый (но не обязательно большой) диск важен. Размер диска будет зависеть от того, планируете ли вы хранить полные производственные данные для разработки, или сможете сэкономить несколько гигабайт. Наличие узкого места в базе данных было бы плохим, но имейте в виду, что рабочая нагрузка на базу данных разработки может сильно отличаться от рабочей нагрузки на рабочую базу данных. Первый, вероятно, будет меньше по масштабу и будет включать в себя более неэффективные запросы (в то время как запросы все еще разрабатываются и данные исследуются специальными запросами), в то время как производственная база данных, вероятно, будет иметь оптимизированные запросы, выполняемые против нее, и работать с ними. огромные наборы данных, которые (надеюсь) в значительной степени кэшируются в оперативной памяти.
JBoss в основном будет использовать процессорное время (при выполнении сервлетов), много оперативной памяти (потому что это Java) и пропускную способность сети. Как и база данных, усовершенствованный сервер приложений может использовать несколько ядер. Лучший способ выяснить правильное количество виртуальных ядер, которые нужно назначить, - это проверить его на разных количествах ядер. Но, как правило, никогда не назначайте больше виртуальных ядер, чем у вас физических ядер.
- Eclipse среды разработки рабочего стола
Это сложно. Сам Eclipse съест несколько сотен мегабайт оперативной памяти, но это число должно оставаться довольно статичным и равным после загрузки всех ваших плагинов. Поэтому вы можете проверить, сколько ОЗУ необходимо, исходя из того, сколько плагинов вы используете. Простейшие приложения Eclipse RCP могут использовать всего лишь 10 или 20 МБ ОЗУ, но полноценная среда JavaEE с инструментами GEF, инструментами контроля версий и базами данных может потреблять более гигабайта памяти. Компиляция исходных файлов Java не так зависит от ЦП, как собственный код, но все же может извлечь выгоду из нескольких ядер. В целом, однако, ваши экземпляры Eclipse, вероятно, будут использовать относительно меньше ресурсов (ЦП, ОЗУ, диск), чем экземпляры базы данных или JBoss.
В целом, с пятью пользователями и некоторыми серверными приложениями, которые известны своей жадностью к ресурсам, вы должны выглядеть высококлассно. Без имен брендов, что-то вроде: четырехъядерный, 24 ГБ ОЗУ или более, может быть SSD или быстрый аппаратный RAID-массив HDD.
Предполагая, что разработчики физически расположены в непосредственной близости от сервера, возможно ли было бы установить многопользовательскую коробку с несколькими наборами дисплея / клавиатуры / мыши и назначить гостю, клавиатуру, мышь и головку дисплея каждому пользователю? Как программное и аппаратное обеспечение этой установки будет спроектировано?
Сначала некоторые вопросы: здесь и здесь.
Что вы быстро узнаете, так это то, что вариантов много, и в этом пространстве нет сильного лидера. Не существует ни одного очевидного способа, которым пользуются 99,9% людей. Некоторые вообще не используют виртуализацию. Некоторые используют несколько экземпляров Xorg. Некоторые используют Windows Multipoint Server. Некоторые используют ... вы поняли идею. Это определенно выполнимая конфигурация, особенно для пяти пользователей ... положительным моментом является то, что вам не нужно иметь настольные ПК для каждого человека, только монитор / клавиатуру / мышь. Недостатком является то, что вам необходим более мощный центральный сервер для поддержки всех пользователей, а конфигурация программного обеспечения более сложная.
Для конфигурации с несколькими местами вам понадобится достаточно видеокарт, чтобы у вас было достаточно портов для всех необходимых мониторов. Вам также понадобится USB-концентратор для всех клавиатур и мышей.
Имейте в виду, что после того, как вы перейдете на конфигурацию с несколькими рабочими местами, вы будете инвестировать в видеокарты (и, возможно, программное обеспечение на несколько рабочих мест), которые будут привязывать вас к физическому расположению разработчиков на сервере. Поэтому, если позже вы решите привлечь другого разработчика, который работает в другой части мира, они не смогут (легко) присоединиться к вашей существующей установке, просто подняв стул и принеся клавиатуру / мышь / монитор. Также может быть сложно расширить настройки для большего количества разработчиков, как только вы достигнете предела порта вашей видеокарты.