SIXT setzt beim weltweiten Geschäft auf TYPO3: TYPO3 im internationalen Einsatz
Die Anforderungen
Die unternehmensweite Einführung eines Content Management Systems wie TYPO3 bei Sixt stellt hohe Anforderungen an alle Beteiligten. Schließlich muss das CMS bis zu einer Million Visits pro Tag und einen weltweiten Online-Auftritt in nahezu 30 Sprachen bewältigen.
Daher benötigte SIXT ein CMS, das mehrere Domains in verschiedenen Sprachen abdecken kann. Viele potenzielle Programme scheitern insbesondere an den Anforderungen im Bereich SIXT Franchise, der weltweit mehr als 80 Länder umfasst. Bei SIXT setzt man im Web ausschließlich auf PHP, so dass auch alle Online-Anwendungen in Form von PHP Modulen vorliegen.
Bei der Umstellung auf ein neues CMS stellte sich die Frage, wie ein neues System ohne wesentliche Änderungen an der bestehenden Software am sinnvollsten integriert werden könne.
Eine eigens für die Einbindung der vorhandenen PHP-Anwendungen geschriebene TYPO3-Extension löste dieses Problem mit wenigen Zeilen Code – es waren so gut wie keine Anpassungen an die bestehenden Anwendungen nötig. Des Weiteren bietet TYPO3 eine ausreichend flexible Nutzerverwaltung, so dass die verschiedensten Departments nur auf die ihnen zugewiesenen Seiten Zugriff bekommen konnten. Die Entscheidung für TYPO3 fiel dadurch am Ende nicht schwer.
Das physikalische Backend
Die SIXT Websites werden direkt bei SIXT gehosted. Hohe Performance und eine fast huntertprozentige Verfügbarkeit der Seiten sind ein klares Muss. Die verschiedenen TYPO3-Instanzen laufen daher in einem Cluster-Verbund auf Apache2-Basis. Jede Apache-Cluster-Node muss in der Lage sein, alleine zu funktionieren. Das setzt voraus, dass die einzelnen TYPO3-Installationen sowie die TYPO3-Sources synchron gehalten werden. Diese Synchronität wird über einen einfachen rsync-Befehl sichergestellt, der in regelmäßigen Abständen die Version der Staging-Umgebung mit der Produktions-Umgebung abgleicht.
Als Datenbank diente anfangs eine MySQL-Datenbank unter Verwendung der NDBCLUSTER-Engine.
Da aber alle Inhalte in Form von Cache-Files aus dem Dateisystem gelesen werden, erwies sich eine hochverfügbare Datenbank in der Praxis als überdimensioniert. Als Basis für die Generierung der Cache-Files in der Pre-Production kommt ein MySQL-Server mit INNODB-Engine zum Einsatz.
Auslieferung von vorgenerierten Cache-Dateien
Ein Mittel, um das potenzielle Risiko einer Abhängigkeit zu einem bestimmten Datenbank-System auszuschließen, besteht im Einsatz von vorgenerierten HTML-Seiten. Liegt die gesamte Website einmal in dieser Form vor, kann man für die Auslieferung der einzelnen Seite komplett auf eine Datenbank verzichten.
Auch die TYPO3-Quelldateien werden damit für das Produktions-System überflüssig. Die Auslieferung der Website überzeugt so durch eine hohe Geschwindigkeit, da sie direkt aus dem Filesystem an den Client ausgeliefert wird. Lediglich bei den vorhin erwähnten Business-Modulen ist noch ein Backend für die Verwaltung nötig.
Der Cachebuilder, der bei SIXT zum Einsatz kommt, ist ein proprietäres Modul, welches speziell auf die Anforderungen des Unternehmens zugeschnitten wurde. Dieser ruft – wie die meisten TYPO3-Cachebuilder – jede einzelne Seite einer bestimmten TYPO3-Instanz auf und legt den HTML-Code als HTML-Datei in einem Verzeichnis ab.
Der Cachebuilder wird über die Crontab automatisiert gesteuert und läuft einmal pro Werktag. Diese täglich generierten HTML-Dateien werden ebenfalls einmal werktags mit der Produktion synchronisiert. Dieses Verfahren macht die Skalierbarkeit eines WebClusters zum Kinderspiel, schließlich muss man so nur den Ordner mit den generierten HTML-Dateien auf die Apache-Cluster-Nodes synchronisieren.
Diese Methode des Cachebuildings hat allerdings auch Nachteile: So stößt man hiermit beim Einsatz von Extensions an feste Grenzen, da in diesem Fall meist auch weiterführende TYPO3-Seiten vom Cachebuilder erfasst werden müssen. Auf www.sixt.de kommt beispielsweise unter dem Menüpunkt Topoffer eine Extension zum Einsatz, die sich über mehrere Seiten erstreckt. Diese Folgeseiten zu erfassen und in das Dateisysstem zu schreiben, kann je nach Umfang einer Extension zu einer recht komplexen Aufgabe werden.
Erlaubt es die Anforderung, so kann man aber den gesamten Inhalt gleich in eine Seite schreiben und Information bequem über Javascript ein- oder ausblenden. Somit sind auch solche Seiten in begrenztem Maße „cachebar“. In diesem Fall müssen die Website-Besucher allerdings unbedingt Javascript aktiviert haben.

Über Marker werden alle Logik-Bausteine in Form von eigenständigen PHP-Anwendungen in die vorgenerierten HTML-Dateien eingebunden.
SIXT-Business-Applications
TYPO3 an sich bietet keine fertigen Module für den Bereich Car-Rental oder Leasing. Die vorhin erwähnten eigenständigen SIXT-Business-Module haben deshalb keinen HTML-Header und -Footer, dass sie nahtlos zur Laufzeit in die generierten HTML-Seiten eingebettet werden können.
Neben der Möglichkeit über eine TYPO3-Extension ein SIXT-Business-Modul wie die Online-Reservierung oder die Übersicht der Fahrzeugflotte einbinden zu können, gibt es ein zweites Modell: Das Business-Modul fungiert in diesem Fall als Master und lädt eine generierte HTML-Datei nach.
Dieses Nachladen geschieht im SIXT eigenen PHP-Framework und funktioniert nach einem einfachen Prinzip: Alle Templates, die beispielsweise für den Buchungsprozess nachgeladen werden sollen, müssen im Body-Tag zwei Marker in Form eines HTML-Kommentares besitzen, die der jeweilige Redakteur dort einträgt.
Pro PHP-Modul und Seite erfolgt nun im SIXT-PHP-Framework ein Mapping zu diesen TYPO3-Pages. Die entsprechende Seite wird über file_get_contents() geladen, anhand von Markern wird das Template um die Anwendung gelegt und an den Browser ausgegeben. Das Ergebnis ist ein SIXT-PHP-Modul im Mantel eines vorgenerierten HTML-Templates, dass im Cachebuilder-Prozess aus einer TYPO3-Instanz vorgeneriert wurde.
Mehrere TYPO3-Instanzen parallel
Neben den Domains für die Online-Reservierung gibt es noch weitere Geschäftsbereiche für das Online-Leasinggeschäft und SIXT Holiday Cars, die mit TYPO3 betrieben werden.
Die Verantwortlichen haben sich dagegen entschieden, alle Geschäftsbereiche in einer TYPO3-Instanz zu betreiben – nicht zuletzt, um eine unnötige Komplexität beim Betrieb von TYPO3 zu vermeinden. Nun koexistieren für das Generieren der HTML-Cache-Dateien in der Pre-Production mehrere TYPO3-Instanzen, die allerdings auf dieselben TYPO3-Quellen zugreifen, welche zentral aus einem Repository gespeist werden.
Die Sicht der Redakteure
Jeglicher Content wird auf eigenen TYPO3-Servern gepflegt, die nicht unmittelbar mit der aktuellen Live-Version verbunden sind. Mögliche Fehler während der Eingabe von Inhalten, die bei einer „normalen“ TYPO3-Installation im schlimmsten Fall sofort „live“ sichtbar wären, werden dadurch ausgeschlossen. Die TYPO3-Accounts sind mit dem firmeneigenen LDAP-Server gekoppelt. Die einzelnen Rechte werden je nach Abteilung und Position definiert. Als Oberfläche dient derzeit das klassische TYPO3-Backend.
Fazit
Galt die Eigenprogrammierung mit PHP bei vielen großen Firmen oft als einziger Ausweg aus dem Anforderungsdschungel komplexer Web-Projekte, so lohnt sich heutzutage ein Blick auf fortgeschrittene Content Management Systeme wie TYPO3. Das System ist auf der einen Seite flexibel genug, um es an eigene Bedürfnisse anzupassen, bietet auf der anderen Seite aber auch genügend Out-Of-The-Box-Funktionen, um damit selbst komplexe Webprojekte zu entwickeln und in der Praxis stabil und schnell zu betreiben.
Oft wird man bei der Arbeit mit TYPO3 von vielen Funktionen überrascht. So stellt TYPO3 zum Beispiel im Bereich „Suchmaschinenoptimierung“ mit RealUrl ein mächtiges Werkzeug zur Verfügung. Die entsprechende Fachkenntnis vorausgesetzt, können mit RealURL selbst ausgefallene URL-Schemata modelliert werden, die die Suchmaschinen-Freundlichkeit erheblich steigern. Verbesserungen wären allerdings im Bereich der Oracle-Datenbank-Unterstützung wünschenswert. Hier findet man nur spärliche Informationen, obwohl eine Anbindung an Oracle-Datenbank-Systeme über den Datenbank-Abstraktions-Layer (DBAL) grundsätzlich möglich ist.
Abschließend lässt sich sagen, dass sich TYPO3 bei einem international tätigen und schnell wachsenden Unternehmen wie SIXT trotz komplexer Anforderungen am Ende mit seiner Vielseitigkeit klar bewährt. Die nächsten TYPO3-Projekte sind bereits in Planung.
Hallo,
der Artikel ist sehr interessant, nur kommt für mich nicht klar heraus, ob die ausliefernden Apache-Cluster-Nodes mit einer Typo3-Installation versehen sind oder nicht. Im Laufe des Artikels gibt es diesbezüglich Widersprüche …
Vielleicht kann mich jemand aufklären :-)
Vielen Dank
hallo jan,
jede einzelne node verfügt über eine eigene vollständige typo3 installation, alle seiten würden also auch ohne cached files funktionieren.
viele grüsse,
marco kärger