praegnant
Goto Top

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

Content-ID: 155097

Url: https://administrator.de/contentid/155097

Ausgedruckt am: 05.11.2024 um 15:11 Uhr

sam24
sam24 15.11.2010 um 14:57:01 Uhr
Goto Top
Hallo Kai,
so ein paar Dinge sind unklar...

Ich benötige einen Entwicklungsserver, der folgende Punkte erfüllen sollte:
soweit meinte ich das verstanden zu haben


1. 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.

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.

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
praegnant
praegnant 15.11.2010 um 15:35:24 Uhr
Goto Top
Hallo Sam, schon mal Danke für die schnelle Antwort!

Ich hatte schon befürchtet, dass Missverständnisse auftauchen würden... :o/

Ich benötige einen Server, der unterschiedliche Entwicklungsumgebungen bereitstellen kann, mit unterschiedlichen Apache-, MYSQL-, PHP-Versionen, um die Produktivumgebung des Kunden zu simulieren.
Für meine eigenen Projekte benötige ich zum Beispiel (gemäß meines eigenen Produktiv-Systems) einen Apache2.2 , MYSQL5.1, PHP5.3 (wobei Apache u. MYSQL auf UTF-8 laufen) auf Ubuntu 10.4 LTS. Ich habe auch alle Pakete einzeln installiert. Ich wollte diese nur/knapp unter LAMP zusammenfassen...
Nun möchte ich mich aber auch auf einen Kunden optimal einstellen können, der z.B. Apache2.x, MYSQL5.x und PHP5.x auf ISO-8859-1 unter Debian laufen hat. Um nicht für jede Umgebung ein eigenes System virtualisieren/booten zu müssen, hatte ich mir gedacht, dass ich zumindest zwei Systeme (eins mit ISO-8859-1 und eins mit UTF-8) unter Ubuntu laufen habe und die Versionsunterschiede halt durch mein Wissen kompensieren muss. Das wäre also die Minimalanforderung, die ich hätte. Ideal wäre natürlich wirklich mehrere Systeme/Konfigurationen simulieren zu können. Ich entwickele ausschliesslich webbasiert und bin alleine. Die Anwendungen sind hauptsächlich Eigenentwicklungen im Bereich CMS und kleinere webbasierte Applikationen, also muss die Leistung des Servers nicht sehr gross dimensioniert werden.

Ich hoffe, meine Anforderungen sind nun klarer definiert.


Wie könnte man die Virtualisierung auf einer Workstation optimal realisiseren? Und welche Hardware käme dafür in Frage? Dann könnte ich ja auch die Windows-Test-Systeme realisieren, oder?


Kai
sam24
sam24 15.11.2010 um 16:49:56 Uhr
Goto Top
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.

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 face-wink

Hoffentlich hilft es...

Sam
praegnant
praegnant 17.11.2010 um 12:01:42 Uhr
Goto Top
Hallo Sam,

Du hast mich schon ein sehr großes Stück weitergebracht, vielen Dank!

Eine Workstation habe ich nie in Betracht gezogen, da ich ja eigentlich immer nach einem Test-"Server" gesucht habe. Natürlich macht es Sinn das Ganze auf einer Workstation abzubilden, da es ja auch nicht im Dauerbetrieb laufen soll. Ich habe mich mit den unterschiedlichen Lösungen nun grob auseinandergesetzt und denke, dass VMWare Workstation die richtige Lösung für mich ist. Hast Du irgendwelche Erfahrung mit dieser Lösung? Wie muss die Workstation dimensioniert sein, damit ich flüssig arbeiten kann? Im Prizip stelle ich mir jetzt vor, zum Testen eine Serverumgebung auf Linux-Basis und ein, zwei Windows-Systeme parallel zu virtualisieren. Das System sollte so dimensioniert sein, dass mir bei Videos auf einer Webseite im Testbetrieb nicht alles "zusammenklappt oder hängt".

Weitere Anforderungen RAID 1 mit zwei mind. 1TB Platten
Hostsystem Ubuntu

Hast Du Vorschläge für eine fertige Lösung oder auch für eine Zusammenstellung (Prozessor, Speicher, Board, Hardware-RAID, Gehäuse, Platten, BlueRay-Brenner, etc...)?
Und vielleicht hast Du auch einen Online-Shop, den Du empfehlen kannst?
Budget: bis max. 2000EUR Brutto

Es kann sich natürlich auch gerne jeder Andere hier zu Wort melden!
Für Vorschläge wäre ich sehr dankbar, da ich seit Jahren nur noch auf MACs arbeite und keine große Ahnung mehr von der PC-Welt habe...

Für die Synchronisierung von Testumgebung und Produktiv-System stelle ich mir das Ganze so vor: Ich entwickele auf der Workstation und kann dann von dort die aktuelle Entwicklungsversion des jeweiligen Projektes auf unterschiedliche Produktivserver mittles ssh oder sftp übertragen. Der umgekehrte Weg vom Produktiv-System auf eine virtuelle Entwicklungsumgebung sollte möglichst auch umsetzbar sein, steht aber an zweiter Stelle! Vorschläge dazu? Ist vllt rsync das Mittel der Wahl, oder gibt es da bessere Möglichkeiten? Am liebsten wäre mir eine Lösung, die sowohl das Document-Root als auch einen Datenbank-Dump auf dem Produktivserver bringt. Falls dies getrennt ablaufen muss, auch gut!

Vielen Dank im Voraus!
Kai
CaponCapri
CaponCapri 18.11.2010 um 22:38:39 Uhr
Goto Top
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ß