Мы обсуждаем, добавлять ли Client Hyper-V или VMWare Player Pro к новым настольным компьютерам с Windows 10 в конце этого года, и пусть наши разработчики запускают свои инструменты разработчика в виртуальной машине Windows 7 на своем локальном рабочем столе. По соображениям безопасности у них не будет прав администратора на своей локальной рабочей станции, которая будет использоваться только для размещения их виртуальных машин и для офисной работы, не требующей прав администратора, таких как электронная почта, Интернет, Microsoft Office и т. Д.).
Вместо этого разработчики будут иметь права администратора на виртуальных машинах. Виртуальные машины будут находиться в изолированной сетевой VLAN и домене AD без доступа к Интернету и без прямой передачи файлов или доступа к сети между виртуальной машиной и хостом. Пользователи будут выполнять всю разработку и тестирование внутри виртуальных машин.
Мне не удалось найти настоящего «плеера» виртуальных машин, который позволяет использовать только существующие виртуальные машины и не создавать новые при установке на рабочую станцию.
Клиентский Hyper-V не работает вообще, если у пользователей нет прав локального администратора на хост-компьютере или если они не входят в группу администраторов Hyper-V, что позволяет им неограниченно настраивать параметры виртуальной машины, что упростит им обход. ограничения даже без прав админа на хосте. VMWare Player - это не просто плеер. Это также позволяет создавать новые виртуальные машины даже без прав администратора.
Есть ли какое-либо альтернативное программное обеспечение для виртуальной машины, которое позволяет использовать существующие виртуальные машины на их локальной рабочей станции, но не добавляет или не перенастраивает оборудование виртуальных машин?
Если это невозможно, то как мы можем создать высокодоступный виртуальный сервер в Hyper-V, который имел бы производительность, необходимую для разработки тяжелого программного обеспечения, длинных запросов, сборок, отладки и т. Д. Многие разработчики работают с 10 или более запущенными приложениями в то же время и имеют 16 ГБ оперативной памяти в своих текущих системах.
Итак, я предполагаю, что нам понадобятся 2 очень мощных сервера с огромным объемом оперативной памяти для одновременной работы 100 виртуальных машин с высокой памятью и какой-то виртуальной SAN. Также потребуется дисковое пространство и ввод-вывод для обработки 100 занятых виртуальных машин рабочих станций.
Если бы было 100 виртуальных машин, мы могли бы запустить 50 на каждой в двухэлементном отказоустойчивом кластере. Если один выйдет из строя, другой сможет без проблем справиться с нагрузкой всех 100. Мы также могли бы выполнять запланированные живые миграции для обслуживания, такие как перезагрузка Центра обновления Windows на хостах. Затем нам потребуется SCVMM для управления ими и предоставления пользователям доступа к частному облаку, чтобы они могли получить доступ к виртуальным машинам, а также создавать / отменять контрольные точки на своих виртуальных машинах для тестирования программного обеспечения.
Поскольку у нас ограниченные деньги, какой будет рентабельный аппаратный дизайн, который мог бы сделать эту работу (характеристики сервера и т. Д.), И в каком приблизительном ценовом диапазоне мы ожидаем заплатить за использование оборудования от таких производителей, как Dell или HP и т. Д.?
Если затраты будут астрономическими, мы вернемся к плану добавления виртуальных машин локально на рабочих станциях и попытаемся найти способы ограничить пользователей от создания неавторизованных виртуальных машин.
Как насчет того, чтобы это исправить:
Рабочие станции находятся в защищенной локальной сети, доступ в Интернет ограничен с помощью прокси-сервера для ряда сайтов из белого списка, которые нужны разработчикам - например, StackExchange :). Разработчики имеют права администратора на рабочих станциях.
Для всех других нужд они могут подключаться к виртуальной машине и иметь (внешнюю) электронную почту и, возможно, полный доступ в Интернет, но не иметь доступа к рабочим данным.
Таким образом, требуемая производительность виртуальных машин значительно ниже. Возможно, и их количество меньше. Возможно, вы можете назначать виртуальные машины динамически по мере необходимости.
Требования к оборудованию в значительной степени зависят от необходимой производительности, но я лично выбрал бы около 10 дешевых узлов с 8-ядерным процессором и 32 ГБ оперативной памяти и очень быстрым SSD-массивом каждый - и довольно автоматизированным обслуживанием. Это для случая, когда виртуальная машина является не основной рабочей станцией, а вспомогательной машиной.
IIUC, вас беспокоит безопасность и сохранность кода и документации, и вы хотели бы иметь систему, в которой вам не нужно доверять разработчикам (слишком сильно).
У меня очень похожая задача для моего клиента, просто это САПР, а не разработка программного обеспечения. По большей части это социальная проблема, которую мы пытаемся решить техническими средствами.
Как разработчики могут эффективно работать без постоянного и удобного доступа к сайтам, связанным с программированием, и семейству StackExchange? :)