HashiCorps Consul für Service Discovery, Monitoring und Konfigurationsmanagement

Werkzeuge  –  1 Kommentare


Die Cloud skaliert Rechnerknoten dynamisch. Informationen zu aktiven Knoten und Konfigurationseinstellungen müssen allen Knoten mitgeteilt werden. Die Software Consul tritt an, die drei Herausforderungen Service Discovery, Monitoring und Konfigurationsmanagement zu lösen – in der Cloud und im klassischen Rechenzentrum.

Ein Monitoring-System überwacht die installierten Dienste und die Knoten, auf denen sie laufen. Die Informationen über verfügbare Knoten und Dienste stellt es in Dashboards dar. Bei Problemen verschickt das Monitoring-System Nachrichten. Diese Informationen stehen jedoch nicht den Diensten zur Verfügung, um sich entsprechend der aktuellen Lage zu rekonfigurieren.

Ähnlich verhält es sich mit Konfigurationsdateien: Konfigurationsmanagement-Systeme wie Puppet und Chef provisionieren die Infrastruktur, schreiben Konfigurationsdateien und tragen die passenden Zieladressen der Systeme in der Umgebung ein. Dabei berücksichtigen sie nicht, ob die Dienste gerade verfügbar sind oder nicht. Anwender können den Zustand verbessern, indem sie das Konfigurationsmanagement-System anweisen, parallel zum Monitoring-System Informationen zur Verfügbarkeit zu sammeln und entsprechend häufig die Konfigurationsdateien zu aktualisieren. Damit implementieren sie aber die Überwachungsfunktion ein zweites Mal. Zusätzlich müssen die Konfigurationsmanagement-Systeme nun hochverfügbar sein.

Ein Dienst wie der hochverfügbare und skalierbare Key-Value-Store etcd kann Konfigurationsinformationen systemübergreifend speichern. Anwendungen können direkt darauf zugreifen oder sich ihre Konfigurationsdateien über zusätzliche Dienste wie confd automatisch aktualisieren lassen. Wenn sie ihre Erreichbarkeit beispielsweise als Hostname und Port im Key-Value-Store hinterlegen, können andere Anwendungen sie finden (Service Discovery). Zusätzliche Dienste wie SkyDNS erlauben ein Auffinden der in etcd registrierten Dienste über DNS. Ein aktives Monitoring der verschiedenen Dienste bleibt jedoch außen vor. Zudem müssen Administratoren alle Zugriffe auf den zentralen etcd absichern – mindestens auf der Transportebene, wenn nicht sogar auf der Ebene der einzelnen Zugriffe.

Die größte Herausforderung im oben beschriebenen Szenario ist das Monitoring: Entweder wird es mehrfach implementiert oder die Informationen fehlen bei der Konfiguration der Dienste. HashiCorps Open-Source-Produkt Consul teilt die Zuständigkeiten neu auf, sodass die Zahl der verwendeten Werkzeuge sinkt und sich die einzelnen Tools auf ihre Kernkompetenz konzentrieren. Zusätzlich bringt es einfach zu verwaltende Sicherheitsfunktionen mit, die sich Schritt für Schritt aktivieren lassen.

Consul pflegt ein zentrales Diensteverzeichnis (Service Catalog) und überwacht alle Knoten und Dienste über lokal auf den jeweiligen Knoten ausgeführte Checks. Die Monitoring Events kann Consul direkt an eine Alarmierung weitergeben. Die Daten über verfügbare Dienste stehen über eine REST API und über DNS zur Verfügung. Das Modul Consul Template schreibt ähnlich wie confd Konfigurationsdateien anhand von Vorlagen für die jeweiligen Dienste. Zusätzlich stellt Consul einen Key-Value-Store für Konfigurationsdaten bereit.

Wie gewohnt kümmert sich das zentrale Monitoring um End-to-End-Tests. Das Konfigurations-Management installiert Software – inklusive Consul –, Dienst-Beschreibungen und Vorlagen für Konfigurationsdateien auf den Knoten.