Optimale Entwicklungsumgebung mit Synchronisierung zum Produktivserver
Hallo ich bin neu hier und versuche mich an die Nettikette zu halten. Falls ich doch in irgendeiner Form einen Fauxpas begehen sollte, entschuldige ich mich im Voraus dafür!
Ich benötige einen Entwicklungsserver, der folgende Punkte erfüllen sollte:
1. Entwicklungsumgebung für Projekte unter LAMP in ISO-8859-1
2. Entwicklungsumgebung für Projekte unter LAMP in UTF-8
3. unterschiedliche Linuxinstallationen sollten möglich sein (wichtig ist aber Ubuntu 10.4 LTS!)
4. Software/Script zur Synchronisierung von einzelnen Projekten zwischen Entwicklungsserver und Produktivserver (falls möglich MYSQL-Datenbank und docroot)
5. Falls möglich auch bootbare unterschiedliche Windows-Systeme für Browsercheck (ich weiss Server und Desktop ist nicht dasselbe, aber vielleicht geht das ja trotzdem auf einem Rechner?)
Kommt dafür eine Virtualisierung mit VMWare esxi in Frage?
Ich weiss, dass klingt ein wenig nach "eierlegender Wollmilchsau", aber die Anforderungen in der Webentwicklung sind nun mal breitgefächert, wie Ihr ja wisst.
Ich würde mich sehr über ein paar konstruktive Vorschläge und Tipps freuen!
Vielleicht habt Ihr auch eine Kaufempfehlung für den Server (Budget bis 1500EUR Brutto, TOWER!)
Vielen Dank im Voraus
Kai
Ich benötige einen Entwicklungsserver, der folgende Punkte erfüllen sollte:
1. Entwicklungsumgebung für Projekte unter LAMP in ISO-8859-1
2. Entwicklungsumgebung für Projekte unter LAMP in UTF-8
3. unterschiedliche Linuxinstallationen sollten möglich sein (wichtig ist aber Ubuntu 10.4 LTS!)
4. Software/Script zur Synchronisierung von einzelnen Projekten zwischen Entwicklungsserver und Produktivserver (falls möglich MYSQL-Datenbank und docroot)
5. Falls möglich auch bootbare unterschiedliche Windows-Systeme für Browsercheck (ich weiss Server und Desktop ist nicht dasselbe, aber vielleicht geht das ja trotzdem auf einem Rechner?)
Kommt dafür eine Virtualisierung mit VMWare esxi in Frage?
Ich weiss, dass klingt ein wenig nach "eierlegender Wollmilchsau", aber die Anforderungen in der Webentwicklung sind nun mal breitgefächert, wie Ihr ja wisst.
Ich würde mich sehr über ein paar konstruktive Vorschläge und Tipps freuen!
Vielleicht habt Ihr auch eine Kaufempfehlung für den Server (Budget bis 1500EUR Brutto, TOWER!)
Vielen Dank im Voraus
Kai
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 155097
Url: https://administrator.de/contentid/155097
Ausgedruckt am: 05.11.2024 um 15:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo Kai,
so ein paar Dinge sind unklar...
Wie viele Entwickler arbeiten denn an Deinem Server? Was für Projekte bringst Du da ans Laufen? Datenmenge etc. Solltest Du für Dich alleine eine Entwicklungsumgebung aufbauen wollen, würde ich Server und Entwicklungsumgebung trennen. Je nach dem, was Du machst, reicht als "Webserver" dann ein älterer Rechner, für die Entwicklungsumgebung(en) kaufst Du Dir eine Workstation mit ausreichend Hauptspeicher der auch eine paar virtuelle Clients beherbergen kann.
Sam
so ein paar Dinge sind unklar...
Ich benötige einen Entwicklungsserver, der folgende Punkte erfüllen sollte:
soweit meinte ich das verstanden zu haben1. Entwicklungsumgebung für Projekte unter LAMP in ISO-8859-1
2. Entwicklungsumgebung für Projekte unter LAMP in UTF-8
Was willst Du da Serverseitig einstellen? Das gehört doch immer noch zur Datenbank (oder drüber) und kann locker auf einer Maschine / Installation laufen.2. Entwicklungsumgebung für Projekte unter LAMP in UTF-8
3. unterschiedliche Linuxinstallationen sollten möglich sein (wichtig ist aber Ubuntu 10.4 LTS!)
Warum möchtest Du ein Lamp System aufsetzen? Klar ist das vorkonfigurierte Paket werst mal einfacher zu installieren, aber ich würde auf einem Ubuntu System die einzelnen Komponenten aufsetzen. Und dann warum mehrere Linux-Server? Was erwartest Du daraus für Erkenntnisse?5. Falls möglich auch bootbare unterschiedliche Windows-Systeme für Browsercheck (ich weiss Server und Desktop ist nicht
dasselbe, aber vielleicht geht das ja trotzdem auf einem Rechner?)
Hier hat das dann nichts mehr mit Server zu tun.dasselbe, aber vielleicht geht das ja trotzdem auf einem Rechner?)
Kommt dafür eine Virtualisierung mit VMWare esxi in Frage?
In Frage kommt es immer, aber da musst Du dann schon, um Probleme zu vermeiden, zur zertifizierten Hardware greifen. Andere Virtualisierungslösungen sind für den "Hausgebrauch" nicht so anspruchsvoll.Wie viele Entwickler arbeiten denn an Deinem Server? Was für Projekte bringst Du da ans Laufen? Datenmenge etc. Solltest Du für Dich alleine eine Entwicklungsumgebung aufbauen wollen, würde ich Server und Entwicklungsumgebung trennen. Je nach dem, was Du machst, reicht als "Webserver" dann ein älterer Rechner, für die Entwicklungsumgebung(en) kaufst Du Dir eine Workstation mit ausreichend Hauptspeicher der auch eine paar virtuelle Clients beherbergen kann.
Sam
Hallo Kai,
ich weiss nun auch nicht, ob ich eine Idee für eine Zwischenlösung habe. Wenn Du die Situation beim Kunden simulieren willst, wäre es doch am Einfachsten eine virtuelle Maschine mit seiner Systemumgebung zu erstellen. Wenn Du schon auf die unterschiedlichen MYSQL, PHP etc Versionen so einen großen Wert legst, bleibt Dir meines Erachtens aber auch nichts anderes übrig. Du hättest sonst im Ubuntu eine Aktualisierungsproblem. Du musst das dann nämlich alles von Hand machen, da Canonical die Versionen pflegt (was Du dann nicht mehr möchtest).
Es bleiben für mich nur 2 gangbare Wege
1.) ein Server (ob virtuell oder nicht ist egal). Die Zeichensätze vom Apache kannst Du einfach anpassen, dann den Server neu starten. Für MySql kannst Du das für jede Tabelle festlegen.
2.) Für jedes Testsystem eine virtuelle Maschine, bei der Du explizit Deine Versionen setzen kannst.
Beides kannst Du auf jeder besseren Workstation (oder Laptop) mit VMWare, Xen, Virtualbox etc. realisieren. Das kommt dann wieder darauf an, wie mobil das sein soll.
Hoffentlich hilft es...
Sam
ich weiss nun auch nicht, ob ich eine Idee für eine Zwischenlösung habe. Wenn Du die Situation beim Kunden simulieren willst, wäre es doch am Einfachsten eine virtuelle Maschine mit seiner Systemumgebung zu erstellen. Wenn Du schon auf die unterschiedlichen MYSQL, PHP etc Versionen so einen großen Wert legst, bleibt Dir meines Erachtens aber auch nichts anderes übrig. Du hättest sonst im Ubuntu eine Aktualisierungsproblem. Du musst das dann nämlich alles von Hand machen, da Canonical die Versionen pflegt (was Du dann nicht mehr möchtest).
Es bleiben für mich nur 2 gangbare Wege
1.) ein Server (ob virtuell oder nicht ist egal). Die Zeichensätze vom Apache kannst Du einfach anpassen, dann den Server neu starten. Für MySql kannst Du das für jede Tabelle festlegen.
2.) Für jedes Testsystem eine virtuelle Maschine, bei der Du explizit Deine Versionen setzen kannst.
Beides kannst Du auf jeder besseren Workstation (oder Laptop) mit VMWare, Xen, Virtualbox etc. realisieren. Das kommt dann wieder darauf an, wie mobil das sein soll.
4. Software/Script zur Synchronisierung von einzelnen Projekten zwischen Entwicklungsserver und Produktivserver (falls möglich MYSQL-Datenbank und docroot)
Und auch da kommt es wie immer darauf an, was genau Du machen möchtest Hoffentlich hilft es...
Sam
Hallo,
wir entwickeln Software und haben in etwas die gleichen Anforderungen wir Du. Tendenziell etwas höhere sogar.
Ich kann den Einsatz eine Virtualisierung in der Softwareentwicklung nur empfehlen. Bei uns läuft z. B. eine vSphere von VMWare. Hierzu brauchst du zertifizierte Serverhardware, die m. E. nicht für unter 1.500 EUR zu haben ist. Tower habe ich für ESX noch nicht gesehen, da musst Du mal in die Kompatibilitätsliste von VMWare schauen.
Mit VMWare-Lizenz und einigermaßen Hauptspeicher/Festplatten ist man schnell bei 4.500 EUR (mit der freien ESX Lizenz natürlich günstiger).. Das lohnt sich aber. Du kannst beliebige Client der Server-Betriebssysteme als Template anlegen und dann zum testen "innerhalb weniger Minuten "deployen". Zum Beispiel könnten Deine Linuxe aus solchen Template erzeugt werden, die entweder noch keine weiter Software wie Apache oder einen bestimmten Browser enthalten, oder die bereits entsprechend "vorkonfiguriert" sind. Dito für weitere Testserver, die der Kundenumgebung entsprechen.
Ein weiterer Vorteil der Virtualisierung im Rahmen der Softwareentwicklung ist, dass Du mit sog. Snapshots den Zustand einer Maschine "konservieren" kannst und später dorthin zurückkehren kannst. Beispiel: Du startest mit einem Linux Template, installierst Deine Pakete und machst zwischendurch immer einen Snapshot. Wenn etwas schief läuft, kannst Du einfach zurückspringen in den Zustand davor.
Nicht zu vergessen wären: auch die Netzwerkumgebung (Switche, usw.) werden virtualisiert. So kannst Du z. B. die Subnetze deines Kunden nachstellen und simulieren. Auch Eure Produktivserver (z. B. SVN, Hudson, Bugzilla) usw. können parallel in der VMWare laufen.
Ein Skript zur Sync von Daten von einer Maschine zur anderen kannst Du dir mit diversen Tools selber schreiben. Das hat dann nichts mehr mit Virtualisierung zu tun.
Theorethisch geht das ganze auch auf einer normalen WIndows-Maschine und Produkten wie VMWare Server oder Workstation. Mit Blick auf Deine Anforderungen dürfte das aber auf Dauer eine wesentliche Nummer zu kleine sein. Für einen kleinen Browsercheck aber ausreichend.
Gruß
wir entwickeln Software und haben in etwas die gleichen Anforderungen wir Du. Tendenziell etwas höhere sogar.
Ich kann den Einsatz eine Virtualisierung in der Softwareentwicklung nur empfehlen. Bei uns läuft z. B. eine vSphere von VMWare. Hierzu brauchst du zertifizierte Serverhardware, die m. E. nicht für unter 1.500 EUR zu haben ist. Tower habe ich für ESX noch nicht gesehen, da musst Du mal in die Kompatibilitätsliste von VMWare schauen.
Mit VMWare-Lizenz und einigermaßen Hauptspeicher/Festplatten ist man schnell bei 4.500 EUR (mit der freien ESX Lizenz natürlich günstiger).. Das lohnt sich aber. Du kannst beliebige Client der Server-Betriebssysteme als Template anlegen und dann zum testen "innerhalb weniger Minuten "deployen". Zum Beispiel könnten Deine Linuxe aus solchen Template erzeugt werden, die entweder noch keine weiter Software wie Apache oder einen bestimmten Browser enthalten, oder die bereits entsprechend "vorkonfiguriert" sind. Dito für weitere Testserver, die der Kundenumgebung entsprechen.
Ein weiterer Vorteil der Virtualisierung im Rahmen der Softwareentwicklung ist, dass Du mit sog. Snapshots den Zustand einer Maschine "konservieren" kannst und später dorthin zurückkehren kannst. Beispiel: Du startest mit einem Linux Template, installierst Deine Pakete und machst zwischendurch immer einen Snapshot. Wenn etwas schief läuft, kannst Du einfach zurückspringen in den Zustand davor.
Nicht zu vergessen wären: auch die Netzwerkumgebung (Switche, usw.) werden virtualisiert. So kannst Du z. B. die Subnetze deines Kunden nachstellen und simulieren. Auch Eure Produktivserver (z. B. SVN, Hudson, Bugzilla) usw. können parallel in der VMWare laufen.
Ein Skript zur Sync von Daten von einer Maschine zur anderen kannst Du dir mit diversen Tools selber schreiben. Das hat dann nichts mehr mit Virtualisierung zu tun.
Theorethisch geht das ganze auch auf einer normalen WIndows-Maschine und Produkten wie VMWare Server oder Workstation. Mit Blick auf Deine Anforderungen dürfte das aber auf Dauer eine wesentliche Nummer zu kleine sein. Für einen kleinen Browsercheck aber ausreichend.
Gruß