Как вы настраиваете свои виртуальные машины? - PullRequest
15 голосов
/ 02 января 2009

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

На рынке представлено множество программных продуктов Virtual Machine:

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

Ответы [ 12 ]

18 голосов
/ 02 января 2009

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

Тестирование

Когда я тестирую, особенно настольное приложение, я обычно создаю несколько виртуальных машин, по одной для каждой платформы, на которой должно работать мое программное обеспечение (Windows 2000 / XP / Vista и т. Д.). Если доступны 32- и 64-битные версии, я также создаю один из них. Я также играю с настройками оборудования виртуальной машины (например, много ОЗУ, мало ОЗУ, 1 ядро, 2 ядра и т. Д.). Таким образом, я обнаружил множество маленьких ошибок, которые определенно превратили бы их в дикую природу, если бы я не использовал этот подход.

Этот подход также облегчает игру с различными программными сценариями (что происходит, если у пользователя, устанавливающего программу, отсутствует .NET 3.5 sp1? Что происходит, если у него нет компонента XXX? И т. Д.?

Разработка

Когда я разрабатываю, у меня есть одна виртуальная машина, на которой работают мои серверы баз данных (SQL2000 / 2005/2008). Это по двум причинам. Во-первых, это более реалистично. В производственной среде ваше приложение, вероятно, не работает на той же коробке, что и база данных. Почему бы не повторить это, когда вы разрабатываете? Кроме того, когда я не занимаюсь разработкой (помните, что это также мой домашний компьютер), действительно ли мне нужно, чтобы все эти службы баз данных работали? Да, я мог бы включать и выключать их вручную, но гораздо проще включить виртуальную машину.

Клиенты

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

Совместимость

Vista64 теперь моя основная машина. Любое старое оборудование / программное обеспечение, которое у меня есть, не будет хорошо работать с этой ОС. Я решил использовать Windows XP 32 в качестве виртуальной машины для всех этих элементов.

9 голосов
/ 05 января 2009

Вот кое-что, что еще не было упомянуто.

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

6 голосов
/ 05 января 2009

Когда я начинал в моей нынешней компании, большинство сотрудников службы поддержки / разработчиков / PM запускали Virtual PC с 1-3 виртуальными машинами на своем рабочем столе для тестирования.

Через несколько месяцев я собрал предложение, и теперь мы используем сервер VMware ESXi, работающий с пулом виртуальных машин (круглосуточно и без выходных), с различными средами для нашей службы поддержки, чтобы тестировать проблемы клиентов и воспроизводить их проблемы. У нас есть виртуальные машины Windows 2000 / XP / Vista с каждой установленной версией Office 2000/2002/2003/2007 (так что это 12 виртуальных машин), а также несколько более общих тестовых виртуальных машин, некоторые машины Server 2003/2008, на которых работает Citrix, Terminal Services и т. Д. В основном Большую часть времени, когда мы сталкиваемся с новой конфигурацией клиента, которую нам нужно отладить, и, скорее всего, другие клиенты также имеют эту конфигурацию, я создаю для нее виртуальную машину. (например, на данный момент мы используем только три 64-битные виртуальные машины - в основном это 32-битные)

Кроме того, на том же сервере запущена виртуальная машина XP, которую я использую для отладки установщиков (InstallShield, WiX) (VS 2005) и локализации (Lingobit), а также вторая виртуальная машина, которую наши разработчики используют для автоматического тестирования (TestComplete). ).

Виртуальной машине разработчика и установщику был назначен более высокий приоритет, и обе они настроены как виртуальные машины с двумя процессорами с 1 ГБ памяти. Остальные виртуальные машины имеют одинаковый приоритет и 256-1 ГБ ОЗУ.

Все работает на двухъядерном процессоре Xeon с 8 ГБ ОЗУ под управлением ESXi и аппаратным рейдом (4x1 ТБ RAID10)

За чуть более 2,5 тыс. Долл. США мы повысили производительность в 10 раз (представьте себе время простоя, пока служащий службы поддержки устанавливает на свой компьютер более старую версию офиса для воспроизведения проблемы клиента или время, которое я не могу использовать мой рабочий стол, потому что мы строим установщики). Следующим шагом будет удвоение объема оперативной памяти до 16 ГБ по мере того, как мы добавим больше потребляемой памяти виртуальных машин Server 2008 и Vista.

У нас все еще есть нечетная виртуальная машина на наших рабочих столах (например, у меня есть локализованные версии Windows, Ubuntu и Windows 7, работающие на VMware Workstation), но часто / интенсивно используемые конфигурации были выгружены на выделенный сервер, который мы можем все удаленно подключаются. Гораздо проще.

5 голосов
/ 02 января 2009

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

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

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

5 голосов
/ 02 января 2009

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

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

Не только это, но вы можете тестировать сразу на разных операционных системах, с одной ОС, установленной на каждый файл вашей виртуальной машины.

Поверьте, это избавит вас от хлопот при выполнении работ, о которых я упоминал выше.

5 голосов
/ 02 января 2009

Виртуализация (со снимками или непостоянными дисками) действительно полезна для тестирования установки программного обеспечения в известной чистой конфигурации (т. Е. Ничего не осталось от предыдущих ошибок установки вашего программного обеспечения).

3 голосов
/ 05 июля 2009

Обслуживание полочных компьютеров

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

  • Это потратило скудные аппаратные ресурсы и заняло много физического пространства.
  • Финансовые сотрудники должны были физически присутствовать на оборудовании для работы в каждой системе.

Сегодня я размещаю каждую готовую школу в отдельной виртуальной коробке внутри одного физического хоста. Доступ к каждой отдельной системе осуществляется через rdp по IP-номеру хоста, но с собственным номером порта и сохранением первоначальной безопасности каждой школы.

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

С каждой закрытой школой в своем собственном vbox нет возможности для перекрестного заражения данных между системами. Аппаратные средства стоимостью в тысячи долларов также высвобождаются для повторного развертывания.

Виртуализация является идеальным решением этой проблемы.

3 голосов
/ 02 января 2009

Я использую виртуальную машину под Windows для запуска Linux. Несмотря на то, что уже существует версия emacs для Windows, его использование в Linux просто почему-то приносит удовлетворение.

2 голосов
/ 05 января 2009

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

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

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

Звучит замечательно, но все немного скептически относятся: это правительственная организация ... Бюрократия и бюрократизм, вероятно, превратят это в большую потерю времени и денег.

2 голосов
/ 02 января 2009

Из того, что я знаю, нет ничего похожего на Parallels на Mac, а скорее для работы, чем для тестирования.

Интеграция (с «согласованностью», ваша виртуальная машина не работает «в окне» вашей хост-системы, все программы в гостевой системе имеют правильное окно в хост-системе) великолепна, и вы можете заполнить все ( ВСЕ! ) пробелы:
Мой коллега настроил, что Outlook (нет ничего похожего на Outlook для MacOsX) в Windows всплывает, когда он нажимает ссылку «mailto:» на веб-странице, просматриваемой с помощью Firefox на Mac!
В другом направлении, если он отправляет PDF-файл, он дважды щелкает вложение в Outlook (в Windows), которое открывает PDF-файл в программе просмотра PDF для Mac.

VirtualBox также предлагает такую ​​возможность разделения окон (по крайней мере, когда Windows работает на виртуальной машине в Linux), что действительно полезно для работы.

Для тестирования и т. Д., Конечно, нет ничего лучше, чем чисто разделенная среда.

...