Im Jahr 2023 konnten beim Eurovision Song Contest (ESC) erstmals auch nicht teilnehmende Länder ein Votum für ihre Favoriten abgeben. Somit kamen zu der ohnehin beeindrucken Zahl von 162 Millionen Zuschauern aus den Teilnehmerländern noch mehrere Millionen weitere Zuschauer und Abstimmende hinzu. Das machte den Musikwettbewerb zu einem wahrhaft internationalen Ereignis, bei dem aber auch verschiedenste Störungen drohten. Zur bestmöglichen Vorbereitung der Veranstaltung half Cloudflare bei der Skalierung und dem Schutz der für das Voting eingesetzten Applikation, mit der Millionen engagierter Fans auf der ganzen Welt die Gewinnerin oder den Gewinner wählen.
In diesem Blog-Beitrag wird beschrieben, wie once.net die Plattform based.io zur Überwachung, Verwaltung und Skalierung der Applikation für die Eurovision-Abstimmung so aufgebaut hat, dass mithilfe zahlreicher Cloudflare-Dienste der gesamte Traffic während des Großereignisses geschultert werden konnte. Dank der hohen Geschwindigkeit, mit der die über die Cloudflare-API vorgenommenen DNS-Änderungen weltweit übernommen wurden, konnte die Firma ihr Backend binnen weniger Sekunden skalieren. Gleichzeitig war Cloudflare Pages in der Lage, jede beliebige Menge an Traffic zur Abstimmungsstartseite weiterzuleiten, sodass die Fans nichts verpassten. Dank des Zusammenspiels des CDN, des DDoS-Schutzes, der WAF und der Lösung Turnstile von Cloudflare wurde sichergestellt, dass Angreifer den Interpreten nicht die Show stehlen konnten.
Stille Helden
Based.io ist eine robuste, vom once.net-Team entwickelte Livedaten-Plattform, die auf bis zu 400 Millionen gleichzeitig verbundene Nutzer skaliert werden kann. Sie ist von vornherein auf Geschwindigkeit und Performance ausgelegt und bietet eine beobachtbare Echtzeit-Graphdatenbank, eine Netzwerkebene, Cloud-Funktionen, Analysen und Infrastruktur-Orchestrierung. Da alle Systeminformationen, Trafficanalysen und Störungen in Echtzeit überwacht werden, kann die Plattform sofort auf Veränderungen bei der Nachfrage reagieren. Das erlaubt eine Skalierung der Infrastruktur in Echtzeit bei Datenverkehrsspitzen, Ausfällen und Angriffen.
Obwohl sich die based.io-Plattform noch in der Closed Beta-Phase befindet, wird sie mit Unterstützung der Software und der Dienste des once.net-Teams bereits von einigen ausgewählten Kunden im laufenden Betrieb eingesetzt. Einer dieser Kunden ist Tally, eine Plattform, die von mehreren Rundfunkanstalten in Europa genutzt wird, um traditionelles Fernsehen um Live-Interaktionen zu ergänzen. Mithilfe der Plattform wurden schon mehr als 100 Liveshows über die Bühne gebracht. Ein anderer Kunde ist Airhub, ein Start-up, das automatische Drohnenflüge ermöglicht und protokolliert. Last, but not least der Star dieses Blog-Beitrags: der Eurovision Song Contest.
Bühne frei
Der ESC ist einer der weltweit am häufigsten übertragenen Wettbewerbe und erreichte in diesem Jahr 162 Millionen Menschen in 38 Ländern, in denen er ausgestrahlt wurde. Darüber hinaus wurden die drei Liveshows auf TikTok 4,8 Millionen Mal angesehen, während 7,6 Millionen Menschen das Finale live auf YouTube verfolgten. Bei einer solchen Zuschauerzahl ist es nicht verwunderlich, dass ein Effekt im Internet sichtbar wird. Schon im vergangenen Jahr haben wir in einem Blog-Beitrag von einem unterdurchschnittlichen Trafficaufkommen während des Finales und überdurchschnittlich hohem Datenverkehr im direkten Anschluss an das Event berichtet. 2023 fiel der Anstieg des Traffics der Teilnehmerländer sogar noch stärker aus:
HTTP-Anfragen pro Sekunde aus Norwegen; ein ähnliches Muster war unter anderem für Großbritannien, Schweden und Frankreich zu beobachten Seinen Höhepunkt erreichte der Internettraffic um 23:20 Uhr MESZ, also zu Beginn der Abstimmung.
Dass rund um den ESC ein gewaltiges Trafficaufkommen verzeichnet wird, ist nichts Neues. Die Veranstalter greifen nun schon seit mehr als zehn Jahren auf Cloudflare zurück. So haben wir dabei geholfen, Eurovision.tv zu schützen und die Performance der Seite durch deutlich kürzere Ladezeiten für Besucher aus der ganzen Welt zu verbessern. Mit der Zeit hat das Eurovision-Team unsere Dienste stärker in Anspruch genommen und zusätzliche Funktionen für sich entdeckt, um die Leistung und Zuverlässigkeit der Seite weiter zu verbessern und den Datenverkehr immer präziser zu steuern. Page Rules wurde zur Zwischenspeicherung zusätzlicher Inhalte an der Cloudflare-Edge eingesetzt. So konnte die Bereitstellung beschleunigt werden, ohne während des internationalen Ereignisses auf minutengenaue Updates verzichten zu müssen. Um das Backend und das Content Management System (CDN) zu schützen, hat das Team außerdem Cloudflare Zero Trust seinen Administrationsportale vorgeschaltet, sodass Verantwortlichkeiten bis auf die einzelnen Ebenen hinunter delegiert werden konnten.
In dieser Zeit hat sich auch der ESC selbst weiterentwickelt – manchmal aus freien Stücken, teilweise aber auch gezwungenermaßen. Während der Covid-19-Pandemie etwa konnten viele Fans ihre Favoriten nicht mehr persönlich beklatschen, weil vor Ort wegen der Kontaktbeschränkungen die Zahl der Zuschauer stark eingeschränkt wurde. Deshalb wurde once.net von den Veranstaltern des ESC gebeten, eine neue iOS- und Android-Anwendung zu entwickeln, mit der Fans ihre Bands virtuell anfeuern konnten. Die Funktion war ein sofortiger Erfolg, weshalb klar war, dass sie auch dieses Jahr wieder zum Einsatz kommen würde.
Ein Screenshot der offiziellen ESC-Applikation, die die Anzahl der in Echtzeit verbundenen Fans anzeigt (1) und es ihnen ermöglicht, ihre Favoriten anzufeuern (2)
2023 wurde once.net auch gebeten, die Abwicklung der kostenpflichtigen Abstimmung in den Weltregionen zu übernehmen, in denen ein Votum per Telefon und SMS nicht möglich war. Es war das erste Mal, dass beim ESC auch online abgestimmt werden konnte. Dabei stellte die extrem hohe Nachfrage auf der Plattform während der Liveshow und insbesondere ab Beginn des Abstimmungszeitraums eine Herausforderung dar.
Erschwerend kam noch hinzu, dass es letztes Jahr während der Show zu einer großen Zahl gezielter und koordinierter Angriffe gekommen war.
Um für diese Nachfragespitzen und entschlossenen Angreifer gerüstet zu sein, benötigte once.net eine Lösung, die nicht nur widerstandsfähig und in hohem Maße skalierbar ist, sondern auch eine vorgeschaltete Abwehr zu bieten hat. once.net wählte uns dafür aus und integrierte Cloudflare tief in die eigene Echtzeit-Überwachungs- und Verwaltungsplattform. Um die Hintergründe zu verstehen, ist es wichtig, eine Vorstellung von der zugrunde liegenden Architektur von based.io zu haben.
Die based.io-Plattform
Anstatt auf eine Netzwerk- oder HTTP-Lastverteilung zurückzugreifen, setzt based.io auf ein clientseitiges Service-Erkennungsmuster, anhand dessen der am besten geeignete Server für die Verbindung ausgewählt wird und das die schnelle Cache-Propagation-Infrastruktur von Cloudflare nutzt, um einen sprunghaften Anstieg von (bös- und gutartigem) Traffic zu bewältigen.
Zunächst registriert jeder Server fortlaufend einen eindeutigen Zugriffsschlüssel mit einer Gültigkeitsdauer von 15 Sekunden, der verwendet werden muss, wenn sich ein Client mit dem Server verbindet. Darüber hinaus melden die Backend-Server alle 300 Millisekunden ihren Status (was unter anderem aktive Verbindungen, CPU- und Speicherauslastung sowie Anfragen pro Sekunde umfasst) an die Registry des Diensts. Die Clients fordern dann die optimale Server-URL und den zugehörigen Zugriffsschlüssel von einer zentralen Discovery Registry an und stellen eine dauerhafte Verbindung zu diesem Server her. Ist ein Server überlastet, trennt er die Verbindung zu einer bestimmten Zahl von Clients, woraufhin diese den Erkennungsprozess erneut durchlaufen.
Normalerweise wäre die zentrale Discovery Registry einerseits ein erhebliches Nadelöhr und andererseits ein Angriffsziel. Doch based.io löst dieses Problem, indem der Registry das weltumspannende Netzwerk von Cloudflare mit einer Caching-Dauer von drei Sekunden vorgeschaltet wird. Da das System zur Lastverteilung Echtzeit-Daten und kurzlebige Zugriffsschlüssel verwendet, muss der Zwischenspeicher unbedingt schnell und zuverlässig aktualisiert werden. Hier hat sich die Infrastruktur von Cloudflare bewährt – sowohl aufgrund eines schnell aktualisierten Cache als auch aufgrund einer Verringerung der Arbeitslast dank Tiered Caching.
Der Verzicht auf Lastverteilung bedeutet, dass das based.io-System es den Clients erlaubt, sich über Cloudflare mit den Backend-Servern zu verbinden. Die Folge sind eine höhere Performance und eine robustere Infrastruktur, weil die Load Balancer als potenzielles Angriffsziel wegfallen. Außerdem können die Echtzeit-Informationen über den Zustand der Server, die Zahl der aktiven Verbindungen und die freigeschalteten Abonnements genutzt werden, um die Verbindungen besser zu verteilen.
Die Skalierung der Plattform erfolgt bei erhöhter Beanspruchung automatisch durch die Bereitstellung zusätzlicher Rechner, von denen jede 40.000 verbundene Nutzer bewältigen kann. Die Maschinen werden in Gruppen von ein paar Hundert hochgefahren. Jede Maschine greift beim Hochfahren direkt auf die Cloudflare-API zu, um ihren eigenen DNS-Eintrag und Proxy-Status zu konfigurieren. Dank des extrem schnell arbeitenden DNS-Systems von Cloudflare werden diese Änderungen dann innerhalb von Sekunden weltweit übernommen. Deshalb dauert das Hochfahren der Maschinen insgesamt nur etwa drei Sekunden. Das erlaubt eine schnellere Erkennung neuer Server und eine raschere dynamische Umverteilung der Clients. Denn da beim ESC für die Stimmabgabe nur ein Zeitfenster von 45 Minuten vorgesehen ist und der größte Ansturm wenige Minuten nach Abstimmungsbeginn erfolgt, zählt jede Sekunde!
Architektur der für den ESC 2023 genutzten based.io-Plattform (vereinfachte Darstellung)
Zur Stimmabgabe wurden die Nutzer der Mobilgeräte-App und die Zuschauer weltweit auf die Abstimmungsseite esc.vote geleitet. Die Entwicklung einer Frontend-Webanwendung, die eine solche Publikumsmenge bewältigen kann, ist an sich schon eine Herausforderung. Auf den ersten Blick erscheint es vielleicht einfach, die Applikation selbst zu hosten und ein CDN vorzuschalten. Doch dafür muss man über seine eigene Infrastruktur verfügen, diese konfigurieren und verwalten. once.net entschied sich dafür, die Infrastruktur von Cloudflare direkt zu nutzen und die Startseite für die Abstimmung auf Cloudflare Pages zu hosten. Für die Bereitstellung genügte ein Commit-Befehl an das Git-Repository; um die Erreichbarkeit oder Skalierung der Webseite musste man sich nicht kümmern.
Darüber hinaus nutzte once.net Cloudflare Turnstile zum Schutz der API-Zahlungsendpunkte, über die online abgegebene Stimmen validiert wurden. Dabei wurde mit dem unsichtbaren Turnstile-Widget sichergestellt, dass die Anfrage nicht von emulierten Browsern (z. B. Selenium) kam. Das Beste daran: Durch die Verwendung des unsichtbaren Turnstile-Widgets waren für die User keine zusätzlichen Schritte erforderlich, was die Nutzererfahrung verbesserte und eine höhere Konversionsrate ermöglichte.
Cloudflare Pages stiehlt allen die Show!
Nachdem die beiden Halbfinale mit jeweils etwa 200.000 gleichzeitig verbundenen Nutzern planmäßig verlaufen waren, fand am 13. Mai das Finale statt. Das Team von once.net stellte sicher, dass genügend Rechner zur Bewältigung der anfänglichen Arbeitslast zur Verfügung standen, stand zur Überwachung des Geschehens telefonisch mit Cloudflare in Kontakt und beobachtete, wie die Zahl der gleichzeitig verbundenen Nutzer langsam anstieg. Während der Veranstaltung gab es ein paar DDoS-Angriffsversuche, die jedoch ohne merkliche Beeinträchtigung der Besucher automatisch und unverzüglich abgewehrt werden konnten.
Dem Discovery Registry-Server von based.io wurde ebenfalls eine gewisse Aufmerksamkeit zuteil. Da die Caching-Dauer mit fünf Sekunden recht niedrig angesetzt war, konnte eine große Menge an verteiltem Datenverkehr eine erhebliche Beanspruchung darstellen. Glücklicherweise kann der hochgradig optimierte based.io-Server allein bereits rund 300.000 Anfragen pro Sekunde bewältigen. Trotzdem war es erfreulich, dass sich die Cache-Trefferquote während der Veranstaltung bei normalem Datenverkehr im Bereich von 20 % bewegte und während eines signifikanten Angriffs bei etwa 80 % ihren Spitzenwert erreichte. Das zeigt, wie leicht durch den gemeinsamen Einsatz des CDN und des DDoS-Schutzes von Cloudflare solche Angriffe abgewehrt und gleichzeitig dynamische Echtzeit-Inhalte bereitgestellt werden können.
Bis der letzte Vorhang fiel, waren während des höchsten Andrangs 1,3 Millionen Nutzer gleichzeitig mit der based.io Plattform verbunden. Die based.io-Plattform konnte in drei Stunden insgesamt 350 Millionen Ereignisse und sieben Millionen Unique User bewältigen. Die von Cloudflare Pages gehostete Startseite für die Abstimmung bearbeitete zu Spitzenzeiten 2,3 Millionen Anfragen pro Sekunde und stellte mithilfe von Turnstile sicher, dass die Voting-Zahlungen auch wirklich menschlichen Ursprungs waren. Die Cloudflare-Plattform wurde von dieser Datenflut in keinster Weise ins Wanken gebracht. Es ist jedoch wenig überraschend, dass sie in unseren Trafficstatistiken als kurzes Gastspiel auftauchte.
Nehmen Sie Kontakt mit uns auf
Falls Sie auch an oder mit einer Anwendung arbeiten, die von der von Cloudflare gebotenen Geschwindigkeit und Sicherheit profitieren würde, und nicht wissen, wo Sie anfangen sollen, setzten Sie sich einfach mit uns in Verbindung. Wir würden uns über eine Zusammenarbeit freuen!