Übersicht
Einführung
Passwork unterstützt eine ausfallsichere Architektur, die Hochverfügbarkeit bietet und den Dienst auch dann am Laufen hält, wenn einzelne Infrastrukturkomponenten ausfallen.
Ausfallsicherheit ermöglicht Ihnen:
- Kontinuierlichen Dienst sicherstellen für Benutzer
- Last verteilen über mehrere Server
- Das System skalieren für mehr Benutzer und höheren Durchsatz
- Betriebsrisiken reduzieren durch vorhersagbares Verhalten bei Ausfällen und Störungen
Ausfallsicherheit in Passwork ist nur mit der Erweiterten Lizenz verfügbar.
Prinzipien der Ausfallsicherheit
Ein ausfallsicheres Passwork-Deployment basiert auf zwei Kernprinzipien:
- Redundante Anwendungsserver — mehrere Anwendungsserver laufen parallel, sodass der Dienst auch bei Ausfall eines oder mehrerer Knoten verfügbar bleibt.
- Datenbankreplikation — ein MongoDB Replica Set hält die Daten über alle Knoten synchron und wählt automatisch einen neuen Primary.
Mindestanforderungen:
- Mindestens 2 Anwendungsserver hinter einem Load Balancer
- Mindestens 3 MongoDB-Knoten in einem Replica Set
- Unabhängige Infrastruktur für Datenbankknoten (separate Racks/Rechenzentren, wenn möglich)
- Konfigurierte Health Checks und Verbindungsüberwachung
Allgemeine Architektur eines ausfallsicheren Systems:

Skalierbarkeit
Passwork unterstützt zwei Skalierungsmodelle zur Steigerung der Leistung und zur Bewältigung von mehr Benutzern.
Horizontale Skalierung
Horizontale Skalierung (Scale-out) bedeutet, neue Server zum Pool hinzuzufügen, um die Last zu verteilen.
Vorteile:
- Höherer Durchsatz durch Verteilung der Anfragen auf mehrere Server
- Hochverfügbarkeit — wenn ein Server ausfällt, arbeiten die anderen weiter
- Schrittweise, inkrementelle Erweiterung
Anwendungsfälle:
- Hinzufügen neuer Passwork-Anwendungsserver
- Erweiterung des MongoDB Replica Sets mit zusätzlichen Secondary-Knoten
Vertikale Skalierung
Vertikale Skalierung (Scale-up) bedeutet, die Ressourcen (RAM, CPU, Speicher) eines bestehenden Servers zu erhöhen.
Vorteile:
- Schnelle Leistungssteigerung ohne Änderung der Architektur
- Einfach umzusetzen — kein Balancing oder Synchronisation erforderlich
- Geeignet für kleine und mittlere Lasten
Einschränkungen:
- Hardware-Grenzen (maximales RAM/CPU auf einem einzelnen Host)
- Single Point of Failure — wenn der Server ausfällt, ist das System nicht verfügbar
- Ein leistungsstarker einzelner Server kann teurer sein als mehrere kleinere
Empfehlungen
- Für ausfallsichere Deployments bevorzugen Sie horizontale Skalierung
- Vertikale Skalierung eignet sich für Anfangsaufbauten oder Umgebungen ohne strenge HA-Anforderungen
- Ein kombinierter Ansatz funktioniert ebenfalls: Server bei Bedarf vertikal skalieren und für Verfügbarkeit horizontal erweitern
Komponenten der ausfallsicheren Architektur
Ein ausfallsicheres Passwork-Deployment besteht aus zwei Hauptkomponenten.
1. Mehrere Anwendungsserver
Die Verwendung mehrerer Passwork-Anwendungsserver hinter einem Load Balancer bietet:
- Automatische Verkehrsumleitung bei Serverausfall
- Gleichmäßige Lastverteilung über gesunde Server
- Horizontale Skalierbarkeit
Erfahren Sie mehr über Architektur, Load Balancing und Health Checks unter Anwendungsserver.
2. Datenbankreplikation
Die Verwendung eines MongoDB Replica Sets bietet:
- Automatische Wahlen und Primary-Ersetzung bei Ausfall des aktuellen Primary
- Datensynchronisation zwischen Knoten
- Hohe Datenverfügbarkeit
Weitere Details finden Sie unter Datenbank.
Vorteile einer ausfallsicheren Architektur
Hochverfügbarkeit
Das System läuft weiter, auch wenn einzelne Komponenten ausfallen:
- Wenn ein Anwendungsserver ausfällt, leitet der Load Balancer den Verkehr an die verbleibenden Server weiter
- Wenn der Primary-Datenbankknoten ausfällt, wählt das Replica Set einen neuen Primary, und die Anwendungsserver beginnen, diesen zu verwenden
Skalierbarkeit
Eine ausfallsichere Architektur ermöglicht einfache Skalierung:
- Horizontale Skalierung — Anwendungsserver und MongoDB-Knoten hinzufügen
- Vertikale Skalierung — Ressourcen zu bestehenden Servern hinzufügen
Leistung
Die Verteilung der Last über mehrere Server ermöglicht Ihnen:
- Mehr gleichzeitige Anfragen bedienen
- Den Druck auf jeden einzelnen Server reduzieren
- Antwortzeiten verbessern