Deployment ist das Ausrollen eines neuen Stands auf den Server, auf dem die Website läuft. Der Vorgang beginnt bei einem geprüften Stand im Repository und endet damit, dass die Besucher die neue Fassung sehen.
- Deployment
Das Ausrollen eines neuen Stands auf den Server, auf dem die Website läuft.
Beispiel: „Das Deployment lief um sieben Uhr morgens und war nach vierzig Sekunden durch.“Auf Deutsch ausrollen oder ausliefern. Drei Wege sind üblich: Dateien von Hand kopieren, ein Skript über SSH ausführen oder eine Pipeline, die beides selbsttätig tut.
Abgrenzung zum Release: Das Release ist die Fassung, die veröffentlicht wird. Das Deployment ist der Vorgang, der sie an ihren Platz bringt.
Was zu einem Deployment gehört
Mehr als das Kopieren von Dateien. Dazu kommen die Abhängigkeiten über Composer und den Paketmanager des Frontends, das Bauen der Assets, die Änderungen an der Datenbank, das Leeren der Zwischenspeicher und der Neustart der Hintergrundprozesse.
Die Reihenfolge entscheidet darüber, ob die Website währenddessen erreichbar bleibt. Alles, was vorbereitet werden kann, geschieht vor dem Umschalten, siehe Zero Downtime Deployment.
Warum ein Deployment ein Skript braucht
Weil Handarbeit Schritte vergisst. Beim dritten Mal fehlt das Leeren des Caches, beim fünften der Neustart der Worker, und der Fehler zeigt sich erst Stunden später an einer Stelle, die niemand mit dem Ausrollen verbindet.
Ein Skript ist dagegen nachlesbar, wiederholbar und liegt selbst in der Versionsverwaltung. Es macht den Vorgang zu etwas, das auch jemand anderes ausführen kann, siehe Deploy-Skript.
Wann ein Deployment stattfinden sollte
Dann, wenn jemand da ist. Freitag um 17 Uhr ist der schlechteste Zeitpunkt, weil ein Fehler das Wochenende kostet; ein Vormittag mit wenig Verkehr und besetzten Plätzen ist der beste.
Vorher gehört der Rückweg geklärt. Wer weiß, wie der vorherige Stand in einer Minute zurückkommt, rollt entspannt aus, siehe Rollback.