Entwicklungsumgebung für Webprojekte

rethus

Erfahrenes Mitglied
Ich nutze eclipse und git für Webprojekte.
Ich bin da stets auf der Suche nach optimierung, und würde mich daher freuen, wenn Ihr mir mit euren Erfahrungswerten etwas beistehen könntet.

Mich interessiert z.B. wie man das deploying optimieren kann.
Dabei gehe ich mal von folgender Grundstruktur aus:
  • Development-Server lokal
  • Staging-Server remote
  • Live-Server Remote
  • Versionskontrolle Git

Gebastelt wird lokal auf dem Entwicklungssystem. Ist die Anpassung fertig kommt Sie für die Abnahme durch den Kunden auf den Staging-Server. Gibt er diese frei, werden die Daten auf den Live-Server gespielt (also reguläres Vorgehen).

Wie organisiert Ihr dabei den Abgleich der Daten zwischen den Systemen?
  • Nutzt Ihr Patches von Git?
  • Gibt es für GIT ein ähnliches Verfahren wie bei SVN, dass man alle geänderten Dateien (inkld Pfadstruktur) exportieren und auf dem Liveserver einspielen kann (falls kein ssh-Zugang auf dem Server bereit steht um den Patch einzuspielen)

Toll wäre natürlich eine Art Kommando-Zentrale, die dass automatisiert durchführt. Als Stichworte (aber wirklich noch nicht eingelesen) habe ich:
  • Capistrano
  • phpUnderControl
  • CruiseControl


Ich möchte Schritt für Schritt in die Verbesserung des Deployings einsteigen, daher wäre mir lieb, wenn die Antworten auch so aufgebaut sind, dass man zu seinem regulären Doing die Bereiche nach und Nach einfließen lassen kann.
 

alxy

Erfahrenes Mitglied
Kurze Vorbermerkung: Ich bin kein beruflicher Entwickler, also sind alle Annahmen theoretischer Natur.

Abgleich der Daten: Wie gehst du denn dort vor? Daten holen, aktualisieren, bereitstellen macht doch alles git (die versionskontrolle) [http://www.phpecho.de/git/deployment-einfach-gemacht-mit-git-hooks-1326.html , http://net.tutsplus.com/articles/from-ftp-to-git-a-deployment-story/?search_index=2]

Was den Workflow natürlich noch optimiert ("verschnellert") ist mE ein Continous Integration Server. Dieser führt immer wiederkehrende Aufgaben einfach automatisiert aus, wenn ich es richtig verstanden habe. D.h. er führt Unittets durch, minifiziert JS und CSS Dokumente, updatet die Dokumentation automatisch (Falls sich Klassen und deren Doclocs ändern), ...

Edit: Vllt nochn Link dazu: http://marcelog.github.io/articles/ci_jenkins_hudson_continuous_integration_php_phing.html