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