Performance ist (fast) alles
Nicht nur um dem Slogan „Der schnellste Sport im Netz“ von sport1.at gerecht zu werden, waren die Anforderungen an die Performance des Webauftritts hoch:
- Bis zu 1.000.000 Seitenaufrufe (PIs) pro Tag
- Lastspitzen von bis zu 250 PIs/Sekunde bzw. 15 Mbit/Sekunde abends und bei Live-Übertragungen von Sport-Events
- Bis zu 30 parallel einpflegende Redakteure
- Laufender Export von neuen Artikeln für die alternativen Kanäle wie Teletext, SMS und RSS-Feeds
Der Einsatz eines PHP-Optimizer, die Vermeidung von nicht zwischenspeicherbaren Extensions (USER_INT) und die optimale Konfiguration des Caching-Verhaltens von TYPO3 waren nicht ausreichend, um den Anforderungen gerecht zu werden.
Bei „normalen“ Websites sind bis zu 90 Prozent der Inhalte relativ statisch und erlauben ein Caching von bis zu 24 Stunden und mehr. Nicht so jedoch bei einer Website, die zu mehr als 95 Prozent stunden- bzw. minutenaktuelle Information anbietet. Dafür ist eine Cache-Dauer von maximal 60 Sekunden nötig.
Statische Datei-Caches, wie vom TYPO3-Core und von diversen Caching-Extensions angeboten, konnten nicht genutzt werden, da die Aktualisierung von bis zu 30.000 Seiten (100.000 Content-Elemente) zu zeitaufwendig gewesen wäre.
TYPO3 bietet seit Version 3.8 die Möglichkeit, über Cache-Header einen Reverse-Proxy-Server anzusteuern. Dabei werden alle Seitenanfragen zunächst vom Proxy-Server entgegengenommen. Sofern keine neue Version der Seite in TYPO3 vorliegt, liefert der Proxy-Server die vorgehaltene Version an den Client aus. Dieser Mechanismus wurde um zusätzliche Cache-Header erweitert, um zwischen der TYPO3-Cache-Dauer und der Client- bzw. Proxy-Cache-Dauer unterscheiden zu können (Cache-Control: „max-age“ und „expires“). Damit kann die Redaktion fein granuliert die Aktualität aller Inhalte auf Seiten- oder Baumebene bestimmen.
Der große Vorteil dieses Setups ergibt sich aus der automatischen Dynamik der Applikationsnutzung. Nicht oder selten besuchte Inhalte werden fast „ignoriert“, viel besuchte und daher wirklich relevante Seiten hingegen liegen permanent im Cache des Reverse-Proxy (und im TYPO3-Cache) und können daher in wenigen Millisekunden an den Client ausgeliefert werden.






