Лучшее использование виртуализации для разработки веб-приложений - PullRequest
2 голосов
/ 19 февраля 2010

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

Я обычно использую следующее во время разработки:

  • Maven
  • Затмение
  • MySQL
  • Firefox / Firebug
  • Chrome

Имеет ли смысл настраивать базовую систему без установленного программного обеспечения? А затем настроить виртуальные машины для выполнения разработки? Или я должен просто установить maven / eclipse / etc. в основную систему хоста? Или я должен использовать виртуальную машину для каждого проекта? Или виртуальная машина для каждого инструмента, который я использую? Как мне лучше всего использовать моментальные снимки и т. Д.?

Например, если я тестирую / отлаживаю приложение в Chrome, я могу перезапустить браузер много раз. Поэтому было бы неплохо запустить его на отдельной виртуальной машине, чтобы можно было запустить еще один экземпляр Chrome с открытыми вкладками для моего трекера, javadocs, исследования Google и т. Д., Без необходимости перезапуска.

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

1 Ответ

2 голосов
/ 19 февраля 2010

Для чего вы хотите использовать виртуализацию?Это технология, для чего она вам нужна?

Если вы хотите знать и понимать эту технологию, просто создайте виртуальную отдельную машину, установите BSD / Linux / OpenSolaris / и т.д.и детская площадка твоя.Экспериментируйте с сетью, снимками и т. Д.

Разделение среды разработки - только для пинка - между виртуальными машинами для меня не имеет никакого смысла.Снимки довольно тяжелые и не заменяют Subversion и обычные резервные копии.

Сценарии, на которые стоит обратить внимание при виртуализации:

  • У вас есть одна, но мощная машина в организации, и вы хотели быдать каждой команде полную среду разработки / разработки, чтобы они имели полный контроль над своей собственной средой, но также не создавали помех друг другу.
  • Ваше приложение имеет много уровней (оно включает веб-сервер, базу данных, сервер VoIP,сервер аутентификации ...), поэтому вы развертываете их на виртуальной машине.У вас есть образ разработчика, тестовый и производственный образ, и вы можете легко развернуть новую версию, изменив настройки сетевого взаимодействия на хост-компьютере.
  • Из-за требований безопасности / интегрируемости вы должны развернуть свои уровни в отдельных пространствах состояний,вы выбираете для этого виртуализацию.
  • Разным командам, проектам или приложениям требуется собственный IP-адрес или один и тот же порт, и предоставление физической машины для каждого из них будет пустой тратой ресурсов.

Используйте виртуализацию только в том случае, если вам нужно разделить содержимое на разные физические машины.Это просто дает вам возможность сделать это виртуально.

...