Zum Hauptinhalt springen

Anwendungsserver

Einführung​

Der Betrieb mehrerer Passwork-Anwendungsserver ist ein Kernbestandteil der ausfallsicheren Architektur. Er bietet Hochverfügbarkeit, Lastverteilung und Raum für horizontale Skalierung.

Wichtige Vorteile:

  • Automatische Verkehrsverteilung — wenn ein Server ausfällt, entfernt der Load Balancer ihn aus dem Pool und leitet den Verkehr an gesunde Knoten weiter
  • Lastverteilung — Anfragen werden gleichmäßig verteilt
  • Horizontale Skalierung — fügen Sie weitere Server hinzu, um die Kapazität zu erhöhen
  • Keine Ausfallzeit — verbleibende Server arbeiten weiter, wenn einer ausfällt
  • Vorhersagbares Failover — Verkehr wird automatisch umgeleitet, ohne die App-Konfiguration zu ändern

Architektur mit mehreren Anwendungsservern​

Übersicht​

Mehrere Passwork-Anwendungsserver laufen parallel. Jeder Server ist eine vollständige Passwork-Instanz mit einem Webserver und PHP-FPM.

hinweis

Anwendungsserver tauschen keine Daten direkt aus und wissen nicht, wie viele Server im Pool sind — diese Information wird nicht in der Datenbank gespeichert. Alle Anfragen (Authentifizierung, Lesen, Schreiben, Ereignisse) laufen über die Datenbankverbindung, wo Daten für Benutzer gespeichert und abgerufen werden.

Architektur:

Schema der Anwendungsserver-Ausfallsicherheit

Komponenten eines Anwendungsservers​

  1. Webserver

    • Verarbeitet HTTPS-Anfragen
    • Liefert statische Dateien aus
    • Leitet Anfragen an PHP-FPM weiter
  2. Passwork-Anwendung

    • Kernlogik von Passwork
    • Geschäftsoperationen
  3. PHP-FPM (FastCGI Process Manager)

    • Führt PHP-Code aus
    • Verwaltet den PHP-Worker-Pool
    • Verbindet sich mit der Datenbank

Load Balancer​

Der Load Balancer ist entscheidend für die Ausfallsicherheit. Er verteilt Anfragen über die Anwendungsserver und leitet den Verkehr bei Serverausfall automatisch um.

Funktionen des Load Balancers​

  1. Lastverteilung

    • Verteilt Anfragen gleichmäßig
    • Unterstützt Algorithmen wie Round-Robin, Least Connections, IP Hash
  2. Health Check

    • Prüft regelmäßig die Verfügbarkeit der Server
    • Entfernt automatisch ausgefallene Server aus dem Pool
    • Nimmt Server nach Wiederherstellung wieder in den Pool auf

Passwork stellt /api/v1/app/health-check für die Prüfung der Anwendungsserver-Gesundheit bereit.

  1. SSL/TLS-Terminierung (optional)
    • HTTPS-Offloading am Balancer
    • Vereinfacht die Zertifikatsverwaltung
info

Benutzersitzungen werden in der Passwork-Datenbank gespeichert. Wenn ein Benutzer an einen anderen Anwendungsserver weitergeleitet wird, bleiben bestehende Token gültig. Sticky Sessions sind nicht erforderlich — verwenden Sie gleichmäßige Verkehrsverteilung und Health Checks.

Sticky Sessions und Cache​

  • Sticky Sessions sind nicht erforderlich: Sitzungen und Token werden in der Datenbank gespeichert.
  • CDN/Edge-Cache ist für statische Assets (CSS/JS) geeignet; cachen Sie keine API-Anfragen.

Optionen für das Traffic-Balancing​

Wählen Sie eine Lösung, die zu Ihrer Infrastruktur passt:

  • HAProxy — beliebter L4/L7-Balancer mit flexibler Konfiguration
  • Nginx — weit verbreiteter L7-Balancer
  • Envoy / Traefik — dynamische L7-Balancer mit Service Discovery
  • GSLB / DNS-Load-Balancing über Standorte — für geografisch verteilte Deployments
  • Hardware ADC (F5, Citrix, A10 usw.) — für Hochlast- oder hochsichere Umgebungen
warnung

Wir bieten keine Installations- oder Konfigurationsanleitungen für Load Balancer an, da diese von der Infrastruktur jedes Unternehmens abhängen.

Empfehlungen zur Skalierung​

Horizontale Skalierung ermöglicht es, die Kapazität durch Hinzufügen von Servern zu erhöhen:

  • Beginnen Sie mit 2–3 Servern für grundlegende Ausfallsicherheit
  • Fügen Sie Server schrittweise hinzu, wenn die Last wächst
  • Überwachen Sie die Leistung jedes Servers
  • Halten Sie die Konfigurationen identisch über alle Anwendungsserver hinweg

Einschränkungen​

  • Lizenzierung — Ausfallsicherheit ist mit der Erweiterten Lizenz verfügbar
  • Konfigurationssynchronisation — alle Server müssen dieselben Einstellungen verwenden
  • Datenbank — alle Server verbinden sich mit demselben MongoDB Replica Set