11 Stimmen

PHP-Build-System

Ich verwende PHPUnderControl, das auf Cruise Control aufsetzt, für meine kontinuierliche Integration und Einheitstests. Ich habe es auch eingerichtet, um PHPDocumentor auszuführen und PHPDoc's für mich zu generieren, sowie PHP Code Sniffer zur Durchsetzung von Codierungsstandards. Aber jetzt möchte ich etwas auf demselben Server (Ubuntu) einrichten, um das Bereitstellen auf einem Remote-Server zu erleichtern. Ich habe es bereits so eingerichtet, dass nach jedem erfolgreichen Build ein SVN Export von trunk in ein Verzeichnis innerhalb des Projektordners auf dem Server durchgeführt wird.

Ich habe darüber nachgedacht, ein kleines benutzerdefiniertes PHP-Skript zu schreiben, das eine SSH-Verbindung zu einem konfigurierten Remote-Server herstellt, das neueste Exportpaket erstellt, es kopiert, entpackt und alle Migrationen ausführt. Ein PHP-Skript wie dieses sollte anfangs nicht zu schwierig sein, es sei denn, ich müsste letztendlich auf mehrere Server skalieren. Ich weiß, dass es Systeme wie Phing, Fabric und andere gibt.

Meine Frage ist, ob jemand Erfahrung damit hat und einige Vor- und Nachteile nennen kann? Ich habe bereits begonnen, Phing auf meinem Server einzurichten und werde als nächstes mit Fabric herumspielen, um sie auszuprobieren, aber ich frage mich, ob jemand, der sie umfangreicher verwendet hat oder sie skalieren musste, ein Feedback geben könnte.

0voto

Lothar Punkte 11643

Ich habe mein eigenes rsync-ähnliches Tool dafür geschrieben, weil ich von einer sehr schlechten Internetverbindung in einem Dritteweltland aus arbeite und alle Arten von Ausfällen und langsamen Verbindungen habe, so dass rsync nicht funktioniert.

Auf Ihrem Remote-System sollten Sie zumindest ein kleines Skript schreiben, das Backups macht, bevor Sie Migrationen ausführen.

Besser ist es, wenn Sie ein vollständig unabhängiges Spiegelsystem auf Ihrem Web-Host-System verwenden und nach einer Migration einige kleine, aber grundlegende Unittests einbeziehen. Führen Sie dann einen Root-Switch durch, um die aktualisierte Website online zu stellen. Dies erfordert das Ausführen einiger interaktiver Dienste im Nur-Lese-Modus während der Migration (leider eine Funktion, die nicht viele Menschen implementieren).

Aber vor allem - überlegen Sie, ob es wirklich wert ist, Ihre Zeit damit zu verbringen - wenn Sie nur vierteljährlich aktualisieren, reicht möglicherweise eine einfache Checkliste auf Papier aus.

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