2009-07-27 14 views
0

Ich erstelle eine Server-Management-Schnittstelle für einige meiner Server (die virtuellen Hosts hosten) und ich wollte die beste Möglichkeit kennen, eine Master-Slave-Konfiguration für diese Schnittstelle zu implementieren.Was ist der beste Weg, um eine Master-Slave-Konfiguration für eine Web-App zu erstellen?

Der Master-Server sollte eine Verbindung zu allen Slave-Servern herstellen, um Informationen abzurufen (eine Übersicht auf hoher Ebene bereitzustellen) und Befehle zu senden (Verwaltung wird zentralisiert beibehalten). Der Master-Server selbst kann jedoch auch virtuelle Server enthalten, weshalb ich plante, dieselbe Anwendung über alle physischen Knoten hinweg bereitzustellen und herauszufinden, ob der Knoten ein Master oder ein Slave ist.

// Side Hinweis: scheint fast wie Rekursion in einer Weise, haha ​​

Einige Ideen, die ich im Sinn hatte:

  • Separate Datenbankschemata für einen Master und einem Slave, überprüft die App das Schema um den Servertyp zu bestimmen.
  • Ein Feld in der Server-Liste Tabelle, die einen Server in der Tabelle als Master oder Slave

Antwort

0

Ich kam zu einer einfachen Lösung für mein Problem. Ich habe gerade eine SLAVE-Datei zur Installation eines Slave hinzugefügt, und das Programm prüft, ob diese Datei da ist. Wenn es so ist, bezeichnet es diesen Server als Slave ..... total überlegt das ...

2

Während Sie Ihre eigene Lösung rollen könnten, Ihre beste Wette bezeichnet, ist eine Art von Server Automation Framework/app wie Puppet oder Koch. Persönlich bevorzuge ich Koch, aber es gibt eine Menge Unterstützung für beide. Zumindest könnten Sie wahrscheinlich einen Einblick bekommen, wie Sie dies selbst von ihnen erreichen können :)

Anstatt in eine große Erklärung dessen, was sie tun, gehen, würde ich vorschlagen, dass Sie die Websites für jeden überprüfen:

Allerdings sind hier das Intro blurbs von jedem Standort ...


Chef ist ein Systemintegrations-Framework, das die Vorteile des Konfigurationsmanagements für Ihre gesamte Infrastruktur bietet. Mit Chef können Sie:

  • Verwalten Sie Ihre Server durch Schreiben von Code, nicht durch Ausführen von Befehlen. (über Cookbooks)
  • Integrieren Sie eng mit Ihren Anwendungen, Datenbanken, LDAP-Verzeichnissen und mehr. (Via Libraries)
  • Leicht Anwendungen konfigurieren, dass das Wissen über die gesamte Infrastruktur erfordern ("Welche Systeme sind meine Anwendung ausgeführt wird?" "Was ist der aktuelle Master-Datenbank-Server?")

Puppet a deklarative Sprache zum Ausdrücken der Systemkonfiguration, ein Client und Server zum Verteilen derselben und eine Bibliothek zum Realisieren der Konfiguration.

Anstatt die Serververwaltung durch Automatisierung der aktuellen Techniken anzugehen, gestaltet Puppet das Problem neu, indem eine Sprache zur Verfügung gestellt wird, um die Beziehungen zwischen Servern, den von ihnen bereitgestellten Diensten und den primitiven Objekten, die diese Dienste bilden, auszudrücken.Anstatt die Details zu behandeln, wie eine bestimmte Konfiguration erreicht oder ein bestimmter Service bereitgestellt werden kann, können Puppet-Benutzer ihre gewünschte Konfiguration einfach mit den Abstraktionen, die sie gewohnt sind, wie Service und Knoten, ausdrücken, und Puppet ist entweder für das Erreichen der Konfiguration verantwortlich oder Bereitstellung des Benutzers genug Informationen, um aufgetretene Probleme zu beheben.

+0

Danke dafür, noch nie von denen gehört. Nicht ganz das Problem, das ich zu lösen versuchte, aber auf jeden Fall gute Kenntnisse, die ich weitergeben konnte! – rnavarro

+0

Kein Problem, gerne teilen :) –

Verwandte Themen