Load Balancing


Diese Anleitung richtet sich an Systemadministratoren und IT-Profis von DocuWare On-Premises-Installationen. Sie fasst die wichtigsten Punkte für die Konfiguration und Wartung eines Load Balancers in einem lokal installierten DocuWare System zusammen.

Wann kommt ein Load Balancer zum Einsatz?

Das DocuWare System ist variabel skalierbar und kann auf unterschiedlichste Anforderungen ausgerichtet werden. Die fünf grundlegenden Skalierungsformen, ihre Komponenten und Lizenzen sind ausführlich im White Paper Oo-Premises – Systemarchitektur beschrieben.

Generell gilt: Sobald für eine DocuWare Installation mehrere Frontend-Server zum Einsatz kommen, wird dem System ein Load Balancer vorgeschaltet. Dies ist bei den Skalierungsformen M-XL der Fall.

Ein Load Balancer verteilt den Datenverkehr der Clients je nach Auslastung auf die Server.

Hinweise zur Installation von DocuWare auf mehreren Servern

Um ein DocuWare System mit mehreren Servern zu installieren, führen Sie zunächst das DocuWare Setup auf jedem Serverrechner aus.

Legen Sie dabei eine Rolle für jeden Server fest, wie in der Hilfe zum DocuWare Setup beschrieben. Beachten Sie dabei die Anforderungen des gewählten Skalierungsmodells.

  • Frontend-Rolle: Frontend-Server stellen Dienste für Clients und Benutzer zur Verfügung. Dies umfasst Web Client, Platform Services und DocuWare Konfiguration.

  • Backend-Rolle: Backend-Server stellen Dienste für die Hintergrundverarbeitung zur Verfügung, z.B. für Workflows, Prozesse und Mail-Erfassung.

  • Volltext-Rolle: Volltext-Server stellen Dienste für die Volltextverarbeitung zur Verfügung.

Sobald eine Installation mit mehrern Frontend-Servern verwendet wird, muss ein Load Balancer zum Einsatz kommen.

Alle Auhentication Server laufen im lokalen Modus (Local Mode). Es findet keine weitere Inter-Maschinen-Kommunikation statt. Dadurch laufen die Server unabhängig voneinander und können auch getrennt neu gestartet werden.

Der lokale Modus ist standardmäßig aktiviert. Dies können Sie in der Konfigurationsdatei jedes Authentication Servers im Element AuthenticationServerSettings verifizieren. Die Einstellung für den lokalen Modus ist true:

<DWConfig>

<AuthenticationServerSettings LocalServersOnly="true" />

</DWConfig>

Application Initialization im IIS

Wechseln Sie auf allen DocuWare Servern mit einer Frontend-Rolle zur Funktion Anwendungsintialisierung im IIS Frontend-Service System. Mit der Anwendungsinitialisierung lassen sich lange Wartezeigen beim Laden der Anwendungen vermeiden.

Beim DocuWare Setup hatten Sie bereits im IIS die Webseite festgelegt, unter der DocuWare installiert wird. Damit die Anwendungsinitialisierung greifen kann, passen Sie den IIS-Anwendungspool auf allen Frontend-Servern für diese Webseite an.

Verwenden Sie dazu die folgenden Befehle:

  • "%windir%\system32\inetsrv\appcmd.exe" set app /app.name:"Default Web Site/DocuWare/Platform" /serviceAutoStartEnabled:True /serviceAutoStartProvider:Service /preloadEnabled:True

  • "%windir%\system32\inetsrv\appcmd.exe" set config "Default Web Site/DocuWare/Platform" -section:system.webServer/applicationInitialization /doAppInitAfterRestart:"True" /skipManagedModules:"True"

  • "%windir%\system32\inetsrv\appcmd.exe" set config "Default Web Site/DocuWare/Platform" -section:system.webServer/applicationInitialization /+"[initializationPage='Home/Xsl',hostName='localhost']"

Bei einem größeren Update wie zum Beispiel von DocuWare Version 7.7 auf 7.8 wird der Anwendungspool gelöscht. In diesem Fall müssen Sie die oben genannten Befehle erneut ausführen – siehe dazu auch das Kapitel Wartung.

Checkliste für die Einrichtung eines Load Balancers

Verwenden Sie für Load Balancing in DocuWare nach Möglichkeit die Variante Layer 7 mit Webserver und Application Request Routing (ARR).

Bei ARR handelt es sich um ein Modul der Internet Information Services (IIS) von Microsoft, das separat installiert und dem DocuWare System vorgeschaltet wird. Das ARR-Modul agiert als Reverse Proxy, bzw. Load Balancer und verteilt HTTP Anfragen auf den dahinterliegenden Applikationsservern.

Load Balancing in DocuWare ist ebenfalls mit Layer 4 möglich. Diese Variante wird jedoch nicht vom DocuWare Support abgedeckt.

Folgende Möglichkeiten muss ein für DocuWare eingesetzter Load Balancer bieten, um einen reibungslosen Ablauf zu gewährleisten:

  • Sitzungsaffinität (session affinity)
    Eine bestehende Client Sitzung muss stets demselben Server zugeordnet werden. Dazu werden entweder die Verbindungen eines Clients über die IP-Adresse auf immer denselben Server geleitet, oder der Load Balancer muss fähig sein, Cookies zu setzen, und diese für die Vermittlung des Datenverkehrs zu extrahieren und auszuwerten.

  • WebSocket Transportprotokoll
    Der Load Balancer muss dieses Protokoll unterstützen. Das WebSocketTransportprotokoll ist ein Features der IIS Rolle.

  • Host-Adresse beibehalten
    Ist ein Load Balancer dem DocuWare System vorgeschaltet, kommuniziert der Client nicht direkt mit DocuWare. Der Load Balancer muss so konfiguriert werden, dass die DocuWare Adresse bei einer Abfrage an DocuWare mitgegeben wird. Dies wird üblicherweise über einen Header, der die ursprüngliche Hostadresse (DocuWare URL) enthält, umgesetzt.

  • Client Protokoll beibehalten
    Bei Verwendung von SSL-Offloading im Load Balancer kommuniziert der Load Balancer mit dem DocuWare Server über HTTP. Der Load Balancer muss so konfiguriert werden, dass er das Client-Protokoll (HTTPS) beibehält. Dies geschieht in der Regel über einen X-Forwarded-Proto-Header, der das ursprünglich verwendete Protokoll (HTTPS) enthält.

  • Einheitliche Ports verwenden
    Wenn im Netzwerk verschiedene Endpunkte miteinander kommunizieren sollen, wie zum Beispiel Load Balancer, Firewall und DocuWare, müssen Sie sicherstellen, dass alle Endpunkte die gleichen Ports verwenden.
    Eine Ausnahme bildet die SSL-Auslagerung, für die der Port von 443 im Load Balancer auf 80 im DocuWare Frontend wechselt.
    Hier finden Sie eine Übersicht der in DocuWare verwendeten Ports:

Viele Load Balancer bieten zudem weitere Features, wie SSL-Offloading oder Verfügbarkeitstests. Ob diese verwendet werden, liegt im Ermessen der Unternehmens-IT. Für DocuWare sind sie nicht zwingend erforderlich:

  • SSL Offloading
    Bei diesem Prozess wird die SSL-basierte Verbindung des Clients auf dem Load Balancer terminiert. Der Load Balancer kommuniziert über HTTP mit den Frontend-Servern, so dass die Ent- und Verschlüsselung von den Frontend-Servern auf den Load Balancer ausgelagert wird. SSL Offloading kann auf dem Load Balancer konfiguriert und verwendet werden.

  • Health URL Test
    Der Load Balancer überprüft regelmäßig, ob die Frontend-Server verfügbar sind und antworten – zum Beispiel über eine solche URL http://<LoadbalancerFQDN>/DocuWare/Platform/Home.
    Auf diese Weise bemerkt der Load Balancer einen Ausfall rechtzeitig und leitet den Traffic auf die "gesunden" Server um.

  • Health Live Traffic Test
    Dieser Test überwacht den aktuellen Datenverkehr. Dies kann sich jedoch negativ auf die Performance auswirken. Wir empfehlen deshalb, den Health Live Traffic Test nur zu verwenden, wenn ein akutes Problem vorliegt und auch dann nur in Verbindung mit dem Health URL Test.
    Aber welche Tests zur Ausfallsicherheit letztlich zum Einsatz kommen, fällt in den Bereich der IT-Abteilung der Unternehmen.

Einstellungen in DocuWare für Load Balancing

Damit das Load Balancing optimal funktioniert, sind folgende Einstellungen in DocuWare erforderlich:

  • Machine Keys der Frontend-Webanwendungen anpassen
    Alle DocuWare Server mit Frontend-Rolle müssen für die Webanwendungen DocuWare Forms, DocuWare Platform und Search / Service gleiche Machine Keys verwenden. Andernfalls können Cookies, die auf einem Server erstellt wurden, nicht auf einem anderen Server verwendet werden.
    Passen Sie dafür die Machine Keys in den web.config-Dateien der drei genannten Anwendungen an.

  • Load Balancer als Webverbindung konfigurieren
    Aus Sicherheitsgründen akzeptiert DocuWare nur Adressen, die als Webverbindung eingetragen sind. Geben Sie deshalb die Adresse vom Load Balancer in der DocuWare Administration unter Web Connection > HTTP Root ein.

  • Lokalen Rechnernamen überprüfen
    Um eine reibungslose Kommunikation der DocuWare Dienste zu gewährleisten, prüfen Sie, dass auf allen Frontend-Servern in der Datei dwmachine.config der jeweils lokale Rechername angegeben ist.
    Die Textdatei dwmachine.config finden Sie in folgendem Pfad: %AllUsersProfile%\DocuWare\ServerConfig. Der Rechnername ist in der Zeile LocalWebServices angegeben.
    Wenn jedoch für Load Balancing mehrere Server verwendet werden, dann muss die öffentliche Adresse des Load Balancer Clusters an dieser Stelle in die dwmachine.config eingetragen werden. Stellen Sie in diesem Fall sicher, dass alle Frontend Server innerhalb des Netzwerks diese Adresse erreichen können.

Generelle Hinweise:

  • SSL/TLS
    Verschlüsseln Sie in Ihrer On-Premises-Installation den gesamten HTTP-Verkehr mit SSL/TLS. Seit DocuWare Version 7.6 ist die Nutzung von SSL/TLS Pflicht. Lesen Sie hier, wie Sie ein SSL-Zertifikat in DocuWare installieren.

  • Azure Message Bus
    Wenn Sie Azure als Hoster verwenden, finden Sie hier eine Anleitung, wie Sie DocuWare für den Azure Service Bus konfigurieren.

Wartung eines DocuWare Systems mit Load Balancing

Die Wartung eines DocuWare Systems mit Load Balancing unterscheidet sich nicht grundsätzlich von der Pflege anderer Produktivsysteme. Folgende Punkte sind jedoch besonders wichtig:

Anpassungen nach einem DocuWare Update

Nach einem größeren DocuWare Update wie zum Beispiel von Version 7.8 auf 7.9 ist an zwei Stellen eine Anpassung Ihrer DocuWare Installation erforderlich:

  1. Erneuern Sie für Ihre Frontend-Server die Einstellungen für Ihren Anwendungspool im ISS.

  2. Ein größeres Update überschreibt die web.config-Datei. Setzen Sie deshalb auf allen aktualisierten Servern die Machine Keys erneut. Dabei müssen alle Server mit Frontend-Rollen identische Keys verwenden.
    Zudem sollten Sie die gleichen Keys wie vor dem Update verwenden, damit die Sitzungen, die vor dem Update gestartet wurden, weiterhin aktiv bleiben können.
    Die bisherigen Keys werden nach einem Update in diesem Ordner vorgehalten: "%AllUsersProfile%\DocuWare\ConfigBackup\"

Datenbanken und Backup

Die Stabilität von DocuWare hängt unter anderem von der Integrität und der Verfügbarkeit der Datenbanken ab. Sorgen Sie deshalb für ein regelmäßiges Backup.

Es gibt keinen DocuWare Mechnismus, der die Datenbanken und Speicherorte automatisch sichert. Die Sicherung der DocuWare Datenbanken und Speicherorte ist in der Verantwortung der Unternehmens-IT. Mehr zur Sicherung von Datenbanken, der Dokumente und Speicherorte sowie der Volltextdaten finden Sie im White Paper On-Premises - Kapitel Datensicherung.

Verwenden Sie für die Server Ihrer DocuWare Datenbanken zudem Datenbankindizes, um gerade bei komplexen DocuWare Installationen die Schnelligkeit bei Abfragen zu steigern. Wie Indizes eingesetzt werden, hängt von der jeweiligen IT-Infrastruktur ab und fällt ebenfalls in die Zuständigkeit der Unternehmens-IT.