Какими практическими способами виртуализация может улучшить вашу среду разработки? - PullRequest
1 голос
/ 16 ноября 2009

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

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

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

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


Сводка ответов:

  • Среда разработки

    • Позволяет инкапсулировать определенный стек технологий, особенно полезный для систем сборки
  • Тестирование

    • Простое переключение контекстов, специфичных для ОС
    • Простое моделирование сетевых рабочих станций в n-уровневом контексте приложения.

Ответы [ 5 ]

1 голос
/ 16 ноября 2009

Мы внедряем наше приложение в виртуальные экземпляры на нашем хосте (Amazon EC2). Удивительно, как легко управлять нашей тестовой, контрольной и производственной средами.

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

Нужна больше возможностей? Запустите новые виртуальные серверы и разверните программное обеспечение.

Пиковое использование закончилось? Просто избавьтесь от ненужных виртуальных серверов.

0 голосов
/ 17 ноября 2009

Виртуализация используется в основном для различных серверных целей, где я работаю:

  1. Веб-серверы - если мы создаем новую непроизводственную среду, серверы для нее, как правило, являются виртуальными, поэтому существует виртуальный сервер разработки, виртуальный тестовый сервер и т. Д.

  2. Приложения контроля версий и контроля качества - Quality Center и SVN работают на виртуальных серверах. SVN box также запускает CC.Net для нашего CI здесь.

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

0 голосов
/ 16 ноября 2009

Мы помещаем среды разработки для более старых версий программного обеспечения в виртуальные машины. Это особенно полезно для разработки Delphi, поскольку мы используем не только разные модули, но и разные версии компонентов. Использование виртуальных машин делает управление этим намного проще, и мы можем быть уверены, что любые обновленные exe или dll, которые мы выпускаем для более старых версий нашей системы, созданы на основе правильных вещей. Мы не тратим время на изменение настроек компилятора, чтобы указать на правильные общие ресурсы, или на удаление и переустановку компонентов. Это хорошо для производительности.

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

0 голосов
/ 16 ноября 2009

Нам нужно было протестировать настройку сетевого сетевого приложения для совместной работы, в котором данные, полученные на некоторых узлах, распределялись между взаимодействующими узлами в сети в конфигурации с ~ 30 машинами, что было материально (и в других случаях) запрещено для развертывания и настроить. Тестовые прогоны могут быть длительными, в некоторых случаях до 48 часов. Также было утомительно развертывать изменения, основанные на результатах наших тестов, потому что нам приходилось обходить каждую рабочую станцию ​​и вносить соответствующие изменения, что было ручным и подверженным ошибкам процессом с участием нескольких утомленных разработчиков.

Один из подходов, который мы использовали с некоторым успехом, заключался в развертывании урезанных виртуальных машин, содержащих программное обеспечение, для тестирования на ПК разных людей, и запуска программного обеспечения в режиме имитации производства / обмена данными на этих ПК в качестве фоновой задачи в виртуальная машина. Они могли бы продолжать работать над своими повседневными задачами (которые в основном состояли из создания документации, написания электронной почты и / или веб-серфинга, насколько я могу судить), в то время как мы могли бы более продуктивно использовать запасные циклы ЦП без «вредит» их конфигурации ПК. Развертывание (и повторное развертывание) программного обеспечения было упрощено, поскольку мы могли просто обновить один образ и повторно использовать его на всех ПК. Это было не полное тестирование, но оно значительно облегчило этот конкретный аспект.

0 голосов
/ 16 ноября 2009

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

...