So halten Sie der erhöhten Belastung des Systems stand: Wir sprechen über groß angelegte Vorbereitungen für den Black Friday

Hey Habr!

Im Jahr 2017, während des Black Friday, stieg die Auslastung um fast das Eineinhalbfache und unsere Server waren am Limit. Im Laufe des Jahres ist die Zahl der Kunden deutlich gestiegen und es wurde klar, dass die Plattform ohne sorgfältige Vorbereitung den Belastungen des Jahres 2018 möglicherweise einfach nicht standhalten wird.

Wir haben uns das ehrgeizigste Ziel gesetzt: Wir wollten auf alle, auch die stärksten Aktivitätsschübe, bestens vorbereitet sein und haben im Laufe des Jahres mit der Einführung neuer Kapazitäten begonnen.

Unser CTO Andrey Chizh (chizh_andrey) erzählt, wie wir uns auf den Black Friday 2018 vorbereitet haben, welche Maßnahmen wir ergriffen haben, um Stürze zu vermeiden, und natürlich die Ergebnisse dieser sorgfältigen Vorbereitung.

So halten Sie der erhöhten Belastung des Systems stand: Wir sprechen über groß angelegte Vorbereitungen für den Black Friday

Heute möchte ich über die Vorbereitungen für den Black Friday 2018 sprechen. Warum jetzt, wenn die meisten großen Verkäufe hinter uns liegen? Wir haben etwa ein Jahr vor Großveranstaltungen mit den Vorbereitungen begonnen und durch Ausprobieren die optimale Lösung gefunden. Wir empfehlen Ihnen, sich im Voraus um die heißen Jahreszeiten zu kümmern und Betrügereien vorzubeugen, die im ungünstigsten Moment auftauchen könnten.
Das Material wird für jeden nützlich sein, der den maximalen Gewinn aus solchen Aktien herausholen möchte, denn Die technische Seite des Themas steht hier der Marketingseite in nichts nach.

Merkmale des Verkehrs bei großen Verkäufen

Entgegen der landläufigen Meinung dauert der Black Friday nicht nur einen Tag im Jahr, sondern fast eine ganze Woche: Die ersten Rabattangebote treffen 7-8 Tage vor dem Verkauf ein. Der Website-Verkehr beginnt im Laufe der Woche gleichmäßig zu wachsen, erreicht am Freitag seinen Höhepunkt und sinkt am Samstag ziemlich stark auf das normale Niveau des Ladens.

So halten Sie der erhöhten Belastung des Systems stand: Wir sprechen über groß angelegte Vorbereitungen für den Black Friday

Dies ist wichtig zu bedenken: Online-Shops reagieren besonders empfindlich auf etwaige „Verlangsamungen“ im System. Darüber hinaus verzeichnete auch unser E-Mail-Newsletter einen deutlichen Anstieg der Einsendungen.

Für uns ist es strategisch wichtig, den Black Friday ohne Abstürze zu überstehen, denn... Die wichtigste Funktionalität von Websites und Shop-Newslettern hängt vom Betrieb der Plattform ab, nämlich:

  • Verfolgung und Ausgabe von Produktempfehlungen,
  • Herausgabe verwandter Materialien (z. B. Bilder des Designs von Empfehlungsblöcken, wie Pfeile, Logos, Symbole und andere visuelle Elemente),
  • Bereitstellung von Produktbildern in der erforderlichen Größe (für diese Zwecke verfügen wir über „ImageResizer“ – ein Subsystem, das ein Bild vom Store-Server herunterlädt, es auf die erforderliche Größe komprimiert und über Caching-Server Bilder in der erforderlichen Größe für jedes Produkt erstellt pro Empfehlungsblock).

Tatsächlich stieg die Auslastung des Dienstes während des Black Friday 2019 um 40 %, d. h. Die Anzahl der Ereignisse, die das Retail Rocket-System auf Online-Shop-Websites verfolgt und verarbeitet, ist von 5 auf 8 Anfragen pro Sekunde gestiegen. Aufgrund der Tatsache, dass wir uns auf größere Belastungen vorbereiteten, überstanden wir einen solchen Anstieg problemlos.

So halten Sie der erhöhten Belastung des Systems stand: Wir sprechen über groß angelegte Vorbereitungen für den Black Friday

Allgemeines Training

Der Black Friday ist eine arbeitsreiche Zeit für den gesamten Einzelhandel und insbesondere für den E-Commerce. Die Anzahl der Benutzer und ihre Aktivität nehmen derzeit deutlich zu, sodass wir uns wie immer gründlich auf diese arbeitsreiche Zeit vorbereitet haben. Fügen wir hier die Tatsache hinzu, dass wir nicht nur in Russland, sondern auch in Europa viele Online-Shops angeschlossen haben, wo die Aufregung viel höher ist und wir ein schlechteres Maß an Leidenschaft erreichen als in der brasilianischen Serie. Was muss getan werden, um auf erhöhte Belastungen bestens vorbereitet zu sein?

Arbeiten mit Servern

Zunächst galt es herauszufinden, was wir genau benötigen, um die Serverleistung zu erhöhen. Bereits im August haben wir gezielt für den Black Friday mit der Bestellung neuer Server begonnen – insgesamt haben wir 10 zusätzliche Maschinen hinzugefügt. Im November waren sie vollständig im Kampfeinsatz.

Gleichzeitig wurden einige der Build-Maschinen für den Einsatz als Anwendungsserver neu installiert. Wir haben sie sofort auf die Verwendung verschiedener Funktionen vorbereitet: sowohl für die Ausgabe von Empfehlungen als auch für den ImageResizer-Dienst, sodass jeder von ihnen je nach Art der Belastung für eine dieser Rollen verwendet werden kann. Im Normalbetrieb haben die Application- und ImageResizer-Server klar definierte Funktionen: Erstere geben Empfehlungen aus, letztere liefern Bilder für Briefe und Empfehlungsblöcke auf Online-Shopping-Websites. In Vorbereitung auf den Black Friday wurde beschlossen, alle Server mit doppeltem Verwendungszweck auszustatten, um den Datenverkehr je nach Art des Downloads zwischen ihnen auszugleichen.

Dann haben wir zwei große Server für Kafka (Apache Kafka) hinzugefügt und einen Cluster von 5 leistungsstarken Maschinen erhalten. Leider verlief nicht alles so reibungslos, wie wir es uns gewünscht hätten: Während des Datensynchronisierungsprozesses belegten zwei neue Maschinen die gesamte Breite des Netzwerkkanals und wir mussten dringend herausfinden, wie wir den Additionsprozess für die Daten schnell und sicher durchführen können gesamte Infrastruktur. Um dieses Problem zu lösen, mussten unsere Administratoren ihre Wochenenden tapfer opfern.

Arbeiten mit Daten

Zusätzlich zu den Servern haben wir uns entschieden, Dateien zu optimieren, um die Belastung zu verringern. Ein großer Schritt für uns war die Übersetzung statischer Dateien. Alle statischen Dateien, die zuvor auf Servern gehostet wurden, wurden nach S3 + Cloudfront verschoben. Das wollten wir schon lange machen, da die Auslastung des Servers nahe an den Grenzwerten lag, und nun ergab sich eine große Chance.

Eine Woche vor dem Black Friday haben wir die Bild-Caching-Zeit auf 3 Tage erhöht, sodass bei einem Absturz von ImageResizer zuvor zwischengespeicherte Bilder vom CDN abgerufen wurden. Dadurch wurde auch die Belastung unserer Server reduziert, denn je länger das Bild gespeichert wird, desto seltener müssen wir Ressourcen für die Größenänderung aufwenden.

Und zu guter Letzt: 5 Tage vor dem Black Friday wurde ein Moratorium für die Bereitstellung neuer Funktionen sowie für alle Arbeiten an der Infrastruktur angekündigt – alle Aufmerksamkeit gilt der Bewältigung der erhöhten Belastung.

Pläne zur Reaktion auf schwierige Situationen

Egal wie hochwertig die Zubereitung ist, Fakaps sind immer möglich. Und wir haben 3 Reaktionspläne für mögliche kritische Situationen entwickelt:

  • Lastreduzierung,
  • Deaktivierung einiger Dienste,
  • vollständige Abschaltung des Dienstes.

Plan A: Belastung reduzieren. Hätte aktiviert werden sollen, wenn unsere Server aufgrund eines Lastanstiegs die akzeptablen Antwortzeiten überschritten hätten. Für diesen Fall haben wir Mechanismen vorbereitet, um die Last schrittweise zu reduzieren, indem wir einen Teil des Datenverkehrs auf Amazon-Server verlagern, die auf alle Anfragen einfach mit „200 OK“ antworten und eine leere Antwort geben. Wir haben verstanden, dass dies eine Verschlechterung der Qualität des Dienstes darstellt, aber die Wahl zwischen der Tatsache, dass der Dienst überhaupt nicht funktioniert oder für etwa 10 % des Datenverkehrs keine Empfehlungen anzeigt, liegt auf der Hand.

Plan B: Dienste deaktivieren. Implizierte teilweise Verschlechterung des Dienstes. Beispielsweise die Geschwindigkeit der Berechnung persönlicher Empfehlungen reduzieren, um einige Datenbanken und Kommunikationskanäle zu entlasten. Im Normalmodus werden Empfehlungen in Echtzeit berechnet, wodurch für jeden Besucher eine andere Version des Online-Shops erstellt wird. Bei erhöhter Auslastung ermöglicht die Reduzierung der Geschwindigkeit jedoch, dass andere Kerndienste weiterhin funktionieren.

Plan C: im Falle von Armageddon. Sollte es zu einem kompletten Systemausfall kommen, haben wir einen Plan erstellt, der uns eine sichere Trennung von unseren Kunden ermöglicht. Ladenkäufer werden einfach keine Empfehlungen mehr sehen; die Leistung des Online-Shops wird in keiner Weise beeinträchtigt. Dazu müssten wir unsere Integrationsdatei zurücksetzen, damit neue Benutzer nicht mehr mit dem Dienst interagieren. Das heißt, wir würden unseren Haupt-Tracking-Code deaktivieren, der Dienst würde aufhören, Daten zu sammeln und Empfehlungen zu berechnen, und der Benutzer würde einfach eine Seite ohne Empfehlungsblöcke sehen. Für alle, die bereits eine Integrationsdatei erhalten haben, haben wir die Möglichkeit bereitgestellt, den DNS-Eintrag auf Amazon und den 200-OK-Stub umzustellen.

Ergebnisse

Wir haben die gesamte Last bewältigt, auch ohne den Einsatz zusätzlicher Baumaschinen. Und dank der Vorabvorbereitung brauchten wir keinen der entwickelten Reaktionspläne. Aber die geleistete Arbeit ist eine unschätzbare Erfahrung, die uns hilft, auch die unerwartetsten und größten Verkehrsströme zu bewältigen.
Wie schon 2017 stieg die Auslastung des Dienstes am Black Friday um 40 % und die Zahl der Nutzer in Online-Shops um 60 %. Alle Schwierigkeiten und Fehler traten während der Vorbereitungszeit auf, was uns und unsere Kunden vor unvorhergesehenen Situationen bewahrte.

Wie kommen Sie mit dem Black Friday zurecht? Wie bereiten Sie sich auf kritische Belastungen vor?

Source: habr.com

Kommentar hinzufügen