Backstage: So funktionieren unsere Keynote-Ticker
Redaktion Macnotes, den 17. Januar 2008Häufig werden wir gefragt, wie wir eigentlich unsere Keynote-Ticker technisch umsetzen. Im Vergleich zur „iPhone-Keynote“ im Januar 2007 mussten unsere Server am Dienstag immerhin die doppelte Anzahl an Pageloads bewältigen. Für die Technik-Interessierten geben wir einen kleinen Einblick hinter die Kulissen.
Wir haben uns für ein technisch sehr einfaches System entschieden: Die Anforderungen waren und sind seit unserem ersten Liveticker unverändert: Das System muss stabil laufen, einfach und kurzfristig umzusetzen sein, skalierbar sein und uns weder an einen Provider noch an einen Hardwarehersteller binden. Bis heute hat sich unser System bestens bewährt – trotz stetig steigender Zugriffszahlen.
DNS Lastverteilung
Zuerst haben wir die Serverlast für den Ticker reduziert: Statt die Ticker-Seite – wie zum Beispiel mit WordPress – dynamisch bei jedem Aufruf über Templates und die Inhalte aus der Datenbank zu erzeugen, haben wir ein kleines Mini-CMS speziell für diese Anwendung geschrieben: Dieses System schreibt bei jeder neuen Meldung die statische Ticker-Seite neu. Dadurch muss der Webserver nur noch einfache HTML-Dateien ausliefern, es werden für die Auslieferung keine Skripte benötigt.
Dadurch können wir statt Apache den bei statischen Seiten deutlich schnelleren lighttpd als Webserver einsetzen. Ein Server alleine reicht aber inzwischen auch nicht mehr, um die Anfragen während einer Keynote zu bedienen. Das Verteilen der statischen HTML-Seiten auf mehrere Server ist kein Problem: Auf dem Server mit dem Mini-CMS läuft jede Minute ein Skript, dass die geänderten Daten per rsync auf alle Webserver verteilt (spätestens jetzt weiß jeder, warum es nichts bringt manuell öfter Reload zu drücken). Für die Verteilung der Anfragen haben wir uns für die wahrscheinlich älteste Methode zur Lastverteilung entschieden: Round Robin DNS. Zwar ist dieses System im Vergleich zu Hardware-Load-Balancern unflexibel, aber dafür deutlich günstiger.
Um kurzfristig reagieren zu können ist die sog. TTL für die „Haltbarkeit“ der DNS-Einträge sehr kurz gesetzt, so dass wir während des laufenden Tickers, wenn nötig, Server raus- oder zusätzliche Server mit reinnehmen können. Die Verteilung ist bei einer großen Zahl von Zugriffen bei diesem System tatsächlich gleichmäßig, d.h. jeder Server bekommt etwa die gleiche Zahl Anfragen. Um bestehende Leistungsunterschiede zwischen einzelnen Servern auszugleichen, werden stärkere Maschinen entsprechend mehrfach im DNS eingetragen.
Die verwendeten Server können bei diesem System beliebig verteilt werden, sie müssen nicht in einem Netz oder bei einem Provider stehen. Für den Ticker zur Macworld Keynote 2008 haben wir Server von „manitu“ und „LT-ec“ zur Verfügung gestellt bekommen. Dafür bedanken wir uns an dieser Stelle ausdrücklich.
Mit der Auslieferung des Tickers ist es natürlich nicht getan, wichtig sind vor allem die Inhalte. Die holen wir uns bekanntlich direkt vor Ort – dem Keynote-Saal in der dritten Etage des Moscone Centers. Da aber während der Keynotes kein WLAN zur Verfügung steht, müssen wir auf eine Mobilfunkverbindung zurückgreifen. Dabei gehen die Nachrichten auf diesem Weg so schnell wie möglich an die Redaktion – dabei wird nicht auf ausgefeilte Formulierungen und korrekte Rechtschreibung geachtet, darum kümmern wir uns in Deutschland: Hier werden die Informationen ausformuliert und wird dann der Ticker gefüttert. Dieser Weg hat sich für uns als optimaler Kompromiss aus Geschwindigkeit und sprachlicher Finesse herausgestellt.
Dieses Mal wäre die Mobilfunkverbindung fast nicht möglich gewesen – unser Handy verweigerte das Zusammenspiel mit Bluetooth und OS X 10.5.1. Dankenswerterweise half uns Jan Füllmann von Nova Media noch am Abend vor der Keynote mit einer launch2net-Lizenz und seinem privaten Handy aus. Dafür ein großes Dankeschön!