contentXXL in einer Hochverfügbarkeits-Umgebung

Für den erfolgreichen Betrieb von contentXXL in einer Hochverfügbarkeitsumgebung ist eine Reihe von Maßnahmen zu treffen, die hier erläutert werden. Bitte kontaktieren Sie unseren Support für Ihre speziellen Anforderungen.

 

 

Beispielkonfiguration: Mehrere Application-Server erhalten eine identische lokale Kopie der contentXXL-Codebase.

Alle Server greifen auf ein gemeinsames "portaldata"-Verzeichnis (das die Ressourcen und andere kundenspezifische Daten beinhaltet) und eine gemeinsame Datenbank zu.

Sowohl das Dateiverzeichnis als auch die Datenbank werden in einer Hochverfügbarkeits-Umgebung gehalten.

 

Die Application-Server beinhalten keinerlei Anwendungsdaten. Es können zur Laufzeit weitere Server hinzugefügt bzw. ersetzt werden. Hier läuft die Datenbank in einem hochverfügbaren SQL-Server-Cluster. Die Daten des Portaldata-Verzeichnisses werden auf einem sicheren SAN (Storage Area Network) oder NAS (Network Attached Storage) gespeichert. Alternativ sind in Abhängigkeit von den Anforderungen auch Staging Replikationsszenarien denkbar.

Das Caching der dynamisch generierten Seiten erfolgt in jedem Fall lokal auf den jeweiligen Application-Servern. Werden mehrere Webserver mit contentXXL in einer Hochverfügbarkeits-Umgebung betrieben, muss ein sogenanntes “Cross Server Caching" (s.u.) aktiviert werden, um Inkonsistenzen der Caches, z.B. infolge von Inhaltsänderungen, zu vermeiden. Dabei sendet der Server, an dem die Änderung erfolgt, eine Benachrichtigung an die anderen Server, so dass diese von der Änderung informiert sind und entsprechende Maßnahmen ergreifen können.

Hinweis: Für die Synchronisation der Caches ist das Modul "Cache Sync" erforderlich. Die hier beschriebene Variante ist nur eine von vielen Möglichkeiten, die Verfügbarkeit der Anwendung zu erhöhen.

 

Übersicht der Installation

  • Schritt 1: Vorbereitung des IIS Webservers
  • Schritt 2: Anlegen bzw. Wiederherstellen der contentXXL Datenbank in einem SQL-Cluster
  • Schritt 3: Einrichten eines speziellen Benutzers
  • Schritt 4: Anpassen der web.config-Einstellungen auf allen Application-Servern;
  • Schritt 5: Einrichten des freigegebenen "portaldata" Verzeichnisses als virtuelles Verzeichnis auf den IIS;
  • Schritt 6: Einrichten Cross-Server-Caching

 

Schritt 1: Installation auf den Application-Servern wie für „normale” Installationen. Stellen Sie sicher, dass alle Maschinen identisch konfiguriert sind.
Kopieren Sie das „portaldata” Verzeichnis auf Ihr SAN oder NAS Dateisystem.

Schritt 2: Vgl. oben „Wiederherstellen einer contentXXL Datenbank"

Schritt 3: Legen Sie einen speziellen Benutzer in Ihrer Domain an, z.B. „ASPNET”. Dieser Benutzer muss Zugriff auf die folgenden Verzeichnisse haben (alle Rechte müssen auf die Verzeichnisse nach unten vererbt werden):

 

Server

Verzeichnis

Rechte

SAN or NAS

/portaldata

read, write, update

IIS web server

Codebase directory

read

IIS web server

C:\WINDOWS\Microsoft.NET\Fr amework\vx.x.xxxx\

read, write, update

Schritt 4: Passen Sie die web.config auf allen Web Servern wie folgt an (fügen Sie die Schlüssel hinzu, falls noch nicht vorhanden):

<add key="portaldatadir" value="<<UNC-Pfad zum "portaldata"-directory>>" />
<identity impersonate="true" userName="<<Domain\username>>" password="<<userpasswort>>" />

Schritt 5: Richten Sie das „portaldata“ Verzeichnis auf allen Webservern als virtuelles Verzeichnis ein
und verbinden Sie es mit dem verwendeten SAN/NAS System.

Bitte beachten Sie, dass das virtuelle Verzeichnis unter jeder Sprache (z.B. /de /en) eingerichtet werden muss.

Schritt 6: Um Inkonsistenzen der Caches zwischen den verschiedenen Webservern zu vermeiden, muss das sogenannte „Cross-Server Caching” aktiviert werden.

Legen Sie eine Datei „notify.config“ im Wurzelverzeichnis der Anwendung an. Diese Datei wird nur beim Applikationsstart eingelesen, so dass bei jeder Änderung ein Neustart nötig ist. Der Aufbau dieser Datei ist hier beschrieben.

Für alle weiteren Schritte fahren Sie fort wie im Abschnitt „Installation abschließen“ beschrieben.