3 Stimmen

Entwicklung auf Windows-Maschinen, Bereitstellung auf Linux (Ubuntu)

Ich entwickle seit einiger Zeit eine Webanwendung (geschrieben in Python/Django). Alle meine Entwicklungsarbeiten werden auf einem Windows-Computer durchgeführt, aber letztendlich wird auf einem Ubuntu 10.10 Server (VPS) bereitgestellt.

Ich habe angefangen, viele Schwierigkeiten damit zu haben, dass meine Entwicklungs- und Produktionsumgebung unterschiedlich sind. Ich versuche ständig neue Bibliotheken, die auf Linux unterstützt werden, aber eine schlechte Unterstützung unter Windows haben, etc. Ich habe zwar einen Staging-Server, aber offensichtlich kann ich nicht die meiste Zeit meiner Entwicklung durch Bereitstellung auf einem Staging-Server erledigen.

Meine Frage: Ich möchte weiterhin mit Windows als meiner Entwicklungsumgebung arbeiten, aber all diese Probleme nicht haben. Wie gehe ich am besten vor? Ich habe angefangen zu überlegen, einen lokalen Linux-Server auf einer virtuellen Maschine laufen zu lassen, um die Geschwindigkeit eines lokalen Servers zu haben, aber das Windows-Hindernis zu beseitigen. Ist das der beste Weg, das anzugehen?

4voto

David Heffernan Punkte 585606

Die Verwendung von virtuellen Maschinen ist der normale Weg, um dieses Problem zu lösen. Sie arbeiten fantastisch gut auf moderner Hardware. Eine VM bietet Ihnen bei weitem die bequemste Option.

4voto

hornetbzz Punkte 8772

Ich glaube, es gibt so viele Lösungen wie freiberufliche Entwickler.

Vielleicht nicht die beste, aber hier ist, was ich mache und es funktioniert gut:

  • Windows7 hostet 2 virtuelle Maschinen (Virtualbox)
  • Eclipse Helios auf der Windows-Maschine
  • 1 VM Ubuntu, die für verschiedene Skripttests von einem Kunden verwendet wird
  • 1 VM Debian als Entwicklungsserver, aufgebaut als perfektes Abbild des Produktionsservers
  • 1 Produktionsserver, in meinem Fall also Debian, auf dem ich das "fertige" Produkt oder validierte Versionen übertrage.
  • 1 Entwicklungsserver, nur für SVN und/oder TRAC oder ähnliches. Dies könnte mit Ihrem Entwicklungsserver-VM zusammengeführt werden.
  • Für Perl-Entwicklungen habe ich Perl-Module - unter Cygwin - auf dem Windows-Host installiert, wobei Eclipse entsprechend auf diese Einrichtung eingestellt ist. Aber um ehrlich zu sein, solche gemischten Lösungen sollten vermieden werden.

Was ermöglicht das?

  • Die Verwendung von VMs ermöglicht es Ihnen, eine Art dauerhafte Sicherung Ihres Entwicklungsservers zu haben,
  • Die Verwendung von VMs ermöglicht es Ihnen, einfach zu einer früheren Serverversion zurückzukehren - zum Beispiel im Falle eines Absturzes,
  • SSH von einer Maschine zur anderen, sogar von einer VM zur anderen,
  • Das Teilen von Verzeichnissen zwischen Windows und Ihren VMs,
  • Die Verwendung von Eclipse als Entwicklungscenter für all das auf der Windows-Maschine (Subclipse/SVN-Client, Java, Python, PHP, Perl, Bash, JS, ...)

Sie verlieren etwas von der Geschwindigkeit eines lokalen Servers aufgrund der für die VM erforderlichen Ressourcen - die auf derselben Maschine wie Ihre Windows-Sachen gehostet werden, aber das "Wie viel" hängt von Ihrer Hardware ab. In jedem Fall sollte dies kein Engpass für eine solche Struktur werden.

Es ist am Anfang ein bisschen aufwändig einzurichten, aber einmal eingerichtet sehr praktisch.

Hoffentlich gibt es Ihnen zumindest Ideen.

PS: Die Einrichtung einer VM ist ziemlich einfach, selbst ein Anfänger wie ich hat es geschafft :-)

2voto

Corvin Punkte 970

Ich hatte vor nicht allzu langer Zeit ein ähnliches Problem. Ich habe eine Linux-Mobile-App entwickelt und wollte nicht auf die Bequemlichkeit des Visual Studio-Editors verzichten. Ich habe VirtualBox mit Ubuntu und einem freigegebenen Ordner zwischen Gast- und Host-Betriebssystem eingerichtet. So konnte ich den Code in VS bearbeiten und unter Ubuntu kompilieren/ausführen, ohne viel Aufwand. Das hat für mich eine lange Zeit gut funktioniert. Ich schlage vor, das auszuprobieren.

0voto

Yule Punkte 9420

Verwenden Sie entweder eine virtuelle Maschine. Oder Sie können Cygwin verwenden. Das ist eine Art von Pseudo-VM.

0voto

Alon Swartz Punkte 121

Ich würde eine vorkonfigurierte TurnKey Django Virtual Machine für Ihre Entwicklung empfehlen. Ein großer Bonus dabei ist, dass Sie TurnKey Backup and Migration (TKLBAM) nutzen können, um Ihre App (und alle Serveranpassungen) in die Cloud zu migrieren, wenn Sie bereit sind...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X