Keine Ausfallzeit mehr bei Updates
In diesem Beitrag
Warum kam es bisher zu Unterbrechungen der Verfügbarkeit?
In unserem alten Verfahren wurden Änderungen direkt aus der Versionsverwaltung auf den Liveserver übertragen. Dieser Vorgang selbst dauert höchstens einige Sekunden. Durch neue Technologien wurden in den vergangenen Jahren allerdings zunehmend zusätzliche, zeitaufwändigere Aufgaben im Rahmen des Deployments erforderlich. Dadurch führten Updates in vielen Projekten inzwischen zu einer Ausfallzeit von über einer Minute.
Beispiele für zeitaufwändige Deployment-Aufgaben:
- Aktualisierung von fremden Softwarepaketen, die im Projekt eingesetzt werden. Diese werden bei uns seit einigen Jahren durch Composer, ein spezielles Tool zum Paketmanagement, im Rahmen des Deployments geladen und installiert.
- Bereinigung von Cache-Verzeichnissen (Zwischenspeicher zur Performanceoptimierung) und Sicherstellung korrekter Dateirechte.
- Automatische Zusammenfassung und Optimierung von Stylesheet- und Javascript-Dateien.
Wie funktioniert das neue Verfahren?
Unser neues Deployment-Verfahren bereitet den gesamten Code des Projektes inklusive aller fremder Pakete zunächst in einem getrennten Verzeichnis vor, während die Website bzw. Webanwendung im alten Verzeichnis ganz normal weiterläuft. Erst wenn die kompletten Vorbereitungsarbeiten - und damit alle zeitaufwändigen Aufgaben - abgeschlossen sind, wird der Webserver so umkonfiguriert, dass er die neue Version des Codes aus dem vorbereiteten Verzeichnis nutzt.
Dieses Verfahren hat sich in der Ruby on Rails-Welt seit langem bewährt und wird zunehmend auch in PHP-Projekten eingesetzt.
Warum nicht schon früher so?
Alle unsere Projekte nutzen unser Deployment-Tool Phlough, das eine redundanzfreie und sehr effiziente Konfiguration von Projekten und Servern ermöglicht. Es war uns daher wichtig, dass auf Phlough basierende Projekte das neue Verfahren nutzen können, ohne dass eine zeitaufwändige Umstellung auf ein anderes Deployment-Tool erforderlich ist.
Wir haben jetzt eine Lösung entwickelt, die Zero Downtime Deployments auf Basis von Phlough ermöglicht und eine automatische Migration bestehender Liveserver unterstützt. Damit kommen sämtliche unserer Kundenprojekte ab sofort und kostenfrei in den Genuss der schnellen Updates.