Wie E-Commerce wichtige Promotionen überlebt. Vorbereitung auf Spitzenlasten im Web [Teil 1]

Published on July 31, 2018

Wie E-Commerce wichtige Promotionen überlebt. Vorbereitung auf Spitzenlasten im Web [Teil 1]



    Hallo an alle, Alexey Pristavko, Direktor für Webprojekte DataLine.
    In den letzten Novembertagen findet alljährlich der Black Friday statt, die größte Veranstaltung der Welt des E-Commerce. Dies ist die Zeit der Rekordabschläge, die Geschäfte sind fast um Mitternacht geöffnet, und die an der Kampagne teilnehmenden Websites fallen und können den stark gestiegenen Verkehrsfluss nicht überstehen.

    Daher analysieren wir anhand ihres Beispiels, wie Sie sich auf eine erhebliche Erhöhung der Belastung der Website oder Webanwendung vorbereiten können.
    Im Folgenden werden wir ausführlich darüber sprechen, wie IT-Manager, Entwickler und Administratoren von Online-Shops umfangreiche Maßnahmen überstehen.

    Was droht den Black Friday


    Wie ich oben schrieb, ist der Black Friday ein Tag, an dem jeder, der an der Pflege von E-Commerce-Websites beteiligt ist, viel Ärger bekommt.

    Betrachten Sie dazu die nachstehende Tabelle. Dies spiegelt die Zunahme der Anfragen auf der Website während des Black Friday wider.



    Verglichen mit normalen Tagesspitzen, wenn keine Aktien gehalten werden, wächst der Verkehr am schwarzen Freitag um 100 bis 200%, und dies ist nicht die Grenze.

    Wenn eine große Website bereits über viele eigene Zugriffe verfügt, kann ein bescheidener Online-Shop während des Aktionszeitraums beliebig viele Besucher empfangen und ertrinken. Den alten Witz leicht paraphrasierend: "Das Geschäft hat alle Geschäfte anders gemacht, und Online-Black Friday gleicht alle aus".

    Am Black Friday verdient "füttert" der Verkäufer das ganze nächste Jahr. Das Unternehmen ist sehr daran interessiert, die maximale Anzahl neuer Kunden zu gewinnen, die immer wieder zum Standort zurückkehren, um dort zu kaufen. Dafür sollten die ersten Erfahrungen mit dem Standort reibungslos verlaufen und um dies sicherzustellen - die Aufgabe von IT-Spezialisten.

    Je mehr Kunden gleichzeitig vor Ort sind, desto höher sind die Anforderungen an Stabilität und Reaktionsgeschwindigkeit. Sicher ist Ihnen aufgefallen, dass der Standort des Stores, zu dem Sie von der Landingpage von blackfridaysales gewechselt haben, extrem langsam oder überhaupt nicht funktioniert hat. Ich bezweifle, dass Sie auf den Download gewartet haben und nicht nach ein paar Sekunden gegangen sind.

    Wir werden im Folgenden besprechen, wie Kunden vor negativen Erlebnissen geschützt werden können, und die Website vor Überlastungen. Weitere Hinweise gelten jedoch für jede wahrgenommene Spitzenlast.

    Im Allgemeinen gibt es zwei Schritte zur Vorbereitung eines Standorts für mehr Verkehr: technisch und  organisatorisch. In diesem Artikel werden wir die technische Phase besprechen, und ich werde die organisatorischen Details im zweiten Teil detailliert beschreiben, der in einer Woche veröffentlicht wird.

    Technische Schulungsstätte




    Ein kleiner Haftungsausschluss: Erwarten Sie nicht, dass Sie hier detaillierte Anweisungen finden, was, wo und wie Sie anpassen müssen, damit "Glück für alle, für nichts und niemand beleidigt" wird. Erstens sind die Standorte und Projekte für alle unterschiedlich. Zweitens ist eine spezifische technische Beratung für eine bestimmte Software mehr als ausreichend. Einschließlich auf Habré. Zunächst möchte ich den Lesern die grundlegenden Prinzipien der Arbeit mit Webprojekten vermitteln und die Ansatzpunkte aufzeigen, um die wichtigsten Techniken und plattformunabhängigen Nuancen vorzustellen.

    Fangen wir mit dem Axiom an: Der Benutzer wartet nicht gerne, daher ist es äußerst wichtig, mit den Timings und der Reaktionsgeschwindigkeit zu arbeiten. An Black Friday werden Anforderungen an die Site viel mehr als üblich, und es kann sein, dass nicht nur die Konvertierungen aufgrund langwieriger Downloads fallen, sondern auch das HTTP-Timeout überschritten wird (die Site antwortet nicht).

    In der Regel fallen Standorte unter Last nicht aufgrund physischer Ausfälle, sondern aufgrund der Tatsache, dass die Antwortzeit aufgrund einer Überlastung an einem Knoten die Timeouts zu überschreiten begann. Dies ist vergleichbar mit einem Stau, und Sie müssen rechtzeitig die Kontrolle übernehmen: Erweitern (skalieren) Sie die Ausrüstung, regulieren, unterbrechen Sie die Einstellung (Timeouts), optimieren Sie die Auslastung von Fahrzeugen (Pakete und Anforderungen), arbeiten Sie mit Ausnahmen.

    Da die Leistung der Site im Zusammenhang mit der Site zwei Aspekte hat, nämlich die Reaktionsgeschwindigkeit und die Anzahl der gleichzeitig verarbeiteten Anforderungen, werden wir diese Parameter verbessern.
    In den meisten Fällen gibt ein Unternehmen die Antwortgeschwindigkeit als Geschwindigkeit der Website gemäß Google Analytics an, und die Anzahl gleichzeitiger Anforderungen ist die Anzahl der Nutzer, die gleichzeitig auf der Website sind.

    Bei technischen Arbeiten ist es nicht sehr bequem, mit diesen Parametern zu arbeiten.
    Außerdem werde ich eine Metrik anbieten, die für Berechnungen besser geeignet ist.

    Reaktionsgeschwindigkeit optimieren




    Bei der Optimierung der Antwortgeschwindigkeit sind wir an zwei Indikatoren interessiert: Serverantwortgeschwindigkeit und  Seitenladezeit.

    Die Ladezeit (Seitenladezeit) besteht aus den folgenden Links:

    • Die Uhrzeit, zu der die Seite vom Server generiert wurde.
    • Die Übertragungszeit der Seite vom Server zum Client;
    • Die Bearbeitungszeit der Seite im Client-Browser.

    Wenn alles im regulären Modus funktioniert, ist es nicht die Zeit, zu der die Seite vom Server generiert wird, und die Zeit, die für die Bereitstellung der Seite über das Netzwerk benötigt wird. Die Qualität des Frontends und die Geschwindigkeit der Website im Browser sind jedoch entscheidend für die Ladezeit der Seite. Da letzteres vollständig auf der Benutzerseite geschieht, können Sie keine Angst vor dem Auftreten von Bremsen am Black Friday haben. Probleme können jedoch aufgrund von Überlastungen in Ihrem Internet-Kanal oder der Rückgabe einer externen Komponente (Partner-Counter, Online-Chatrooms, CRM-Plug-Ins usw.) auftreten.
    Wie gehe ich damit um? Hier sind einige Arbeitstipps:

    1. Überprüfen Sie die Auslastung des Internetkanals. Berechnen Sie das geschätzte Wachstum. Im Zweifelsfall erweitern Sie den Kanal. Einige Anbieter bieten Ihnen neben der fortwährenden kostenintensiven Erweiterung möglicherweise eine vorübergehende Verlängerung für die Spitzenzeit (viel billiger) oder ermöglichen es Ihnen, die Höchstgeschwindigkeit kurzzeitig zu überschreiten.
    2. Verwenden Sie CDN? Wenden Sie sich an den technischen Support und warnen Sie vor dem geplanten Verkehrswachstum. Sie bereiten sich auch auf einen allgemeinen Höhepunkt vor und Ihre Prognose wird sich als nützlich erweisen. Wenn das CDN verspricht, dass alles gut wird, aber trotz allem „hinlegen“ wird, wird die Anwesenheit von Korrespondenz dazu beitragen, Entschädigungsforderungen zu stellen.
    3. Erarbeiten Sie im Voraus das Szenario der vorübergehenden Außerbetriebnahme von externen Komponenten, falls Probleme auftreten. Richten Sie das Skript am Unternehmen aus. Es ist nicht überflüssig, mit dem technischen Support der in Anspruch genommenen Dienste zu kommunizieren, sonst kann man sie sonst nicht anders beeinflussen.
    4. An vielen Standorten wird statisch über den Anwendungsserver übermittelt. Bei hoher Auslastung steigt die Anzahl der Static-Anfragen um ein Vielfaches an, und sie beginnen mit der Anwendung selbst um Ressourcen zu konkurrieren. Stellen Sie sicher, dass Sie statisches Feedback direkt von Nginx konfigurieren. Erstens wird es damit viel besser zurechtkommen, und zweitens wird es viel mehr nützliche Arbeit für Ihre Apache-, Tomcat- oder Jetty-Streams geben.

    Verbesserung der Reaktionsgeschwindigkeit




    Die Optimierung der Antwortrate bezieht sich auf die Verbesserung der Gesamtleistung der Website. Theoretisch hilft dies, den Arbeitsaufwand der Anwendung zu reduzieren, und verbessert so die Skalierung. Wenn jede Anforderung „billiger“ wird, können Sie mehr Anforderungen mit den gleichen Ressourcen bearbeiten.

    In der Praxis erfordert die Optimierung der Reaktionsgeschwindigkeit jedoch eine Menge unabhängiger Arbeit. Es ist unmöglich, alles auf einmal zu optimieren, aber es ist einfach, etwas zu brechen.
    Tipp: Denken Sie systematisch nach. Angenommen, die Leistung des Codes hat zugenommen, und die Anwendung hat begonnen, mehr gleichzeitige Anforderungen an die Datenbank zu stellen. Aber hier ist das Pech: Die Performance der Datenbank erlaubt nicht die Bearbeitung einer solchen Anzahl von Anfragen, und die gesamte Site wurde nur schlechter und die kostbare Zeit, bevor der Beginn der Aktion ausgegeben wurde.
    Daher ist es besser, sich auf die Skalierung und Skalierbarkeit zu konzentrieren und die allgemeine Optimierung getrennt von den Vorbereitungen für den Black Friday durchzuführen, um nicht an knappen Fristen zu scheitern. Denken Sie daran, jetzt ist es unsere Aufgabe sicherzustellen, dass der Standort bei Spitzenlasten nicht schlechter arbeitet als außerhalb.

    Die Geschwindigkeit der Seitengenerierung wird uns nur in Verbindung mit einem anderen Indikator interessieren - dem Volumen der eingehenden Last.

    Bitte beachten Sie: Für eine Website ist nur die Anzahl der gleichzeitigen Anforderungen, die von Benutzern erstellt werden, wichtig, nicht die Anzahl der Online-Benutzer auf der Website. Und zählen Sie mit akzeptabler Genauigkeit die Anzahl der Anfragen pro Sekunde nach der Anzahl der Besucherziemlich schwierig (ich habe darüber oben geschrieben). Es ist besser, andere Kennzahlen von Unternehmen anzufordern - die Anzahl der Seitenaufrufe pro Stunde und die Serverzeit.

    Als Ergebnis erhalten wir ein klares Ziel: Die Erzeugung der Seite in X-Zeit mit der Anzahl der Anfragen pro Sekunde Y sicherzustellen. Da bestimmte numerische Metriken zur Hand sind, ist es viel einfacher, den Verfügbarkeitsgrad und das aktuelle Ergebnis zu beurteilen.

    Hier ist ein allgemeiner technischer Schulungsplan:

    1. Ermitteln Sie die aktuellen Indikatoren (Lasttests der aktuellen Version der Website durchführen).
    2. Verstehen, was genau fehlt und wie viele Ressourcen gesichert werden müssen;
    3. Ressourcen hinzufügen;
    4. Wiederholen Sie den Lasttest und sehen Sie, was dabei geholfen hat.

    Sieht zu einfach aus? Sie haben recht, jeder Artikel ist voller Überraschungen.

    In vielen Fällen verbessert das Hinzufügen von Ressourcen die Situation teilweise, spart jedoch nicht vollständig. Oder in einer Testumgebung funktioniert die Site wie eine Uhr und beim Verkauf - wieder Bremsen.

    Als Nächstes werde ich Ihnen sagen, wie Sie potenzielle Probleme erkennen und Schwachstellen beheben können. Zunächst einmal, wie Sie Lasttests durchführen und ein realistisches Ergebnis erzielen.

    Wir führen Lasttests korrekt durch




    Wo soll man Tests durchführen?


    Häufig werden Belastungstests an einem Produktivsystem durchgeführt. Dies kann zur Beherrschung der Situation als Ganzes hilfreich sein, eignet sich jedoch nicht für die iterative Lösung spezifischer Probleme. Denken Sie daran, dass in der Regel nach den neu entdeckten Problemen nach der Beseitigung neuer Probleme auftreten kann. Silberkugeln schlagen selten ins Schwarze.

    Ein fehlgeschlagener Auslastungstest kann für Benutzer der Website zu Unannehmlichkeiten führen oder sie sogar für eine Weile „brechen“. Es ist am besten, einen speziell ausgewiesenen Bereich als Meerschweinchen zu verwenden.

    Es muss die folgenden Anforderungen erfüllen:

    • Der ausgewählte Bereich muss vollkommen unabhängig und vom Produktivbereich isoliert sein.
    • Im Idealfall sollte der ausgewählte Bereich der Größe angepasst werden. Ein Skalenmodell ist ebenfalls geeignet, aber dies verringert die Qualität und Demonstration von Tests. Wenn die Belastung einer Ressource nichtlinear ansteigt (wie es normalerweise der Fall ist), zeigt Ihr Modell nicht an, dass die Ressource unter voller Last vorzeitig erschöpft ist.
    • Es ist am besten, genau die gleiche (aber nicht die gleiche!) Ausrüstung für Tests wie im Verkauf zu verwenden. Andernfalls kann die Qualität nicht gewährleistet werden, selbst wenn die quantitativen Werte der Ressourcen eingehalten werden. Im entscheidenden Moment kann es einen grausamen Scherz spielen. Wenn dies nicht möglich ist, testen Sie die Leistung des Geräts unter Ihrer Last und bestimmen Sie den Koeffizienten für die Anpassung.

    Lassen Sie uns nun darüber sprechen, wie Sie eine Testlast generieren. Ich werde einige grundlegende Techniken geben, von denen jede ihre Vor- und Nachteile hat.

    Wie erzeugt man eine Last?


    1. Wir testen die Anforderungen von Protokollen.

    Es ist möglich, den Verkehrsfluss in den Protokollen der Kampfserver zu emulieren. Der offensichtliche Vorteil dieses Ansatzes ist, dass Sie sich nicht mit Analysen, statistischen Modellen und einem synthetischen Verkehrsprofil beschäftigen müssen.

    Sie müssen jedoch die Protokolle von Anforderungen bereinigen, die nicht ausgeführt werden können oder nicht erforderlich sind.
    Beispielsweise ist es nicht notwendig, Waren produktiv zu "kaufen", da dies zu Problemen mit dem Wareninhalt der Basis führt.

    Es ist schwierig, realistische Verzögerungen zwischen Anfragen zu reproduzieren.
    Es ist auch extrem schwierig, Benutzersitzungen zu emulieren. Diese Methode ist sehr nah an auf Treffern basierenden Tests.

    2. Verwenden von Yandex.Tank und Phantom

    Der Tank in Verbindung mit dem Phantom ist ein sehr praktisches und beliebtes Werkzeug für auf Treffer basierende Tests. Es verfügt über eine durchdachte Benutzeroberfläche, mit der Sie die Last verwalten können. Um mit dem Beschuss von Tank zu beginnen, müssen Sie „Munition“ vorbereiten - spezielle Dateien, die Anforderungen an den Generator enthalten.

    Trotz aller Bequemlichkeit hat der Tank einen großen Nachteil: Er weiß nicht, wie er Sitzungen abhält.

    Sie können die Autorisierung, die vollständige Arbeit mit Cookies und variable Verzögerungen vergessen. Ein Tank kann nur mit Anfragen von einer Adresse aus "picken".

    Es wird Ihnen gefallen, wenn:

    • Es gibt keinen Unterschied in der Serverantwortzeit für autorisierte und nicht autorisierte Benutzer, oder es ist vernachlässigbar.
    • Die API wird explizit ohne HTTP-Sitzungen getestet.
    • Dieser Ansatz entspricht im Allgemeinen der Logik Ihrer Website (normalerweise nicht für Online-Shops geeignet).



    3. Apache JMeter verwenden

    Dies ist das flexibelste Werkzeug, mit dem Sie Benutzersitzungen detailliert emulieren können. Mit seiner Hilfe können Sie also immer noch die Frage des Geschäfts beantworten, "wie viele Benutzer unterstützt die Site?". Darüber hinaus kann JMeter mit Yandex.Tank zusammenarbeiten.
    Sein entscheidendes Minus ist die Ressourcenintensität und Mühsamkeit der Testvorbereitung.

    Die wichtigsten Ratschläge direkt zu JMeter: Versuchen Sie zu vermeiden, die Körper der Seiten mit ihren Kräften zu analysieren. Verwenden Sie zuvor vorbereitete Datensätze, um die Logik der Sitzungen zu reproduzieren. Grundsätzlich ist es besser, die Arbeit von JMeter generell zu minimieren. Wie der Tank können im Vorfeld erzeugte "Patronen" eingelegt werden. Hier müssen sie auch die Verteilung bestimmter Seiten innerhalb eines Typs, die Variabilität der Anforderungen und den gesamten Jazz berücksichtigen

    In JMeter selbst müssen Sie Benutzerverhaltensmuster programmieren. Wenn nicht nur der Serverteil, sondern auch die Rückgabe statischer Inhalte getestet werden soll, führen Sie diesen Test separat mit Phantom aus, falls erforderlich, gleichzeitig mit dem JMeter-Test. Dies wird dazu beitragen, den Ressourcenverbrauch des Lastgenerators erheblich zu reduzieren und die Reproduzierbarkeit des Tests zu verbessern.

    Empfehlungen für die Lastprüfung

    Die Grundlage für eine gute Lastprüfung ist eine kompetente Verkehrsanalyse und die qualitativ hochwertige Erstellung eines statistischen Modells und von Profilen für die Emulation.

    Markieren Sie 5-7 Hauptseitentypen (vergessen Sie nicht auch die Zielseiten für Freigaben). Zählen Sie, in wie viel Prozent der Gesamtverkehr zwischen ihnen verteilt wird. Beachten Sie jedoch, dass es pro Seite mehrere Anfragen nach dynamischem Inhalt geben kann. Für Sie ist die Seite die gesamte Gruppe solcher Anfragen. Analysieren Sie, wie viel Zeit die Benutzer für jeden Seitentyp aufwenden: durchschnittlich, durchschnittliches Minimum, durchschnittliches Maximum.

    Wenn die Seite auf mehreren Anforderungen basiert, berücksichtigen Sie die Verzögerung zwischen ihnen. Sehen Sie, wie viele Seiten ein Benutzer normalerweise pro Sitzung besucht, wie diese Anzahl verteilt wird. Markieren Sie 5-10 der häufigsten Benutzerpfade nach Seitentyp.

    Erstellen Sie anhand der erhaltenen Daten die Szenarien, um alle beschriebenen statistischen Parameter genau zu reproduzieren. Vergessen Sie nicht die Variabilität der Szenarien, sie sollten sich in Anzahl und Zusammensetzung der Klicks unterscheiden.

    Wählen Sie innerhalb jedes Seitentyps einzelne Adressen aus. Je mehr, desto besser, aber zwei oder dreitausend der beliebtesten Adressen liegen bereits hinter den Augen. Von diesen können Sie Listen mit Anforderungen vorbereiten, indem Sie jede der Adressen so oft wie gewünscht in die Liste aufnehmen.

    Wenn zu viele Seiten vorhanden sind, teilen Sie sie nach dem Prozentsatz des Verkehrs in mehrere Gruppen auf.

    Profile spielen nur für JMeter eine Rolle. Durch Erstellen von Listen mit Anforderungen können Sie "Tank" -Patronen ausrüsten.
    Und noch einmal: Wenn Sie JMeter im Emulationsmodus der Benutzer verwenden, vergessen Sie nicht die Verzögerung zwischen den Anforderungen. Wenn Sie sie nicht hinzufügen, wird Ihre generierte Last die geplante Last um ein Vielfaches übersteigen!
    Stellen Sie nach dem Testlauf sicher, dass Sie aus den Protokollen des Webservers berechnen, ob der emulierte Datenverkehr produktiv ist.

    Aerobatics bereitet die Skripts im Voraus vor, um die Standortdatenbank in den gewünschten Zustand zu bringen. Normalerweise arbeiten die wie oben beschrieben aufbereiteten Daten nur mit dem Zustand der Basis, für die die Informationen über die Waren gesammelt wurden. Jedes Mal, wenn ein SQL-Dump überladen wird, ist das Überladen möglicherweise zu lang. Darüber hinaus ist es äußerst wünschenswert zu lernen, wie die gestarteten Freigaben mithilfe von Skripts in der Testzone verwaltet werden. Sie sind häufig für den Betrieb des Systems wichtig, und Sie müssen wissen, an welchem ​​Set und wie genau die Arbeitsanteile getestet werden.

    Alles ist fertig? Großartig, volle Kraft voraus!

    Wir verwenden Überwachung in Tests




    Wir haben also einen kompetenten Test durchgeführt und die Ergebnisse erhalten. Wenn alles gut ist und Ihre Website mit einer hohen Belastung fertig wird, ist kein schwarzer Freitag für Sie schrecklich. Dieser Artikel wäre jedoch unvollständig, wenn wir das traurige realistische Szenario nicht berücksichtigen würden .

    Stellen Sie sich vor, eine Website kann eine akzeptable Geschwindigkeit aushalten ... na ja, auch wenn ein Fünftel von dem, was sie will, ein Geschäft bekommt. Müssen Sie den Hoster wirklich in Panik anrufen und fünfmal mehr Kapazität bestellen?

    Im Prinzip wird der Hoster diesen Ansatz mögen. Sie können sogar Gold-Kundenstatus erhalten.

    Aber bevor Sie rücksichtslos handeln, versuchen wir herauszufinden, was genau schief gelaufen ist.

    Ihre Rettungsleine im Meer möglicher Ursachen ist ein Überwachungssystem.



    Daher gehen wir einen Schritt zurück und installieren so viele Muster wie möglich vor dem Test. Im Idealfall müssen Sie alle erschöpfbaren Ressourcen überwachen.

    Nachfolgend finden Sie eine Liste, die Ihnen den Einstieg erleichtern wird:

    • CPU-Auslastung (CPU-Auslastung, CPU-Auslastung);
    • RAM laden;
    • Plattenladen (IOPS, Latenz);
    • Anzahl der Netzwerkverbindungen (Wartezeit, Ende warten, Ende warten, Etabliert);
    • Die Anzahl der offenen Steckdosen;
    • Die Anzahl der Benutzerprozesse.
    • Die Anzahl der geöffneten Dateien.
    • Netzwerkverkehr (in Megabit und in Paketen sowie Fehler und Abfälle).

    Und auch:

    • Die Anzahl der Anfragen, Antworten und Verbindungen zur Datenbank und anderen Komponenten.
    • Antwortgeschwindigkeit der Komponente (Datenbank, Suchserver, Caches usw.);
    • Alle verfügbaren Protokolle für Fehler.

    Für alle diese Parameter sollten Sie die verfügbaren Grenzwerte kennen. Dies ermöglicht während des Belastungstests, genau zu verstehen, wo der "Engpass" gebildet wurde. Vergessen Sie nicht, dass die meisten dieser "Ressourcen" konfigurierbar sind, einige werden im Allgemeinen durch Einstellungen gesteuert.

    Möglicherweise genügen ein paar kleinere Änderungen, und die Indikatoren werden sich verbessern.

    Irgendwo müssen keine quantitativen, sondern qualitativen Änderungen vorgenommen werden, zum Beispiel der Austausch von Festplatten durch SSD. Eine Reihe von Tipps zum Optimieren und Skalieren von Webanwendungen sowie zur Verbesserung der Ausfallsicherheit finden Sie in meinem vorherigen Artikel.

    Bevor Sie Ressourcen bestellen, empfiehlt es sich, den Lastwachstumszeitplan des Systems mit dessen Lastzeitplan zu vergleichen . Nicht notwendigerweise gibt es eine lineare Beziehung.

    Noch ein Tipp: Denken Sie daran, wir haben gesagt, dass Benutzer nicht lange warten können. Wenn Sie und das Unternehmen zugestimmt haben, dass die Seitengenerierungszeit bedingt mehr als 2 Sekunden absolut nicht akzeptabel ist und ein solcher Benutzer als verschwunden betrachtet werden kann, notieren Sie ein Zeitlimit (z. B. 0,5 Sekunden), um eine Verbindung zum Backend herzustellen, und dauert 1,5 Sekunden zu antworten Bei einem längeren Download können Sie dem Benutzer eine Fehlerseite oder einen Stub a la "Opanki, versuchen Sie es erneut" geben.

    Im Backend können Sie die maximale Wartezeit aus der Datenbank in 1 Sekunde festlegen. Diese Mechanik erlaubt es, die Last nicht auf die Komponente aufzubringen, die keine Zeit hat. Dementsprechend reduzieren Sie die Gesamtbelastung des Systems und schützen es vor langfristiger Überlastung und Ausfall. Letztendlich verringert die Taktik, qualitativ hochwertige Arbeit zu leisten (anstatt zu versuchen, um jeden Preis eine Antwort zu geben), die Anzahl der Benutzer, die mit dem Problem konfrontiert sind, erheblich.

    Wir bestellen Ausrüstung


    Nachdem Sie die zu skalierenden Zonen ermittelt haben, können Sie Geräte bestellen.

    Wenn Sie viel "physisches" Eisen bestellen, beachten Sie die Lieferzeit. Sie werden ungefähr 2-3 Monate dauern, und ein weiterer Monat wird für Test, Installation und Konfiguration aufgewendet.

    Wenn Sie viele Ressourcen in der Cloud bestellen, denken Sie daran: Sie sind nicht die Einzigen, die den Black Friday dort erleben werden. Warnen Sie den Gastgeber für ein paar Monate, damit Sie gerade genug Ausrüstung haben. Wolken sind natürlich elastisch, aber wenn alles nackt ist, kann es peinlich sein.

    Weitsichtiger wird es sein, die Prozessorleistung mit etwas Abstand in der Cloud anzuordnen. Während des Aktionszeitraums erhöhen viele Anbieter die Arbeitsbelastung der physischen Ressourcen. Es ist unwahrscheinlich, dass sie die in der SLA vorgeschriebenen Grenzwerte überschreiten, aber Eisen kann in einer „ruhigen“ Zeit etwas langsamer arbeiten als während des Tests.

    Vergessen Sie nicht die Mittel zur Gewährleistung der Informationssicherheit. Nur wenige Leute halten sie nicht nur in der Produktion, sondern auch im Testbereich. Sie verfügen möglicherweise auch nicht über ausreichende Ressourcen.   

    Vergessen Sie nicht, dass selbst der nützlichste Eingriff in das System seine Stabilität erschüttern kann. Sie können die Hinzufügung von Ressourcen am letzten Tag nicht verschieben. Lassen Sie sich mindestens ein paar Wochen Zeit, um alles zu überprüfen und die letzten kleinen Trommeln zu fangen.

    Nach dem Upgrade müssen Sie die Tests wiederholen und sicherstellen, dass die Site die Last hält.
    Erstens kann sich der Prozess des Hinzufügens von Ressourcen als iterativ herausstellen (neue Bedürfnisse können entstehen), und zweitens hat auch niemand den menschlichen Faktor aufgehoben. Auch ein erfahrener Techniker kann die Verkantung während der Installation verhindern oder ungenaue Berechnungen durchführen.

    Vielleicht ist das alles. Wir haben uns mit den wichtigsten Aspekten der Vorbereitung von Webanwendungen für ein großes Verkehrsaufkommen, den gängigen Lasttestmethoden und der Ermittlung von Engpässen in dieser Phase beschäftigt.

    Wenn Sie Fragen haben, lade ich sie ein, nicht nur in den Kommentaren, sondern auch persönlich bei meinem Seminar „Schwarzer Freitag im E-Commerce. Geheimnisse des Überlebens ", die am 16. August in Moskau stattfinden wird. Melden Sie sich hier für ein Seminar an.