7

Каковы основные варианты использования виртуализации, то есть запуск одного или нескольких «виртуальных ПК» с использованием таких программ, как VMWare и Microsoft Virtual PC - для разработки программного обеспечения?Каковы основные варианты использования виртуализации в разработке программного обеспечения?

Также - существуют ли другие экземпляры/виды использования виртуализации, которые не охвачены моим определением выше (использование такого инструмента, как MS Virtual PC или VMWare), и которые полезны для разработчиков?

Этот импульс для запроса: StackOverflow comment от Metro Smurf, утверждая: «Вы будете удивляться, как вы когда-либо развивались без него!», Относительно использования виртуализации.

(Пожалуйста, включите только один случай использования за ответ. Спасибо!)

+2

Я использую VMWare для разработки, и я рад, что эти вопросы не закрываются, потому что они не связаны с программированием. – Bratch 2009-05-01 23:42:51

ответ

11

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

+0

Я использую VM для тестирования msi I Это замечательно, когда вы можете вернуться к предыдущему снимку и узнать все изменения, сделанные моим установщиком, были отменены. – Slapout 2009-01-03 03:02:26

0

Некоторые серверные приложения также могут использовать виртуальные машины. Когда один vm не используется много, сервер может найти ресурсы для других vms.

2

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

Локально у вас есть ваш блок разработчика и N клиентских ящиков, которые каждый раз, когда вы хотите попробовать построить, повторно инициализируются как новые ОС. По сути, это эквивалент тестовой среды «make clean», где даже рабочая станция клиента заменяется новой ОС.

4

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

+0

@AviewAnew - Это действительно полезно! Можете ли вы порекомендовать любые инструменты, которые можно использовать для настройки типа снимок, который вы описываете? – 2008-10-15 18:47:56

+0

Снимки - это здорово. Даже если бы у вас была куча физических машин под вашим столом для тестирования, вам все равно нужно было бы сделать резервную копию и восстановить их, чтобы вернуть их в свои исходные состояния для тестирования. Использование виртуальных машин происходит намного быстрее. – Bratch 2009-05-01 23:45:10

2

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

+0

@SaaS Developer - Это полезно. В этом случае распределенная среда представляет собой образ виртуальной машины (а затем вы фактически выполняете свою разработку внутри виртуальной машины); или есть ли другие средства для настройки распределенной среды по мере ее описания? – 2008-10-15 18:50:24

2

Многие ведущие используют виртуальную машину для презентаций - она ​​позволяет им немедленно вернуться, чтобы сбросить презентацию на следующий день, быстро передать все материалы презентации между компьютерами и не показывать своим посетителям вашу грязную папку «Мои документы».

2

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

1

Испытательные среды. Если у вас есть несколько настроек, для которых необходимо настроить систему (например, Windows & Linux, XP & Vista), тогда машина с большим количеством ОЗУ и VMWare (или других) - это хороший способ управления средами.

Другое разрабатывается на одной системе и нацелено на другую. Например, в какой-то момент я сделал некоторую работу J2EE на рабочей станции под управлением Linux, где клиент был I.E. 5.5. VM с Windows 2000 и IE 5.5 позволит мне протестировать приложение.

1

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

  • Изолировать различные среды разработки.
  • Испытательные среды.
  • Простое восстановление из-за сбоя или обновления аппаратного обеспечения.
  • Возможность «отката назад» в среду разработки, если что-то ее развращает.

В настоящее время я использую VirtualBox для настройки моей виртуальной машины. Я использовал VirtualPC, но я ДЕЙСТВИТЕЛЬНО ненавидел отсутствие какой-либо функции «моментального снимка» (например, VMware и VirtualBox).

5

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

1

Мы разрабатываем программное обеспечение для использования в нашем приложении SaaS, наша производственная среда имеет большое количество серверов, и их программная среда должна быть абсолютно предсказуемой; у нас не может быть ЧТО-НИБУДЬ установленного дополнительного или отсутствовать на наших машинах разработки.

Кроме того, для правильной работы нашего приложения требуется несколько разных типов серверов (по крайней мере, 7 в последний раз); в основном они не могут быть установлены на одной и той же (виртуальной) машине - по крайней мере, не нарушая требования «того же программного обеспечения, что и производство».

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

Снимки и откаты тоже хороши, но я использую их только изредка (очень полезно при тестировании установки/обновления).

Предположим, вы разрабатываете новую версию своего программного обеспечения и проверяете, что обновление от предыдущей версии работает правильно ... сколько времени требуется, чтобы сделать цикл тестирования, не имея возможности откатить коробку? Вам нужно переустановить ОС, а затем старую версию? Можете ли вы гарантировать, что удаление действительно удалит все?

1

Возможность тестирования/повторного тестирования процесса развертывания - огромная экономия.

1

Я удивлен, что никто не упомянул о функции записи/воспроизведения в VMware (awesome video demo), которая отлично подходит для отладки.

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

Когда у вас есть один действительно мускулистый сервер, на котором работают виртуальные машины, которые могут быть разделены между командами поддержки, тестирования и разработки, вы вносите огромную экономию средств. В целом, мы запускаем ~ 25 виртуальных машин на ESXi (двухъядерный ядро ​​Xeon 2.5G + 8Gb RAM), разделяемый между 5-10 людьми, некоторые из разработчиков используют Virtual PC, а затем я использую VMware Workstation на своем рабочем столе.Все пользователи Mac здесь используют VMware Fusion, а также

1
  • Разработка надстроек для различных версий Microsoft Office (с использованием инструментов Visual Studio для Office).

Моя основная работа машина имеет Office 2007. Когда я работаю с Add-Ins для Office 2003 я использую виртуальную машину с Visual Studio и Office 2003.

0

Некоторых родами тестовой среды: при отладке вредоносное ПО (либо пишут, либо разрабатывая таблетку против него), не разумно использовать настоящую ОС. Единственным возможным недостатком является то, что вирусы могут обнаружить, что они запускаются в виртуализации. :(Одна из возможностей сделать это потому, что двигатели VM могут эмулировать конечный набор аппаратных средств.

1

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