Im letzten Artikel haben wir gezeigt wie wir unsere Laravel Apps in Gitlab über Docker bereitstellen. Eine Lösung inspiriert von Jenkins wurde nun ins Intranet integriert – ein weiterer Baustein in unserem System. Der Continuous Integration and Continuous Delivery Prozess wird damit überwacht.
Ein Gitlab-Commit der auf den Masterbranch gemerget wird, löst den Auslieferungsprozess aus. Der Gitlab-Runner führt diesen Prozess aus. Zuerst wird ein API Request über Curl ausgelöst und der Datenbank wird der Prozessstart mitgeteilt. Ab jetzt ist der Prozess im Monitoring-Tool sichtbar und mit „running“ getagt. Nachdem der Prozess erfolgreich war, übermittelt dieser einen weiteren API-Request und der Status wird mit „Success“ getaggt. Bleibt der Success-Request aus, erscheint der Status „Timeout“. Ist es uns möglich den Fehler abzufangen (Exception handling) können wir den Prozess als „Failed“ bezeichnen.
Wir haben alle wichtigen Deployment-Metriken zu den Projekten auf einen Blick. Anzahl der Deployment-Prozesse, Dauer und Start des letzten Prozess, sowie der letzte Fehlschlag. Unter Details sind Anzahl der Fehlschläge, mögliche Fehlermeldungen, Portbelegung und weitere anwendungsspezifische Details ersichtlich. Die API arbeitet in beide Richtungen, sodass über die GUI bei Bedarf ein Prozess-Retry getriggert werden kann.
So sind wir ab sofort in der Lage, für alle geeigneten Projekte eine Übersicht über dessen Deployment-Status zu haben und es ist uns möglich, schnell Korrekturen durchzuführen.