Die Systemarchitektur, die für die Installation von SaltStack Config erforderlich ist, hängt von zwei Hauptfaktoren ab: 1) der Installationsmethode, die Sie zum Bereitstellen von SaltStack Config verwenden, und 2) dem Durchsatz Ihrer Umgebung, d. h. der Umfang der Arbeit, die Sie auf Ihrem System mit SaltStack Config durchführen.
Bevor Sie beginnen
Um eine genaue Bewertung der Anforderungen Ihrer Systemarchitektur vorzunehmen, sollten Sie zunächst sicherstellen, dass Sie mit Folgendem vertraut sind:
- Die beiden verfügbaren Installationsmethoden für SaltStack Config
- Die vier grundlegenden Komponenten der SaltStack Config-SaltStack-Architektur (RaaS, Salt-Master, PostgreSQL und Redis)
Eine Übersicht über diese Konzepte, einschließlich eines allgemeinen Überblicks über den Installationsvorgang, finden Sie unter Installieren und Konfigurieren von SaltStack Config. Weitere Informationen zur Auswahl eines Installationsszenarios finden Sie unter Welches Installationsszenario sollten Sie verwenden?.
SaltStack Config wird von Salt unterstützt, einer Open-Source-Automatisierungs- und Konfigurations-Management-Engine. Wenn Sie mit in Salt verwendeten Schlüsselbegriffen (wie Salt-Master und Salt-Minion) weniger vertraut sind, finden Sie weitere Informationen unter Salt-Systemarchitektur.
Bestimmen der Minion-Architektur
Im Kontext von SaltStack Config bezieht sich ein Minion im Allgemeinen auf einen Knoten in Ihrer Produktionsumgebung, der über einen oder mehrere Salt-Master eine Verbindung mit SaltStack Config herstellt und von dieser Instanz verwaltet wird.
Salt wurde für die Verwendung mit allen Betriebssystemen entwickelt, die möglicherweise auf einem Minion ausgeführt werden. Zusätzlich zu den Standardbetriebssystemen (Linux, Windows, MacOS) bietet Salt spezielle Minion-Software (im Allgemeinen als „native Minions“ bezeichnet) für Betriebssysteme, die für verschiedene Netzwerkgeräte wie Arista, Juniper, AIX und Solaris eindeutig sind.
In dieser Tabelle sind die Mindestanforderungen an den Arbeitsspeicher für den Salt-Minion-Dienst nach Betriebssystemen aufgelistet:
Betriebssystem | Mindestanforderungen an den Arbeitsspeicher |
---|---|
AIX-Minion | 512 MB RAM |
MacOS-Minion | 4 GB RAM |
Linux-Minion | 512 MB RAM |
Windows-Minion | 4 GB RAM |
Andere Netzwerkgeräte, einschließlich Proxy-Minions | 40 MB RAM pro gesteuertem Gerät |
Ermitteln Sie Ihr Installationsszenario
Weitere Informationen zur Auswahl eines Installationsszenarios finden Sie in Welches Installationsszenario sollten Sie verwenden?. Wenn Sie sich nicht sicher sind, welche Installationsmethode für Ihr System am besten geeignet ist, wird die Standardinstallation empfohlen. Die Lifecycle Manager-Installationsmethode wird für Produktionsklassensysteme mit mehr als 1.000 Knoten nicht empfohlen.
Wenn Sie eine Lifecycle Manager-Installation auswählen, werden nur ein Knoten und die folgende Systemarchitektur benötigt:
Hardware | Bis zu 1.000 Knoten (Minions) |
---|---|
Kerne | 8 CPU-Kerne |
RAM | 16 GB RAM |
Festplattenspeicher | Mindestens 40 GB freier Speicher |
In einem Teil des Handbuchs werden die Architekturanforderungen für das Standardinstallationsszenario erläutert.
Schätzen Sie die Anzahl der Salt-Minions, die Sie verwalten werden.
Obwohl der Durchsatz Ihres Systems vor der Installation schwer zu messen ist, können Sie Ihren Bedarf basierend auf der Anzahl der Minions (Knoten) in Ihrem System schätzen, die von SaltStack Config verwaltet werden. Der letzte Abschnitt dieses Handbuchs enthält zusätzliche Messungen zum Ermitteln Ihres Systemdurchsatzes.
Wenn Sie weitere Salt-Minions durch SaltStack Config verwalten, müssen Sie möglicherweise Ihre Systemarchitektur entsprechend erweitern.
Schätzen Sie die Anzahl der benötigten Salt-Master.
In dieser Tabelle wird die empfohlene Anzahl von Salt-Mastern aufgelistet, die Sie möglicherweise basierend auf der Anzahl der verwalteten Salt-Minions (Knoten) in Ihrem System benötigen:
Minions | Salt-Master (16 CPUs/16 GB) |
---|---|
5.000 | 1 |
10.000 | 2 |
15.000 | 3 |
20.000 | 4 |
25.000 | 5 |
30.000 | 6 |
35.000 | 7 |
40.000 | 8 |
45.000 | 9 |
50.000 | 10 |
55.000 | 11 |
60.000 | 12 |
65.000 | 13 |
70.000 | 14 |
75.000 | 15 |
80.000 | 16 |
85.000 | 17 |
90.000 | 18 |
95.000 | 19 |
100.000 | 20 |
In diesem Dokument wird die lokale Architektur von SaltStack Config beschrieben. SaltStack Config-Cloud kann derzeit nur einen Salt-Master ausführen, d. h., er ist auf weniger als 20.000 Minions begrenzt.
Schätzen Sie die Anzahl der benötigten RaaS-Knoten.
In dieser Tabelle wird die empfohlene Anzahl von RaaS-Knoten aufgelistet, die Sie möglicherweise basierend auf der Anzahl der verwalteten Salt-Minions (Knoten) in Ihrem System benötigen:
Minions | RaaS-Knoten mit 16 CPUs/16 GB | RaaS-Knoten mit 32 CPUs/32 GB |
---|---|---|
5.000 | 1 | |
10.000 | 1 | |
15.000 | 1 | |
20.000 | 1 | |
25.000 | 2 | |
30.000 | 2 | |
35.000 | 2 | |
40.000 | 2 | |
45.000 | 1 | 1 |
50.000 | 1 | 1 |
55.000 | 1 | 1 |
60.000 | 1 | 1 |
65.000 | 2 | |
70.000 | 2 | |
75.000 | 2 | |
80.000 | 2 | |
85.000 | 1 | 2 |
90.000 | 1 | 2 |
95.000 | 1 | 2 |
100.000 | 1 | 2 |
Schätzen Sie die Anzahl der benötigten PostgreSQL-Knoten.
Die nächsten beiden Tabellen enthalten die empfohlene Anzahl an PostgreSQL-Datenbankknoten, die Sie möglicherweise basierend auf der Anzahl der verwalteten Salt-Minions (Knoten) in Ihrem System benötigen:
Minions | PostgreSQL-Knoten mit 8 CPUs/8 GB | PostgreSQL-Knoten mit 16 CPUs/16 GB | PostgreSQL-Knoten mit 24 CPUs/24 GB | PostgreSQL-Knoten mit 32 CPUs/32 GB |
---|---|---|---|---|
5.000 | 1 | |||
10.000 | 1 | |||
15.000 | 1 | |||
20.000 | 1 | |||
25.000 | 1 | |||
30.000 | 1 | |||
35.000 | 1 | |||
40.000 | 1 | |||
45.000 | 1 | |||
50.000 | 1 | |||
55.000 | 1 | |||
60.000 | 1 |
Minions | PostgreSQL-Knoten mit 48 CPUs/48 GB | PostgreSQL-Knoten mit 56 CPUs/56 GB | PostgreSQL-Knoten mit 64 CPUs/64 GB |
---|---|---|---|
65.000 | 1 | ||
70.000 | 1 | ||
75.000 | 1 | ||
80.000 | 1 | ||
85.000 | 1 | ||
90.000 | 1 | ||
95.000 | 1 | ||
100.000 | 1 |
Schätzen Sie die Anzahl der benötigten Redis-Knoten.
Die nächsten beiden Tabellen enthalten die empfohlene Anzahl an Redis-Datenbankknoten, die Sie möglicherweise basierend auf der Anzahl der verwalteten Salt-Minions (Knoten) in Ihrem System benötigen:
Minions | Redis-Knoten mit 4 CPUs/4 GB | Redis-Knoten mit 8 CPU/8 GB | Redis-Knoten mit 12 CPUs/12 GB |
---|---|---|---|
5.000 | 1 | ||
10.000 | 1 | ||
15.000 | 1 | ||
20.000 | 1 | ||
25.000 | 1 | ||
30.000 | 1 | ||
35.000 | 1 | ||
40.000 | 1 | ||
45.000 | 1 | ||
50.000 | 1 | ||
55.000 | 1 | ||
60.000 | 1 |
Minions | Redis-Knoten mit 16 CPU/16 GB | Redis-Knoten mit 20 CPUs/20 GB |
---|---|---|
65.000 | 1 | |
70.000 | 1 | |
75.000 | 1 | |
80.000 | 1 | |
85.000 | 1 | |
90.000 | 1 | |
95.000 | 1 | |
100.000 | 1 |
Optimieren Sie Ihre Architektur nach der Installation basierend auf dem Durchsatz.
Nachdem Sie Ihre SaltStack Config-Installation abgeschlossen haben, können Sie Systemüberwachungsmetriken verwenden, um den Durchsatz und die architektonischen Anforderungen Ihres Systems besser zu ermitteln.
Beachten Sie bei der Bestimmung, was überwacht werden soll, die folgenden Faktoren:
- Menge des Datenverkehrs auf dem Ereignissystem – Das Ereignissystem (auch als „Ereignisbus“ bezeichnet) wird für die Kommunikation zwischen den Prozessen sowohl von Salt-Master als auch von Salt-Minions verwendet. Wenn Ihr Ereignisbus sehr ausgelastet ist, sollten Sie die Erhöhung Ihrer Arbeitsspeicherzuteilungen in Betracht ziehen.
- Auftragsrückgaben pro Stunde – SaltStack Config verwendet den Begriff „Aufträge“, um auf jeden der Befehle, Aufgaben und Vorgänge zu verweisen, die von SaltStack Config ausgeführt werden. Jeder Auftrag sendet seine Ausgabe zu Berichts- und Datenerfassungszwecken an SaltStack Config. Die Anzahl der Auftragsrückgaben, die Ihr System innerhalb einer bestimmten Stunde produziert, kann sich auf Ihre Architekturanforderungen auswirken.
- Menge der Pfeilerdaten – Pfeilerdaten sind Daten, die auf dem Salt-Master gespeichert werden müssen. Der Pfeiler wird in erster Linie zum Speichern von geheimen Schlüsseln oder anderen hochsensiblen Daten wie Kontoanmeldedaten, kryptografischen Schlüsseln oder Kennwörtern verwendet. Der Pfeiler ist auch nützlich, um nicht geheime Daten zu speichern, die Sie nicht direkt in Ihren Zustandsdateien ablegen möchten, wie z. B. Konfigurationsdaten. Die Menge der Daten, die auf Ihrem Salt-Master gespeichert werden (und später bei Bedarf von Minions aufgerufen werden) kann sich auf Ihre Arbeitsspeicher- und Datenspeicheranforderungen auswirken.
- Menge der benutzerdefinierten Körnungen – Körnungen werden in Salt verwendet, um die Minions für einen bestimmten Auftrag oder Befehl als Ziel zu verwenden. Körnungen beziehen sich auf die grundlegenden Daten und Merkmale jedes Minion. Salt ist mit vielen vorgefertigten Körnungen ausgestattet. Beispielsweise können Sie Minions nach Betriebssystem, Domänenname, IP-Adresse, Kernel, Arbeitsspeicher und vielen anderen Systemeigenschaften als Ziel verwenden. Sie können auch benutzerdefinierte Grain-Daten erstellen, um eine Gruppe von Minions von einer anderen basierend auf einem Merkmal zu unterscheiden, das Sie in Ihrem System als eindeutiges Ziel verwenden. Die Anzahl der von Ihnen erstellten benutzerdefinierten Körnungen kann sich auf Ihre Architekturanforderungen auswirken.
- Anzahl der Beacons und Reaktoren – Das Beacon-System ist ein Überwachungstool, das eine Vielzahl von Systemprozessen auf Salt-Minions überwachen kann. Beacons können Reaktoren auslösen, die dann bei der Implementierung einer Änderung oder bei der Behebung eines Problems helfen können. Wenn beispielsweise die Antwort eines Dienstes abgelaufen ist, kann das Reaktorsystem den Dienst neu starten. Bei Kopplung mit Reaktoren können Beacons automatisierte vorab verfasste Reaktionen auf Infrastruktur- und Anwendungsprobleme erstellen. Reaktoren erweitern Salt um automatisierte Reaktionen unter Verwendung von vorab verfassten Standardisierungszuständen. Wenn Ihr System über Beacons und Reaktoren verfügt, die regelmäßig aktiviert werden, kann dies die Anforderungen Ihrer Systemarchitektur erhöhen.
- Anforderungen an Festplattengröße – Möglicherweise müssen Sie die Festplattengröße basierend auf der Anzahl der verwalteten Minions und für die Daten jedes Jahres erhöhen, die Sie im Speicher aufbewahren müssen. Wenn Sie beispielsweise über ein System mit hohem Durchsatz verfügen und sich Ihr System in einer stark regulierten Branche befindet, für die eine Datenspeicherung von 7 bis 8 Jahren erforderlich ist, kann dies eine höhere Festplattengröße und Speicherkapazität erfordern.
- Geografischer Standort und Entfernung zwischen Komponenten – Bei einer Latenz von 65 ms oder mehr zwischen dem Salt-Master und dem Server, auf dem SaltStack Config (RaaS) ausgeführt wird, treten möglicherweise Probleme auf. Glücklicherweise ist Salt weniger anfällig für Latenz zwischen dem Salt-Minion und dem Salt-Master. Beachten Sie beim Ablegen dieser Komponenten, dass es besser ist, bei Bedarf den Master in der Nähe von RaaS und den Minion weiter entfernt zu platzieren.
- Geschäftskritische Vorgänge – Wenn Sie bewerten, wie geschäftskritisch SaltStack Config in Ihrer Umgebung ist, fragen Sie sich, wie sehr sich ein SaltStack Config-Ausfall auf Ihr Unternehmen auswirken würde. Wenn die Instanz eine Stunde oder länger inaktiv wäre, würde dies schwerwiegende Auswirkungen haben? Falls ja, müssen Sie möglicherweise Hochverfügbarkeitsanforderungen für Ihre SaltStack Config-Systemarchitektur entwerfen.
Basierend auf diesen Faktoren sollten Sie inkrementell ihre Ressourcen erhöhen und die Auswirkungen auf die Leistung Ihres Systems überwachen. Erhöhen Sie beispielsweise Ihre Arbeitsspeicherzuteilungen um 4 GB RAM mit 4 CPUs.
Die folgende Abbildung zeigt ein Beispiel für ein SaltStack Config-Architekturdesign mit Hochverfügbarkeit:
Wie in diesem Bild dargestellt, stellen viele Hochverfügbarkeitssysteme eine Verbindung mit mehreren Salt-Mastern her. Hochverfügbarkeitssysteme erstellen auch oft Redundanz in die PostgreSQL- und Redis-Datenbanken, sodass eine ein Failover auf die andere durchführen kann. Beachten Sie, dass die aktuellen Hochverfügbarkeitslösungen für PostgreSQL und Redis nur manuelle Failover unterstützen.