Überwachung + Lasttests = Prognosen und Vermeidung von Ausfällen

Die IT-Abteilung der VTB hatte mehrfach mit Notfällen in der Systemarbeit zu kämpfen, wenn die Last auf ihnen stark anstieg. Daher entstand die Notwendigkeit, ein Modell zu entwickeln und zu testen, das die Spitzenlast auf kritischen Systemen vorhersagt. Zu diesem Zweck richteten die IT-Spezialisten der Bank Monitoring ein, analysierten die Daten und lernten, die Prognosen zu automatisieren. Welche Werkzeuge dabei geholfen haben, die Last vorherzusagen und ob es gelungen ist, die Arbeit zu optimieren, werden wir in einem kurzen Artikel erläutern.

Überwachung + Lasttests = Prognosen und Vermeidung von Ausfällen

Probleme mit stark belasteten Diensten treten in nahezu allen Branchen auf, sind jedoch für den Finanzsektor kritisch. Zu einem bestimmten Zeitpunkt müssen alle verfügbaren Einheiten bereit sein, sodass im Voraus bekannt sein muss, was möglicherweise passiert, und sogar der Tag vorhergesagt werden kann, an dem die Last steigt und welche Systeme betroffen sein werden. Ausfälle müssen bekämpft und verhindert werden, sodass die Notwendigkeit, ein System für vorausschauende Analytik einzuführen, nicht zur Diskussion stand. Die Systeme mussten auf Grundlage der Monitoring-Daten modernisiert werden.

Analytik aus der Hüfte

Das Gehaltsprojekt ist eines der sensibelsten im Falle eines Ausfalls. Es ist auch am besten vorhersagbar, weshalb wir damit begonnen haben. Aufgrund der hohen Verknüpfung konnten während Spitzenlastzeiten auch andere Teilsysteme, einschließlich des Online-Banking, Probleme haben. Zum Beispiel begannen Kunden, die SMS über den Eingang von Geld erhielten, aktiv diese zu nutzen. Dabei konnte die Last um mehr als das Zehnfache ansteigen. 

Das erste Prognosemodell wurde manuell erstellt. Wir haben Daten des letzten Jahres analysiert und die Tage identifiziert, an denen die höchsten Spitzen erwartet werden: beispielsweise am 1., 15. und 25. sowie in den letzten Tagen des Monats. Dieses Modell erforderte erhebliche Arbeitsressourcen und lieferte keine genauen Vorhersagen. Dennoch identifizierte es Engpässe, wo mehr Hardware benötigt wurde, und ermöglichte die Optimierung des Geldüberweisungsprozesses, indem wir mit Schlüsselkunden vereinbarten, die Gehälter nicht „auf einen Schlag“ auszuzahlen, sondern die Transaktionen aus verschiedenen Regionen zeitlich zu staffeln. Jetzt verarbeiten wir diese in Teilen, die die IT-Infrastruktur der Bank ohne Ausfälle „verarbeiten“ kann.

Nachdem wir das erste positive Ergebnis erzielt hatten, haben wir mit der Automatisierung der Prognose begonnen. Eine Reihe weiterer kritischer Bereiche wartete auf ihre Bearbeitung.

Umfassender Ansatz

Im VTB wurde ein Überwachungssystem von MicroFocus implementiert. Dort haben wir die Datensammlung für Prognosen, das Speichersystem und das Berichtsgenerierungssystem übernommen. Im Grunde genommen gab es bereits eine Überwachung, wir mussten nur die Metriken, das Vorhersagemodul hinzufügen und neue Berichte erstellen. Dieses System wird von einem externen Dienstleister, „Technoserv“, unterstützt, sodass die Hauptarbeiten zur Umsetzung des Projekts in den Händen seiner Spezialisten lagen, aber das Modell haben wir selbst entwickelt. Das Prognosesystem haben wir auf Basis von Prophet erstellt – diesem Open-Source-Produkt, das von Facebook entwickelt wurde. Es ist einfach zu bedienen und lässt sich leicht in unsere installierten Überwachungswerkzeuge und Vertica integrieren. Grob gesagt analysiert das System die Lastkurve und extrapoliert sie anhand von Fourier-Reihen. Außerdem gibt es die Möglichkeit, bestimmte Koeffizienten pro Tag, die aus unserem Modell stammen, hinzuzufügen. Die Metriken werden ohne menschliches Zutun erfasst, einmal in der Woche wird die Prognose automatisch neu berechnet und neue Berichte werden an die Empfänger versendet. 

Dieser Ansatz identifiziert grundlegende Zyklen, wie jährliche, monatliche, vierteljährliche und wöchentliche. Gehaltszahlungen und Vorschüsse, Urlaubsperioden, Feiertage und Verkaufsaktionen – all dies beeinflusst die Anzahl der Anfragen an die Systeme. Es stellte sich heraus, dass einige Zyklen sich überschneiden, wobei der größte Teil (75 %) der Last von dem Zentralen Bundesdistrikt ausgeht. Juristische und natürliche Personen verhalten sich unterschiedlich. Während die Last von 'natürlichen Personen' relativ gleichmäßig über die Wochentage verteilt ist (was viele kleine Transaktionen bedeutet), konzentrieren sich 99,9 % der Transaktionen von Unternehmen auf die Arbeitszeit, und diese Transaktionen können kurz sein oder mehrere Minuten und sogar Stunden zur Bearbeitung benötigen.

Überwachung + Lasttests = Prognosen und Vermeidung von Ausfällen

Basierend auf den erhaltenen Daten werden langfristige Trends identifiziert. Das neue System hat gezeigt, dass viele Menschen in die digitale Bankdienstleistungen wechseln. Das ist allgemein bekannt, aber in diesem Ausmaß hatten wir nicht damit gerechnet und zunächst nicht daran geglaubt: Die Anzahl der Kundenanfragen in den Bankfilialen sinkt extrem schnell, während gleichzeitig die Anzahl der mobilen Transaktionen entsprechend steigt. Folglich wächst auch die Belastung der Systeme und wird weiter zunehmen. Aktuell prognostizieren wir die Belastung bis Februar 2020. Normale Tage können wir mit einer Abweichung von 3 % vorhersagen, Spitzenzeiten mit einer Abweichung von 10 %. Das ist ein gutes Ergebnis.

Herausforderungen

Ohne Schwierigkeiten kam es nicht aus. Der Extrapolationsmechanismus unter Verwendung von Fourier-Reihen hat Probleme beim Überqueren des Nulllimits - wir wissen, dass juristische Personen an Wochenenden nur wenige Transaktionen generieren, aber das Prognosemodul liefert Werte, die weit von null entfernt sind. Man hätte sie gewaltsam anpassen können, aber Notlösungen sind nicht unser Ansatz. Zudem mussten wir das Problem der schmerzfreien Datenerfassung von Ursprungsystemen lösen. Die regelmäßige Informationssammlung erfordert erhebliche Rechenressourcen, weshalb wir schnelle Caches mit Hilfe von Replikation erstellt haben, um Geschäftsdaten bereits von Replikaten zu erhalten. Das Fehlen zusätzlicher Last auf den Master-Systemen in solchen Fällen ist eine zwingende Anforderung.

Neue Herausforderungen

Die gestellte Aufgabe zur Vorhersage von Spitzen wurde gelöst: Seit Mai dieses Jahres gab es keine mit Überlastung verbundenen Ausfälle in der Bank, und das neue Prognosesystem spielte dabei eine nicht unerhebliche Rolle. Ja, es war nicht ausreichend, und jetzt möchte die Bank verstehen, wie gefährlich diese Spitzen für sie sind. Wir benötigen Prognosen unter Verwendung von Metriken aus Lasttests, und für etwa 30 % der kritischen Systeme funktioniert dies bereits, die anderen sind dabei, Prognosen zu erhalten. In der nächsten Phase planen wir, die Last auf Systeme nicht in Bezug auf Geschäftstransaktionen, sondern in Bezug auf die IT-Infrastruktur vorherzusagen, d.h. wir werden eine Ebene tiefer gehen. Darüber hinaus müssen wir die Erfassung von Metriken und den Aufbau von Prognosen auf dieser Grundlage vollständig automatisieren, um keine Exporte durchzuführen. Darin ist nichts Außergewöhnliches — wir kombinieren einfach Monitoring und Lasttests gemäß den besten internationalen Praktiken.

Quelle: habr.com

Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster