2010-09-08 17 views
5

Mam maszynę Windows 7, na której wykonuję zarówno PHP/MySql Dev, jak i kod .NET/C#/Sql Server. Ze względu na niedawną ponowną instalację, pomyślałem, że może to być idealny moment, aby spróbować trochę bardziej wyczyścić moją maszynę niż zainstalować Apache i IIS itp.VirtualBox Ubuntu LAMP Rozwój stosu, z SVN i CruiseControl/phpUnderControl?

Zainstalowałem VirtualBox, z systemem Ubuntu 10.04 jako systemem gościnnym , z planem przeniesienia mojego rozwoju PHP z mojej starej platformy Windows/Apache/MySql na ten wirtualny obraz. Oprócz tego chcę dodać CruiseControl/phpUnderControl do mojego procesu rozwoju PHP.

Do tej pory mam zainstalowany Ubuntu 10.04 ze stosu LAMP, plus Netbeans for PHP, MySQL Workbench, itd., Który jest faktycznie taki sam jak mój stary system Windows, ale teraz zainstalowałem także SVN i CruiseControl (Nie zainstalowałem jeszcze phpUnderControl, ale jest to kolejny krok).

Moje pytanie brzmi: czy mogę użyć tego obrazu wirtualnego zarówno jako mojego "lokalnego" środowiska programistycznego, jak i serwera kompilacji, aby nie wymagać zaśmiecania mojej macierzystej maszyny z systemem Windows za pomocą oprogramowania powiązanego z MySql/PHP (czyli może to utrzymać ładnie i czysto dla rozwoju .NET)?

Wyobrażam sobie, że potrzebowałbym wirtualnego serwera WWW, aby móc obsłużyć zarówno "lokalną" wersję dev dowolnego projektu, nad którym pracuję, jak i wersję tymczasową, która byłaby zbudowana z wykorzystaniem poleceń cruisecontrol/svn ?

Czy powinienem oddzielić moje dev i zbudować serwery, być może zachować lokalny rozwój w oknach i używać tylko wirtualnego obrazu dla serwera kompilacji? lub może masz dwie oddzielne maszyny wirtualne do różnych celów?

Byłbym wdzięczny za porady na temat najlepszego sposobu, aby to ustawić. Jeden z projektów, nad którymi chcę popracować, jest dość złożony, dlatego chcę się upewnić, że otrzymam go we właściwy sposób, zanim zacznę projekt, aby zapewnić, że projekt jest dobrze utrzymany z wersjonowaniem, testami jednostkowymi i ciągłą integracją. , powinienem kiedyś zaangażować innych programistów w projekt.

Odpowiedz

5

Jeśli chcesz zachować system Windows w czystości narzędzi MySQL/PHP, zdecydowanie polecam dwie metody VM. Jedna dystrybucja dla Linux-a z LAMPem itp. Dla szybkiego zwrotu kodu/debugowania i taka, która odzwierciedla twoją prawdziwą instalację serwera (z dodatkiem svn itd.) Dla twoich testowych buildów.

Daje to ogromne korzyści zarówno dla miłego środowiska programisty, jak i, co ważniejsze, z serwera testowego, który będzie odzwierciedlał działanie kodu na serwerze na żywo. W ten sposób możesz zachować swoją maszynę wirtualną w środowisku deweloperskim na bieżąco z najnowszymi aktualizacjami dla dystrybucji (jądro, narzędzia itp.) I trzymać maszynę wirtualną budowania niezależnie od wersji aplikacji na maszynie pod napięciem. Sprowadza to wiele zgadywania z "czy jest to nowa wersja biblioteki X czy mojego kodu?".

Jeśli chcesz nieco przesadzić, naprawdę potrzebujesz 3. Jeden dla dev, jeden dla SVN/ciągłej integracji i taki, który dokładnie odzwierciedla twój serwer, dzięki czemu możesz przetestować konfigurację wdrożenia/systemu.

+0

Rozważyłem podejście wielopunktowe, ale nie byłem pewien, czy to przesada, aby jednocześnie uruchamiały 3 instancje, ale przekonałeś mnie o jego zaletach. –

3

Jeśli rozważasz posiadanie swojej maszyny wirtualnej dla deweloperów, dlaczego nie ustawić go dokładnie tak, jak byś skonfigurował swoje środowisko produkcyjne/produkcyjne?

Ponadto można skonfigurować maszynę wirtualną do obsługi repozytorium kodu i serwera WWW, a następnie podłączyć narzędzia lokalne do komputera-hosta (Windows). W ten sposób możesz rozwijać się na swoim Windows boxie, podłączonym do VM.

Daje to możliwość wykonywania wszystkiego w środowisku lokalnym podczas symulacji środowiska serwera w maszynie wirtualnej.

VirtualBox działa również bardzo dobrze i powinieneś być w stanie sprawić, że twój host Windows połączy się przez sieć z serwerem tak, jakby był naprawdę innym węzłem w sieci.

+0

Tak, byłem pod wrażeniem, jak łatwo było uzyskać działającą maszynę wirtualną w sieci - skonfigurowałem stałe IP dla VM, którą skonfigurowałem do tej pory, więc mogłem uzyskać do niego dostęp z mojego rodzimego komputera maszyna, nie ma powodu, dla którego nie mógłbym ustawić wielu maszyn wirtualnych z takim samym podejściem. Myślę, że pójdę z 3 podejściem maszynowym, jednym do rozwijania, jednym jako serwerem budowania SVN/CI i jednym do odzwierciedlenia środowiska na żywo. –

+0

Jakie narzędzia VM poleciłbyś do projektowania? – BrightIntelDusk