Лучший продукт виртуальной машины для сборки сервера и тестовой среды

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

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

Я изучал проигрыватель VMWare и VirtualBox, но мне было трудно выбрать между ними, мне было интересно, есть ли у кого-нибудь еще опыт настройки аналогичной среды сборки/тестирования.

Большое спасибо за любой совет

Нил

РЕДАКТИРОВАТЬ: я вижу этот вопрос https://stackoverflow.com/questions/66317/what-is-the-best-vm-program-for-a-programmer, который полезен, однако не совсем отвечает тому, что я ищу в опыте использования продуктов.


person Neil    schedule 15.03.2012    source источник


Ответы (2)


Я очень рекомендую бродячий проект

http://vagrantup.com/

Невероятно полезен для управления средами virtualbox, поскольку позволяет контролировать, что установлено в среде, с помощью инструментов управления конфигурацией, таких как chef и puppet< /а>.

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

person Mark O'Connor    schedule 15.03.2012
comment
Итак, после того, как код и установщики были созданы на первой виртуальной машине, я мог бы использовать vagrant для запуска другой виртуальной машины, а затем удаленно установить msi, скажем, а затем запустить интеграционные/приемочные тесты с первой виртуальной машины? - person Neil; 16.03.2012
comment
да. Vagrant — это фреймворк для управления средами разработки и тестирования. - person Mark O'Connor; 17.03.2012

Это субъективный вопрос, и он больше похож на ServerFault, но я все равно отвечу на него. Мне нравятся Hyper-V или ESX, но я уверен, что и с другими тоже все в порядке. Не уверен, что есть один «лучший», и я бы поставил под сомнение любого, кто утверждает, что это так.

Вам нужен собственный гипервизор (Hyper-V, ESX, XenServer, а не Virtual PC/Server, KVM, VirtualBox или GSX), поддерживает моментальные снимки и имеет уровень автоматизации, соответствующий тому, насколько сильно вы хотите им управлять. Если вы хотите интегрироваться с автоматизацией тестовой лаборатории Microsoft Team Foundation Server, вам также придется использовать SCVMM (System Center Virtual Machine Manager), что означает использование Hyper-V.

На моей последней работе у нас было более 50 серверов сборки на базе ESX с базовым снимком. У нас была автоматизация сборки, которая вызывала VSphere API для сброса виртуальной машины до базового моментального снимка и включения питания. Это гарантировало, что каждая сборка запускалась с машины в одном и том же чистом состоянии. Мы запускали более 100 000 сборок в год на этой инфраструктуре.

Я также делал подобные вещи, используя HyperV. Hyper-V имеет API управления на основе WMI, который использует RPC и немного уродливее для работы с VSphere, но он работает. VSphere API основан на веб-службе и имеет клиентскую объектную модель для .NET, которую намного проще использовать.

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

person Christopher Painter    schedule 15.03.2012
comment
Спасибо за подробный ответ, раньше я даже не сталкивался с Hyper-V, но это выглядит очень многообещающе для того, что я ищу. Я думал об использовании teamcity в качестве ci-сервера, потому что я использую его на работе, но я думаю, что не помешает попробовать Team Foundation. - person Neil; 15.03.2012
comment
Все это я использую дома для своих консультаций. Описание моей среды можно найти по адресу iswix.com/dnn. Мониторный ноутбук — это все, что мне нужно для размещения всей среды разработки. - person Christopher Painter; 15.03.2012