60 PI/s mit TYPO3
Um die sehr hohen Zugriffszahlen auf tvmovie.de zu ermöglichen, waren ausgefeilte Cachingmechanismen notwendig. Unter anderem werden oft benötigte Seiten als statischer Content generiert und ausgegeben, weil die erhebliche Serverlast bei vollständig dynamischer Ausgabe aus TYPO3 über PHP nicht mit vernünftigem Aufwand realisiert werden könnte.
Die Daten kommen aus mehreren Quellen, unter anderem aus der eigenen Heftredaktion und aus den Datenbanken von kino.de. Die zu verarbeitenden Datenmengen sind enorm, die Größenordnung liegt im Bereich von etwa 100 Tabellen mit zum Teil rund fünf Millionen Datensätzen. Als Datenbank wurde MySQL eingesetzt. Eine besondere Herausforderung war die Verarbeitung der umfangreichen Bestandsdaten, die sich während der Arbeit zudem laufend veränderten.
Die Ausgangssituation
Die ursprüngliche Webpräsenz von tvmovie.de war seit 1999 online und basierte technologisch auf Servlets und Jserv. Es handelte sich um eine eigene Lösung und Entwicklung mit einem Backend, das starke Ähnlichkeit zu phpMyAdmin aufwies.
Aus Sicht des Heinrich Bauer Programmzeitschriften Verlags sollte die Neukonzeption zu mehr Flexibilität intern wie extern, zur Umstellung auf bewährte und standardisierte Programmierungen und zu einer zeitgemäßen, modernen Benutzeroberfläche führen.
Das Backend sollte für die Abbildung redaktioneller Arbeitsabläufe besser angepasst und die Performance gesteigert werden. Zudem war es wichtig, bestehende Datenbankstrukturen möglichst unverändert übernehmen zu können.
Die beeindruckenden Eckdaten kurz angerissen: |
|
Die Entscheidung für TYPO3 brachte für den Kunden nicht nur eine erhebliche Ersparnis bei der Lizenzierung, sondern sorgte auch für niedrige Kosten bei der eigentlichen Implementierung. Das gesamte Projekt konnte in nur vier Monaten und zu Kosten realisiert werden, die bei den üblichen kostenpflichtigen Content Management Systemen allein für Lizenzen fällig werden.
Neben der schnellen Umsetzbarkeit des Projekts, der hohen Flexibilität bei spezieller Programmierung und der kundenspezifischen Erweiterungen konnte zusätzlich die Performance durch Optimierung der Cachingmechanismen gesteigert werden.
Die sichere und schnelle Auslieferung der Daten auch zu Spitzenlastzeiten mit 60 Page Impessions pro Sekunde ist auf relativ günstiger Standardhardware (SUN) sichergestellt. Die Umgebung besteht aus einem Loadbalancer, zwei Webservern und zwei Datenbankservern.
Bei der Software wurde auf stabile Versionen zurückgegriffen: Solaris 10 (auf Sun Opterons), Apache 1.3, PHP 5, MySQL 4.1 und TYPO3 3.8.1. Die TYPO3-Funktionalitäten wurden durch rund 150 eigenentwickelte Module erweitert.
Wenn es schnell gehen soll: Cachingmechanismen
Eines der größten Bedenken zu Beginn des Projektes war die erforderliche Systemperformance und die dazu notwendige Serverleistung. Zwar lässt sich mit entsprechender Hardware vieles machen, aber nicht mit begrenztem Budget. Um mit relativ kleinem Hardwareaufwand eine hohe Systemleistung zu erreichen, wurde ein mehrstufiges Cachingkonzept entwickelt und umgesetzt. Die langjährigen Erfahrungen von Metaways Infosystems im Bereich Hosting und Serveradministration kamen dem Projekt dabei sehr zu Gute. Die ursprünglichen Annahmen in Bezug auf Serverlast zu Spitzenzeiten waren zu niedrig angesetzt, die tatsächlichen Zugriffszahlen liegen im Bereich des Dreifachen des ursprünglich Erwarteten – dank der guten Konzeption schließlich kein Problem.
Eines der Probleme bei TYPO3 ist die zeitaufwändige dynamische Ausgabe aller Inhalte über PHP. Um diese Last zu reduzieren, wird nach festen Regeln ein Teil der am häufigsten aufgerufenen Seiten als statische Seiten generiert und nicht dynamisch erzeugt. PHP selbst wurde ebenfalls beschleunigt, in diesem Fall durch Verwendung von e-Accelerator. Seiten, die ohne POST/GET-Parameter aufgerufen werden, werden einmal generiert und anschließend immer wieder direkt aus dem Cachefile gelesen. Dies minimiert den PHP-Overhead und die Last auf die Datenbank.
Die HTML-Ausgabe jedes einzelnen Moduls wird in einem Filecache gespeichert. Die Gültigkeitsdauer wird im Modul selbst festgelegt. Aufwändige Datenbankabfragen können so reduziert werden. Bilder, CSS- und Flashdateien werden von einem Squid-Server ausgeliefert, um die Apache-Prozesse zu entlasten. Der TYPO3-Cache speichert den Seitenaufbau und die Ausgabe Cache-fähiger Elemente in einer Datenbanktabelle.
Gute Argumente für TYPO3 aus Entscheidersicht: |
Standardisierte und offene Lösung, gute Erweiterbarkeit durch eigene Module, kostengünstig. |
Aus Entwicklersicht: |
Gute Dokumentation, aktive Entwicklergemeinde, umfangreiche und gute Erfahrungen mit dem System, komplette Trennung von Layout und Inhalten |
Aus Administratorensicht: |
Skalierbarkeit, Systemtrennung (Datenbank, Redaktion, Webserver), einsetzbar auf Unix- und Windows-System, einsetzbar auf dem bereits vorhandenen Unix-System |
Die Vorteile für die Besucher von tvmovie.de: |
Besserer EPG (z. B. Programmübersicht), übersichtlichere Navigation/Seitenstruktur, wichtige Informationen auf einen Blick (z. B. Stars oder News zu einem Film in der Detailansicht), generell optisch ansprechender und übersichtlicher, bessere Qualität der Bilder, aktuelle Trailer im Kino und DVD-Bereich |
Vorteile für den Verlag: |
Zeitgemäßer Internetauftritt (z. B. Layout), flexiblere Platzierung von Werbung, mehr Werbeplätze auf der Seite, bessere Struktur (Pflege stark vereinfacht), klare Trennung für Redakteur/Chefredakteur/Administrator |
Redaktionssystem und Workflows
Die in TYPO3 vorhandenen Möglichkeiten zur Abwicklung redaktioneller Vorgänge wurden erst mit der neuen Version 4 stabil genug. Aus diesem Grund fiel die Entscheidung, Abnahmen und Veröffentlichungen vollkommen anders zu handhaben. Konkret existieren zwei Umgebungen: In einer werden die neuen Seiten oder Änderungen erarbeitet, die andere ist öffentlich erreichbar.
Änderungen werden also zuerst auf einem internen System umgesetzt und getestet und erst nach der redaktionellen Freigabe in die Liveumgebung eingespielt – von einzelnen Seiten bis zu einem kompletten Update aller Daten ist auf diese Weise im Prinzip alles möglich.
Fazit
Die Entscheidung für TYPO3 führte zu einem sehr flexiblen und leicht erweiterungsfähigen System. Durch klare Modularisierung wird auch die weitere Wartung und Erweiterung sichergestellt. TYPO3 hat in der Praxis die Eignung für hochfrequentierte Systeme mit starken Lastspitzen bewiesen. Durch die mehrstufige Optimierung bleiben die Antwortzeiten schnell und die Verfügbarkeit des Systems optimal.
Die langjährige Erfahrung im Serverbereich kam Metaways Infosystems bei dem Projekt sehr zugute, ebenso wie die mehrjährigen Erfahrungen bei der Implementierung von Websites in TYPO3. Das Projekt zeigt, dass es möglich ist, mit den richtigen Optimierungen TYPO3 für stark frequentierte Websites einzusetzen. Webauftritte mit individuellen Daten aus vorhandenen Datenbanken lassen sich hervorragend über die TYPO3-eigene Extension-Schnittstelle migrieren.
Eines von den über 150 für dieses Projekt entwickelten Erweiterungen und Modulen wird in TYPO3 als freie Software zurückfließen: „Imagemap“, eine Erweiterung für TYPO3, mit der sich interaktiv Bereiche von Bildern mit Links versehen lassen. Die Freigabe weiterer Plugins ist für die Zukunft geplant, um auch aktiv zur Verbesserung von TYPO3 beizutragen und der Entwicklergemeinde etwas zurückzugeben.