2010-09-08 11 views
5

Ich habe einen Windows 7-Rechner, auf dem ich sowohl PHP/MySql Dev, als auch .NET/C#/Sql Server-Kodierung verwende. Aufgrund einer kürzlichen Neuinstallation dachte ich, es könnte ein idealer Zeitpunkt sein, um meine Maschine ein wenig sauberer zu halten, anstatt Apache, IIS usw. zu installieren.VirtualBox Ubuntu LAMP Stack-Entwicklung, mit SVN und CruiseControl/phpUnderControl?

Ich habe VirtualBox mit Ubuntu 10.04 als Gastbetriebssystem installiert mit dem Plan, meine PHP-Entwicklung von meiner alten Windows/Apache/MySql-Plattform auf dieses virtuelle Image zu übertragen. Außerdem möchte ich CruiseControl/phpUnderControl zu meinem PHP-Entwicklungsprozess hinzufügen.

Bis jetzt habe ich Ubuntu 10.04 mit einem LAMP Stack installiert, plus Netbeans für PHP, MySQL Workbench, etc, das ist eigentlich das selbe wie mein altes Windows dev Setup, aber ich habe jetzt auch SVN und installiert CruiseControl (Ich habe phpUnderControl noch nicht installiert, aber das ist der nächste Schritt).

Meine Frage ist, kann ich dieses virtuelle Image sowohl als meine "lokale" Entwicklungsumgebung als auch als Build - Server verwenden, so dass ich meine native Windows - Maschine nicht mit MySql/PHP verwandter Software durcheinander bringen muss kann es schön und sauber für .NET-Entwicklung halten)?

Ich denke, ich würde den virtuellen Webserver benötigen, um sowohl eine "lokale" Version eines beliebigen Projekts, an dem ich arbeite, als auch eine Staging-Version zu liefern, die mit cruisecontrol/svn commits erstellt wird ?

Oder sollte ich meine dev und Build-Server trennen, vielleicht die lokale Entwicklung in Windows behalten, und nur das virtuelle Image für den Build-Server verwenden? oder haben Sie vielleicht zwei separate virtuelle Maschinen für verschiedene Zwecke?

Ich würde gerne einige Ratschläge über die beste Möglichkeit, dies einzurichten. Eines der Projekte, an denen ich arbeiten möchte, ist ziemlich komplex. Deshalb möchte ich sicherstellen, dass ich es richtig verstehe, bevor ich mit dem Projekt beginne, damit ich das Projekt mit Versionierung, Komponententests und fortlaufender Integration gut aufrechterhalten kann Sollte ich jemals andere Entwickler an dem Projekt beteiligen müssen?

Antwort

5

Wenn Sie versuchen, Ihre Windows-Box von MySQL/PHP-Tools sauber zu halten, dann empfehle ich Ihnen den Ansatz mit zwei VMs. Eine Desktop-Linux-Distribution für die Entwicklung mit LAMP usw. für die schnelle Code/Debug-Turnaround und eine, die Ihre reale Server-Installation (mit dem Zusatz von Svn usw.) für Ihre Test-Builds widerspiegelt.

Dies bietet Ihnen große Vorteile für eine gute Entwicklungsumgebung und, was noch wichtiger ist, einen Testserver, der den Betrieb Ihres Codes auf dem Live-Server widerspiegelt. Auf diese Weise können Sie die VM Ihrer Entwicklungsumgebung mit den neuesten Updates für die Distribution (Kernel, Tools, usw.) auf dem neuesten Stand halten und die Build-VM bei allen Anwendungsversionen auf dem Live-Rechner halten. Dies erfordert eine Menge Rätselraten "ist es die neue Version von Bibliothek X oder mein Code?".

Wenn Sie etwas übertrieben werden möchten, würden Sie eigentlich 3. Eine für Entwickler, eine für SVN/kontinuierliche Integration und eine, die genau Ihren Server spiegelt, so dass Sie die Bereitstellung/Systemkonfiguration testen können.

+0

Ich habe den Multiple-Box-Ansatz berücksichtigt, war mir aber nicht sicher, ob es übertrieben war, 3 Instanzen gleichzeitig laufen zu lassen, aber Sie haben mich von seinen Vorteilen überzeugt. –

3

Wenn Sie erwägen, Ihre VM für Entwickler zu haben, warum nicht genau so einrichten, wie Sie Ihre Staging/Produktionsumgebung einrichten würden?

Darüber hinaus können Sie Ihre VM als Host für das Code-Repository und den Webserver einrichten und dann Ihre lokalen Tools mit Ihrem Hostcomputer (Windows) verbinden. Auf diese Weise können Sie auf Ihrer Windows-Box, die mit der VM verbunden ist, entwickeln.

Dies gibt Ihnen die Möglichkeit, alles in Ihrer lokalen Umgebung zu tun, während Sie die Serverumgebung in Ihrer VM simulieren.

VirtualBox funktioniert auch sehr gut, und Sie sollten in der Lage sein, Ihren Windows-Host über das Netzwerk mit dem Server verbinden zu lassen, als ob es wirklich ein anderer Knoten im Netzwerk wäre.

+0

Ja, ich war beeindruckt, wie einfach es ist, eine funktionierende virtuelle Maschine im Netzwerk zu bekommen - ich habe eine feste IP für die VM eingerichtet, die ich bisher eingerichtet habe, damit ich von meiner Muttersprache aus darauf zugreifen kann Maschine, es gibt keinen Grund, warum ich nicht mehrere VMs mit dem gleichen Ansatz einrichten konnte. Ich denke, ich werde mit dem 3-Maschinen-Ansatz gehen, einen für die Entwicklung, einen als SVN/CI-Build-Server und einen für die Live-Umgebung. –

+0

Welche VM-Tools würden Sie für die Entwicklung empfehlen? – BrightIntelDusk