Возможно ли виртуализировать машины разработчиков?

StackOverflow https://stackoverflow.com/questions/1668809

Вопрос

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

Наша группа - это небольшой ISV / SAAS, который существует как подразделение более крупной медиа-группы.Мы не являемся центром затрат, мы зарабатываем деньги, даже в этом году.Мы принадлежим медиагруппе среднего размера, бизнес-модель которой совершенно иная и, похоже, ориентирована только на снижение затрат.

Наш программный стек - Visual Studio 2008, SQL 2008 на Windows Server 2008 (так что несколько корневых веб-сайтов могут быть размещены и отлажены на компьютере каждого разработчика).Наше целевое оборудование - четырехъядерная рабочая станция с частотой 3 ГГц, 4 ГБ оперативной памяти и зеркальные жесткие диски RAID 1, чтобы мы были защищены от потери производительности из-за потери жесткого диска разработчика.

Корпорация хочет предоставить нам пару мощных, но устаревших серверов, выведенных из эксплуатации, и тогда у каждого разработчика на этом сервере была бы виртуальная рабочая станция.Компьютеры, стоящие на наших рабочих столах, были бы тупыми терминалами по 400-500 долларов за штуку.

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

Пожалуйста, приведите аргументы "за" или "против", доказательства того, видели ли вы, как это пытались сделать, и насколько хорошо (или нет) это получилось.

Это было полезно?

Решение

Это звучит как идея с благими намерениями, но:

По моему опыту, для обеспечения производительности в современных IDE вам нужно несколько ядер, много памяти и быстрые диски.Я не вижу, чтобы это происходило в виртуальной среде с какой-либо экономикой.Отдельные коробки все равно лучше.

Это также вопрос контроля.В виртуальной среде я могу представить себе всевозможные ограничения.Сможете ли вы по-прежнему устанавливать свои собственные инструменты, например?

В конечном счете, это заблуждение.Если эта идея значительно увеличит время сборки, любая экономия на оборудовании быстро будет сведена на нет потерей производительности.И наоборот, деньги, которые тратятся на достойные отдельные машины для разработчиков, быстро окупаются снова и снова за счет сокращения времени сборки.

Отдельные машины хорошего качества являются инвестиции, а не стоимость.

Другие советы

Разработка привязана к диску, т. е.вы тратите свое время на ожидание сборок, которые большую часть времени связаны с диском.Если вы все используете общую машину, время сборки станет намного хуже.

Помимо всех данных (производительность, дисковое пространство и т.д.):

Меня бы это устраивало до тех пор, пока у меня все еще была поддержка нескольких мониторов.

Без этого ничего не получится.

Элементарная неспособность понять, что на самом деле делает окно разработчика большую часть времени:

При сборке его пережевывают процессор и диск - особенно диск.При тестировании вы говорите о запуске одного или нескольких экземпляров Visual Studio (как только вы пройдете мимо двух вещей, начнут появляться интересные), сервера базы данных, веб-сайта / служб плюс всего остального (браузеры с много открытых вкладок, программного обеспечения для ноутбука и бог знает чего еще), все это размещено на нескольких мониторах (по крайней мере, на двух).Побольше ядер, побольше памяти, пожалуйста!

Я могу вполне с радостью согласиться с тем, что есть аргумент в пользу виртуализации - хороший блок разработки должен иметь возможность размещать несколько параллельных виртуальных машин, чтобы изолировать некоторые из вышеперечисленных и предоставить "чистые" среды для тестирования.Обратите внимание, что это поле для ОДНОГО разработчика, размещающего несколько виртуальных машин исключительно в интересах этого единственного разработчика...

Наша команда разрабатывает на удаленном сервере (никакого графического интерфейса, все по-старому vim) в течение довольно долгого времени без проблем.Конечно, для этого требуется довольно мощный сервер, и иногда он начинает немного тормозить, если все начинают компилироваться одновременно.

Но в качестве бонуса вы очень мобильны с точки зрения того, где вы можете развиваться (у всех нас есть ноутбуки), будь то в офисе, дома, на солнечном берегу (последнее, вероятно, было преувеличением).

Но да, конечно, это может не все хорошо работать для приложений с высокой графической нагрузкой.

Похоже, что ваша группа не предлагает рассмотренные вами решения в хорошо документированном формате, иначе корпорация не запихивала бы вам решения в глотку.Если у вас есть документированный процесс разработки, корпорация, возможно, захочет обсудить с вами изменение процесса, но как только вы скажете: "это изменение нарушит наш процесс, и нам придется перенастроить наш рабочий процесс разработки", они увидят, как сложно переработать процесс, и, скорее всего, отступят.Тем не менее, как только ваш процесс задокументирован, вы должны внутренне быть безжалостны в попытках сделать его более эффективным и экономичным и непредвзято относиться к предложениям корпорации.

Я предполагаю, что у вас уже есть машины для SVN / TRAC, вашего сервера непрерывной интеграции, демонстрационных версий продукта, тестирования и т.д.и что единственное возможное использование этих серверов вашей командой - для персональных виртуальных машин.

Я делаю много вещей, которые настраивают мой процессор на 100%.Компиляции, безусловно, достигают этого.Теперь представьте, что вам приходится делиться этим процессором с 10 другими разработчиками.Потеря производительности станет вполне очевидной.Если у вас многоядерный компьютер, это будет не так болезненно.Приобретите Intel i7, и вы, вероятно, даже не заметите этого, когда в систему войдут 8 человек.Большинство программ (включая мой компилятор) в любом случае не могут использовать более 1 процессора.

Тем не менее, это жизнеспособное решение для снижения затрат.Раньше я работал в компании, которая с тех пор перешла на эти дурацкие терминалы.Это работает нормально.В моем университете были компьютеры HP UNIX, которые были тупыми терминалами.Они вошли на сервер, который разделил владение процессором между любым количеством людей, вошедших в систему.Что люди могли бы сделать, так это войти на сервер и проверить количество вошедших в систему людей.Если бы их было слишком много, они бы искали следующий, потому что время сборки заметно замедляется.Я бы никогда не стал заходить на легко запоминающиеся имена серверов.=)

Это определенно работает, но также снижает производительность из-за более длительного времени сборки, особенно когда несколько человек работают одновременно.Поскольку производительность очень трудно поддается количественной оценке, возможно, будет трудно оспорить вашу точку зрения.

Ускорение графики также может быть проблемой, если вам нужно что-либо сделать с анимацией, видео или редактированием изображений.На самом деле вы не можете протестировать воспроизведение видео через сеанс RDP, поскольку частота кадров и / или глубина цвета недостаточно высоки.

Независимо от производительности, в моей компании мы переходим на ноутбуки в качестве машин для разработчиков.Главное преимущество заключается в том, что разработчики могут приносить свои компьютеры на собрания, конференции и т.д.Кроме того, очень ценно иметь возможность сидеть рядом с коллегой, когда вы помогаете ему решить проблему, и иметь доступ к собственной среде разработки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top