Разработка VirtualBox Ubuntu LAMP Stack с SVN и CruiseControl / phpUnderControl?

У меня есть машина с Windows 7, на которой я выполняю кодирование как PHP / MySql Dev, так и .NET / C # / Sql Server. Из-за недавней переустановки я подумал, что это может быть идеальное время, чтобы попытаться немного очистить мою машину, а не устанавливать Apache и IIS и т. Д.

Я установил VirtualBox с Ubuntu 10.04 в качестве гостевой ОС, планируя перенести разработку PHP со старой платформы Windows / Apache / MySql на этот виртуальный образ. В дополнение к этому я хочу добавить CruiseControl / phpUnderControl в свой процесс разработки PHP.

Пока что у меня установлен Ubuntu 10.04 со стеком LAMP, а также Netbeans для PHP, MySQL Workbench и т. Д., Что фактически совпадает с настройкой моего старого разработчика Windows, но теперь я также установил SVN и CruiseControl (я ' phpUnderControl еще не установлен, но это следующий шаг).

Мой вопрос в том, могу ли я использовать этот виртуальный образ как мою «локальную» среду разработки и как сервер сборки, чтобы мне не нужно было загромождать мою родную Windows-машину программным обеспечением, связанным с MySql / PHP (что означает, что я могу сохранить его в хорошем состоянии). и чистый для .NET разработки)?

Я предполагаю, что мне понадобится виртуальный веб-сервер, чтобы иметь возможность обслуживать как «локальную» версию любого проекта, над которым я работаю, так и промежуточную версию, которая будет построена с использованием коммитов cruisecontrol / svn?

Или мне следует разделить свои серверы разработки и сборки, возможно, сохранить локальную разработку в Windows и использовать только виртуальный образ для сервера сборки? или, возможно, иметь две отдельные виртуальные машины для разных целей?

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


person Andrew Johns    schedule 08.09.2010    source источник


Ответы (2)


Если вы хотите, чтобы в вашем Windows-окне не было инструментов MySQL / PHP, я настоятельно рекомендую подход с двумя виртуальными машинами. Один дистрибутив Linux для настольных ПК с LAMP и т. Д. На нем для быстрого выполнения кода / отладки и один, который отражает вашу реальную установку сервера (с добавлением svn и т. Д.) Для ваших тестовых сборок.

Это дает вам огромные преимущества как для хорошей среды разработки, так и, что более важно, для тестового сервера, который будет отражать работу вашего кода на живом сервере. Таким образом, вы можете поддерживать свою виртуальную машину среды разработки в актуальном состоянии с последними обновлениями для дистрибутива (ядро, инструменты и т. Д.) И сохранять виртуальную машину сборки в любых версиях приложения, имеющихся на действующей машине. Это избавляет от множества догадок, «это новая версия библиотеки X или мой код?».

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

person Mike    schedule 09.09.2010
comment
Я рассматривал подход с несколькими блоками, но не был уверен, что одновременное выполнение трех экземпляров было излишним, но вы убедили меня в его преимуществах. - person Andrew Johns; 09.09.2010

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

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

Это дает вам возможность делать все в вашей локальной среде, моделируя серверную среду в вашей виртуальной машине.

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

person Utahcon    schedule 08.09.2010
comment
Да, меня впечатлило, насколько легко было получить работающую виртуальную машину в сети - я установил фиксированный IP-адрес для виртуальной машины, которую я настроил до сих пор, чтобы я мог получить к ней доступ с моей родной машины, есть нет причин, по которым я не мог настроить несколько виртуальных машин с одним и тем же подходом. Я думаю, что я выберу 3-х машинный подход, один для разработки, один в качестве сервера сборки SVN / CI и один для зеркалирования живой среды. - person Andrew Johns; 09.09.2010
comment
Какие инструменты ВМ вы бы порекомендовали использовать для разработки? - person BrightIntelDusk; 19.03.2014