SinnerSchrader "operations" Gem - alle betriebsrelevanten Details im Blick
Für einen unserer Kunden betreiben wir mehr als 15 Rails Applikationen (JRuby als auch natives Ruby), die mindestens ebenso viele externe Schnittstellen bedienen. Um diese reibungslos zu betreiben haben wir ein eigenes Gem entwickelt.
Das intern "operations" genannte Gem bietet eine DSL über der Health Checks diverser Schnittstellen (z.B. externe APIs, Datenbanken) konfiguriert und schließlich über eine Route abgefragt werden können. Ausgabeformate sind JSON, XML und eine optisch recht ansprechende HTML Variante in der die Status der Subsysteme in einer Baumhierarchie dargestellt werden. Über die DSL kann konfiguriert werden, wie sich der Status des Gesamtsystems bei Fehlverhalten einzelner Subsysteme verhält, damit z.B. das Operating Team des Nachts nicht aktiv werden muss, wenn externe Systeme außerhalb unseres Einflussbereiches defekt sind. Weiterhin werden diverse Anwendungseinstellung dargestellt wie z.B. (j)Ruby Version, Umgebung (live, stage etc.), Deploy Branch/Commit/Time, Hostname etc.
Hierzu gibt es auch ein Dashboard, das den Zustand aller Applikationen im Setup sowie deren Hosts visualisiert.
In diesem Vortrag möchte ich an Hand von Beispielen das Gem erklären und die Roadmap vorstellen.