Da unsere Systeme wachsen, gibt es immer mehr Server und Dienste (verschiedene Typen und mehrere Instanzen desselben Typs, die kleinere Konfigurationsänderungen erfordern). Wir suchen nach einer "cetralized configuration" -Lösung, die vorzugsweise vorhanden ist und nichts, was wir von scrtach entwickeln müssen. Die Idee ist so etwas wie Service geht hoch, es kennt ein einzelnes Stück Daten (seine Art + Ort + Version + ServiceID oder so ähnlich) und kontaktiert einige zentrale Dienste, die ihm die richtige Konfiguration geben (Datei, Objekt oder was auch immer)). Wenn der Dienst, der online geht, den Konfigurationsdienst nicht finden kann, wird er entweder eine zwischengespeicherte Konfiguration verwenden oder die Initialisierung verweigern (Verhalten sollte wahrscheinlich in den Startparametern angegeben werden, von wem oder was es online bringt) Der Konfigurationsdienst sollte hochverfügbar sein, dh ein Cluster von Servern (ZooKeeper klingt immer noch wie ein perfekter Kandidat) Der Dienst sollte vorzugsweise das Konzept der Vererbung unterstützen, indem er eine globale Konfigurationsdatei für den Diensttyp und dann spezifische Überschreibungen oder Erweiterungen für jede Instanz der Service durch seine ID. Außerdem sollte es so etwas wie die Versionierung von Konfigurationen unterstützen, so dass unterschiedliche Konfigurationen desselben Diensttyps für verschiedene Versionen beibehalten werden können, da wir uns mehr auf die Seite-an-Seite-Einführung von Diensten verlassen wollen. Die andere Seite der Gleichung ist, dass es ein Konfigurations-Admin-Tool gibt, das sich mit demselben zentralen Konfigurationsdienst verbindet, und alle Konfigurationen basierend auf den obigen Anforderungen überprüfen und aktualisieren kann.Hinzufügen einer zentralen Konfiguration zu unseren Servern
Ich weiß, dass, wenn ich die Kernanforderung von Serivce ziehen Konfig Daten zu haben die Daten zu schieben, kann ich etwas wie Puppet oder Chef, um alles zu verwalten. Ich muss ehrlich sein, ich habe wenig Erfahrung mit diesen beiden Systemen (unser IT-Team hat mehr), aber aus meinen Untersuchungen kann ich sagen, dass es nicht das richtige Werkzeug für diesen Job ist.
Gibt es Systeme, die denen ähneln, die ich oben beschrieben habe?