Hohe Lasten der WM 2018


Die vergangene FIFA Fussball-Weltmeisterschaft 2018 in Russland hat nicht nur die Verkehrsknotenpunkte des Landes, sondern auch die IT-Infrastruktur des größten russischen Senders, der die Spiele im Online-Sendeformat zur Verfügung stellte, stark belastet. Wir haben mit Interesse eine neue Herausforderung angenommen, die sich aus der Wartung der Server zusammen mit dem Fußballfieber ergab.

Vorwort: hohe Lasten?


Gespräche über Hochlast beginnen oft mit Überlegungen zum Thema. Welche Lasten können zu Recht als „hoch“ angesehen werden: Tausende von Anfragen pro Sekunde nach Dynamik? Oder sogar eine kleine Anzahl von Anfragen in Bezug auf verfügbare Ressourcen? Millionen Besucher pro Tag? Hunderte von Workload-Knoten in einem Cluster? ..

Um sich ein Bild vom "Ausmaß der Katastrophe" zu machen, sollte die Tatsache ausreichen, dass es sich um Benutzer handelt, die gleichzeitig die Sendung sehen, deren Anzahl die Marke von 2 Millionen erreicht hat. Was ist passiert, wenn Sie sich die Sendungen der Spiele „von innen“ ansehen und wie haben Sie es geschafft, mit beispiellosem Verkehr umzugehen?

Drei Wale


1. Site-Architektur und Übersetzungssysteme


Das allgemeine Interaktionsschema zwischen dem Endbenutzer und dem Übersetzungssystem wird auf das folgende Schema reduziert:

  • Der Benutzer kommt zu der Site, auf der der Player gestartet wird, um das Video anzusehen. Der Player selbst ist in JavaScript geschrieben und das Laden führt zu vielen Anfragen nach Statik sowie zu verschiedenen APIs im Zusammenhang mit Übersetzungen.
  • Unter anderem wird der Balancer um eine Wiedergabeliste für die Wiedergabe gebeten.
  • Eine Wiedergabeliste ist ein ständig aktualisierter Satz kurzer Videofragmente, die auf CDN-Servern zwischengespeichert werden.
  • Während Sie das Video eines Benutzers in Echtzeit ansehen, werden verschiedene Statistiken gesammelt, die insbesondere für den Lastausgleich durch CDN (zusammen mit der tatsächlich verfügbaren Bandbreite) berücksichtigt werden.

Die Architektur für die direkte Verbreitung des Videos wurde bereits vor Beginn unserer Zusammenarbeit von den internen Kräften der Ingenieure des Kunden entworfen und implementiert. Später beschäftigten wir uns neben dem Service selbst mit der Planung und Inbetriebnahme der Infrastruktur für einige ihrer Komponenten sowie des Standorts selbst, der eine wichtige Rolle im Gesamtkonzept spielt.

Die vor einigen Jahren in Betrieb genommene Site konzentriert sich auf horizontale Skalierbarkeit - einschließlich vieler Rechenzentren:



Das hier vorgestellte Schema ist vereinfacht und soll die Art der Skalierbarkeit des Standorts demonstrieren, dessen Komponenten auf verschiedene Rechenzentren verteilt sind.

2. CDN


Wenn Sie zum eigentlichen Ansehen des Videos zurückkehren, ist es offensichtlich, dass die Hauptlast auf die CDN-Server fällt. In den Zahlen der vergangenen Weltmeisterschaft sprechen wir von konstantem Verkehr, der in Terabit pro Sekunde gemessen wird. In vielerlei Hinsicht ist der Erfolg der Arbeit von Übersetzungen mit Spitzenlasten darauf zurückzuführen, dass auf dem CDN alles zwischengespeichert wird, was auf sie übertragen werden kann, und die Ressourcenkosten (Netzwerk, CPU, RAM, ...) anderer Vorgänge minimiert werden.

Ein wichtiger Punkt bei der Arbeit mit CDN ist außerdem die Interaktion mit ihrer API, um relevante Informationen über die gesamte und verfügbare Bandbreite zu erhalten. Im Broadcast-System werden diese Daten verwendet, um neue Zuschauer zu verteilen und aktuelle neu zu verteilen.

Wenn CDN-Server Millionen von Internet-Zuschauern genügend Bandbreite bieten können, wann können dann jemals Probleme auftreten? Während der Meisterschaft haben wir zwei Hauptszenarien beobachtet:

  1. Aus irgendeinem Grund gibt es eine Verzögerung in der Sendung.

    Zum Beispiel wurden die Systemeinstellungen bei einem der Meisterschaftsspiele so „gespielt“, dass der DDoS-Schutzdienst, der keine plötzliche Auslastung erwartete, das Geschehen als Angriff betrachtete und die Verfügbarkeit von CDN-Servern nacheinander blockierte ... bis ihm mitgeteilt wurde, dass dies der Fall war in gewissem Sinne extrem, aber immer noch Vollzeit (die notwendigen Schlussfolgerungen wurden gezogen - in den nächsten Sendungen wiederholte sich die Situation nicht).

    In solchen Momenten beginnen alle Benutzer, die von einem massiven Problem überholt werden, die Seite mit dem Player zu aktualisieren.
  2. Ein Tor (insbesondere das erste) führt in der Regel in einem begrenzten Zeitraum zu einem großen Zustrom von Zuschauern.

    Wenn wir über spezifischere Zahlen sprechen, dann belief sich ein solcher Zustrom in 1-1,5 Minuten auf Hunderttausende von Benutzern.

In beiden Fällen kam es zu starken Spitzen bei Anfragen nach dynamischen Website-Inhalten, die von den verfügbaren Ressourcen verarbeitet werden mussten. Wie wurden solche Probleme verfolgt und gelöst?

3. Echtzeitüberwachung und Statistik


Es ist möglich, mit einem erheblichen Maß an Wahrheit zu scherzen, dass wir für die Dauer der gesamten Meisterschaft einen speziellen Posten hatten, zu dessen Aufgaben es gehörte, am Arbeitsplatz aufmerksam Fußball zu schauen. Natürlich ging es nicht so sehr um Fußball als solchen, sondern um die schnelle Reaktion auf Vorfälle, die durch Spiele oder andere Umstände hervorgerufen wurden ...

Was sind die "anderen Umstände"? Bei solchen öffentlichen Veranstaltungen ist sogar der Einfluss des Wetters spürbar. Hier sind zwei Beispiele aus der Meisterschaft, die uns begegnet sind:

  1. Als während eines der Spiele ein Gewitter begann, hatten Satellitenfernsehanbieter Geräteprobleme (sie konnten kein Signal senden). Dies führte in kurzer Zeit zu einem spürbaren Anstieg des Datenverkehrs (ca. 10%), da die Zuschauer auf der Suche nach einer dringenden alternativen Lösung massiv online gingen und dort weiter surften.
  2. Als es während des letzten Spiels zu regnen begann, war ein kleiner Sprung (ca. 3%) beim Trennen und erneuten Verbinden der Benutzer (nach ca. 5 Minuten) festzustellen. In diesem Fall wurden keine Probleme in der Sendung selbst beobachtet, dh die Gründe für den Sprung hatten keine technische Grundlage. Die Annahme ist, dass die Zuschauer, die (wie ich selbst) Fußball auf der Straße sahen, aufgrund von Regen in den Raum zogen und für diese kurze Zeit von der Sendung getrennt wurden.

Zurück zum Thema Überwachung selbst - für die Dauer der gesamten Meisterschaft wurde die Praxis regelmäßiger (nach jeder Hauptsendung) Besprechungen mit den Entwicklern, die alle kritischen Situationen (oder in der Nähe dieser) und ihre Folgen analysierten, zur Norm gemacht, um potenzielle Probleme in zu minimieren nächstes Mal. Welche Server / Dienste waren am Limit? Welche Fragen waren besonders anspruchsvoll? Welche Anforderungen können entfernt werden (für einige Sekunden an CDN übertragen, um sie zwischenzuspeichern)? Welche Anforderungen können länger zwischengespeichert werden (alle 3 Minuten, nicht pro Minute)? Was wird mit der projizierten Zunahme der Zuschauerzahl passieren, weil Russland spielen wird?

Apropos Russland. Wie Sie sich vorstellen können, kamen im Durchschnitt mehrmals mehr Menschen zu Spielen mit der russischen Nationalmannschaft als andere. Und je weiter unser Team in der Turnierklasse aufstieg, desto schwieriger war es, unsere Freude an dieser Angelegenheit mit der Erfüllung sofortiger Aufgaben zu verbinden - denn alles wurde durch das unermüdliche Wachstum des Publikums erschwert. Trotz der Tatsache, dass das System für enorme Belastungen ausgelegt ist, treten sie im normalen Arbeitszeitplan nicht so häufig auf (weniger als 10 Mal pro Jahr) ... und bei der Weltmeisterschaft beobachteten wir fast einen Monat lang Spitzenwerte bei hoher Belastung. Der Vorteil dieses Modus war jedoch die große Möglichkeit, tatsächliche Engpässe zu erkennen, die nur in den Momenten solcher Belastungen erkannt werden.

Wenn also ein Teil der rein technischen Probleme durch Standardgraphen aus Überwachungssystemen entfernt wurde, spielten bei der Lösung komplexerer und / oder geschäftslogikorientierter Probleme die Erfolge des Projekts unter dem internen Namen „Echtzeitstatistik“ eine große Rolle.

Echtzeitstatistik


Diese wichtige Komponente der Internet-Rundfunkinfrastruktur wurde durch unsere Bemühungen entwickelt und implementiert, ein Business-Intelligence-Tool für technische Daten bereitzustellen, die von Spielern gesammelt wurden, in denen Benutzer Videos ansehen. Im Kern handelt es sich um ein Protokollierungssystem, das:

  • sammelt alle Arten verfügbarer Daten über Benutzer (Browser, IP usw. - der Einfachheit halber können wir sagen, dass dies die Merkmale sind, die wir in Statistiken über die Zielgruppe der Website verwendet haben);
  • ergänzt sie mit technischen Daten zum Rundfunk (Bitrate usw.) und aufgetretenen Ereignissen / Problemen (CDN-Umschaltung, Anzeigefehler ...);
  • stellt dem Balancer Daten für einen optimalen Lastausgleich auf CDN-Servern zur Verfügung (gemäß den Merkmalen jedes Benutzers);
  • sendet die erforderlichen Warnungen an diensthabende Ingenieure und erstellt nützliche Geschäftsdiagramme.

Der letzte Punkt ist der interessanteste, weil:

  1. Warnungen dieses Statistiksystems sind eine Schlüsselkomponente der Überwachung, mit der Sie während der Sendungen über praktische Indikatoren auf dem Laufenden bleiben können. Bei der Analyse (an einem Ort, an dem die Automatisierung nicht ausreicht) trifft der Mitarbeiter geeignete Entscheidungen, um die Servicequalität in Echtzeit zu verbessern. Zum Beispiel:
    • Haben viele Benutzer vom gleichen CDN-Server gewechselt? Es muss vorübergehend für die Rotation deaktiviert sein (oder wenden Sie sich an den Anbieter, um eine schnelle Antwort zu erhalten).
    • Haben Benutzer angefangen, massive Probleme beim Ansehen von Videos zu haben? Zeit für eine dringende Analyse der Ursachen.
  2. Diagramme sind Unternehmensstatistiken in Echtzeit, mit denen Sie wichtige Fragen beantworten können, z.
    • Wie viele Benutzer haben die Last-Minute-Sendung gesehen?
    • Wie viel Prozent der Benutzer hatten in letzter Minute Probleme und wie war ihre Natur?

    Da ähnliche Ereignisse dasselbe Diagrammprofil haben, können Sie im Diagramm selbst das Wachstum der Benutzeranzahl in den nächsten Minuten vorhersagen und bei Bedarf proaktive Maßnahmen ergreifen.

Da diese Statistiken in Echtzeit arbeiten und für die Qualität des gesamten Dienstes von entscheidender Bedeutung sind, läuft die einfache Anzeige von Videos durch Millionen von Benutzern nicht darauf hinaus, Inhalte über CDN an sie zu verteilen. ClickHouse DBMS hilft dabei, neue Daten von zahlreichen Playern schnell aufzuzeichnen (es handelt sich um Zehntausende von Anforderungen pro Sekunde für die Aufzeichnung auf jedem Server), und das übliche Grafana wird für Diagramme verwendet.


Darstellung des Zuschauerverhältnisses von Online-Videos vor, während und nach dem Spiel

Übrigens : Eine interessante Problemumgehung bei Spitzenlasten war das Deaktivieren von HTTPS (zugunsten von HTTP) für Anforderungen aus dem Statistiksystem, was zu einer Verdoppelung der CPU-Auslastung auf einigen Servern führte.

Zusammenfassung


Der Erfolg von Online-Sendungen eines solch großen Ereignisses (selbst YouTube TV hat die Belastungen nicht immer bewältigt !) Wurde von drei Schlüsselfaktoren getragen:

  1. kompetente Architektur (für das Broadcast-System und den Standort), die auch ohne den Einsatz moderner Systeme wie Kubernetes zunächst auf hohe Lasten, Skalierbarkeit und Bereitschaft für signifikante Bursts ausgerichtet war;
  2. CDN-Server mit ausreichender Bandbreite;
  3. spezielle Überwachung, die es ermöglichte: a) Probleme in Echtzeit zu verfolgen, b) die notwendigen Informationen bereitzustellen, um sie in Zukunft zu vermeiden.

Obwohl es tatsächlich mehr Faktoren gab ... und einer von ihnen ist vielleicht in der Lage, alle technischen Faktoren zu übertreffen - den Menschen. Die wichtigste Rolle spielten Spezialisten, die nicht nur alles Notwendige technisch tun und binden konnten, sondern auch unermüdlich Ergebnisse erzielten, was ich besonders auf die Vorzüge des Kundenmanagements hinweisen möchte.

PS über die erwähnten Kubernetes ... eine Geschichte, die viele Leser unseres Blogs erwartet haben. Der Migrationsprozess des Rundfunksystems hat bereits begonnen, aber während der Weltmeisterschaft waren diese Entwicklungen noch nicht beteiligt.

PPS


Lesen Sie auch in unserem Blog:

Source: https://habr.com/ru/post/de417083/


All Articles