Continous Integration / Deployment von Webprojekten

rethus

Erfahrenes Mitglied
Ich hab das Internet schon rauf und runter gelesen :), und stehe im Grunde noch fast da, wo ich zu Anfang stand.

Ich versuche mir eine solide Deploymentumgebung aufzubauen, kann mich aber nicht so recht für ein System entscheiden, bzw. kann nicht so ganz die Vor- und Nachteile auf lange Sicht absehen.

Hier hoffe ich, dass Ihr ein paar Eurer Erfahrungswerte mit mir teilt.

Hier erst einmal die Rahmenbedingungen:

Ziel ist eine lokale, eine Staging und eine Live-Umgebung zu betreiben, in von/in der/die man deployen kann.
Auf dem Server (kann Stagingserver oder weiterer externer Server [z.B. GitLab] sein) läuft ein GIT-System auf dem die Entwickler arbeiten. Nach beenden der Arbeit (Tagging) soll das Deploying auf den Stagingserver gemacht werden.
Nach Abnahme der Arbeiten auf Staging soll das Deploying auf den Live angestossen werden.

An Tools habe ich bisher folgende gesehen:
Ideal wäre, wenn sich das deployment via eclipse und auf der Konsole (bash) ausführen lässt.
Wenn möglich sollte (wegen separatem GIT-Server) beim deploying nicht das ganze Projekt, sondern die geänderten Dateien übertragen werden. [Das ein oder andere Projekt ist nämlich schon mal größer als 2 GB]

Ich freue mich auf Eure Erfahrungswerte und Tipps.
 
Zuletzt bearbeitet:
Was spricht dagegen, das Ganze einfach komplett mit Git und Bash zu machen?
Du brauchst nur ein Gitrepository, das von allen zu erreichen ist. Also dein Entwickler, der Staging Server und der Webserver brauchen Zugang zu dem Repository. Dann musst der Entwickler nur seine Änderungen einchecken und auf dem jeweiligen Server aus checken. Es werden nur Änderungen übertragen, du brauchst nur GIT, Bash und ssh. Mit ein paar Zeile Skript und Cronjobs kann man das leicht automatisieren.
 
Was meinst du mit auschecken? Das auf den Live-Server dann auch ein git im Docroot der Domain läuft? Also ich vom Docroot des Liveservers ein git pull mache?
Das ist nicht gewünscht.
 
So hatte ich es gemeint, alternativ kannst du auch mit rsync die Daten des Stagingservers auf den LiveServer spiegeln.
Du müsstest dann halt einen rsync daemon laufen lassen, bzw den zum Zweck des Deployments starten und anschließend beenden.
Das von dir genannte Magallanes macht im Grunde nichts anderes.
http://magephp.com/#deploy
Es liefert halt nur ein paar Automatisierungen gleich mit.
Insbesondere, wenn du deinen Code sowieso schon auf einem externen Gitlab Server hast, warum dann nicht auch git auf dem Liveserver nutzen?
Es gibt mehrere Artikel die so eine Vorgehensweise beschreiben
z.B.
http://danbarber.me/using-git-for-deployment/
http://stackoverflow.com/questions/4236161/git-github-and-web-server-deployment-configuration
http://jekyllrb.com/docs/deployment-methods/

Jenkins benutzt offenbar ein SQL Sync und eine mit SVN verwaltete Datenbank.
Zend Server verwendet Jenkins.
Capistrano benutzt Git:
At present Capistrano v3.0.x only supports Git.
 

Neue Beiträge

Zurück