Как вы настраиваете свои виртуальные машины?

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

  •  03-07-2019
  •  | 
  •  

Вопрос

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

На рынке существует множество программных продуктов для виртуальных машин:

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

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

Решение

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

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

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

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

Развитие

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

Клиенты

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

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

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

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

Вот кое-что, о чем еще не упоминалось.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Я использовал подход виртуализации с использованием VMware Server, когда передо мной стояла задача протестировать кластеризованную среду WebSphere Application Server.После настройки VMware Server я создал новую виртуальную машину и выполнил установку всего необходимого программного обеспечения, такого как WebSphere App Server, Oracle, WebSphere Commerce и т.д., После чего я выключил виртуальную машину и скопировал образ виртуального жесткого диска в два разных файла, один как виртуальная машина-клон, а другой как резервная копия.

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

Функциональность моментальных снимков, которая существует как в VMware, так и в Microsoft Virtual PC / Server, достаточно хороша, чтобы рассмотреть возможность виртуализации в сценариях, в которых, по вашему мнению, вы можете внести критические изменения, отменить которые может быть не так-то просто.

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

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

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

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

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

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

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

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

Если мы используем виртуальную машину (vpc 2007, Virtual Server 2005, приложение VMware и т.д.)

1. Мы можем запускать несколько операционных систем (windows98, 2000, XP, Vista, Windows Server 2003,2008, Windows 7 / linux / solaris) на одном сервере

2. Мы можем сократить затраты на оборудование и пространство в Центре обработки данных

3. Мы можем снизить затраты на питание и охлаждение переменного тока.

4.Мы можем сократить админресурс,

5. Мы можем снизить стоимость применения

6. Мы можем запускать ADS / DNS / DHCP / Exchange / SQL / Sharepoint Server / Файловый сервер ... и т. Д

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