Herausforderung:
Ein Kunde betreibt eine stark frequentierte internationale Webseite, die von mehreren Servern hinter einem Load-Balancer auf Amazons AWS-Infrastruktur ausgeliefert wird. Im Rahmen einer optimierten Continuous-Deployment-Strategie sollen Änderungen oft, zeitnah und zu normalen Geschäftszeiten ohne Unterbrechung der Webseitenfunktion ausgespielt werden.
Umsetzung:
Wir verwenden Ansible, um den Vorgang zu automatisieren. Das Playbook erstellt automatisch Backups vor dem Deployment, deregistriert die Hosts einzeln vom Load-Balancer, aktualisiert sie und registriert sie anschließend wieder.
Dadurch ist gewährleistet, dass Besucher der Webseite keine Funktionseinbußen bemerken, selbst wenn sie während des Deployments auf der Seite unterwegs sind.
Gleichzeitig ermöglicht die Lösung, ehemals fehleranfällige manuelle Schritte, z.B. Kompilation oder Datenbankmigration, automatisiert und nur bei Bedarf durchzuführen. Damit steigt die Ausfallsicherheit während Deployments zusätzlich an.
Die strikte Verwendung von Git-Tags dokumentiert darüber hinaus zuverlässig den aktuell deployten Codestand, so dass Fehlersuchen im Repository direkt an der korrekten Zeile beginnen können.