Postmortalbericht über einen ausgefallenen AI Recommender System-Server. | von Nnamaka | Mai 2023

0
31


Dieser Beitrag richtet sich insbesondere an CEOs, ML-Ingenieure, DevOps-Ingenieure und SREs (System Reliability Engineers)

In diesem Bericht möchte ich noch einmal betonen, wie wichtig es ist, diese zu beseitigen SPOF (Single Level of Failure) in Ihrer Net-App-Architektur. Nachfolgend finden Sie einen Fallstudienbericht zum Debuggen eines Net-Stack-Projekts und zur Wiederherstellung nach einem Dienstausfall auf einem AI-Suggestion-Systemserver.

Dieses KI-Empfehlungssystem wird auf nur einem einzigen Server gehostet. Während dieser Server mit einer beträchtlich hohen Systemspezifikation ausgestattet ist, besteht seine Kernfunktion darin, Anfragen zu bearbeiten, die vom Webserver einer Musik-Streaming-Plattform gesendet werden, die Streaming-Anfragen von vielen Benutzern empfängt

Aus 15:34 Uhr – 16:34 Uhr WAT, der Server, der unseren AI Recommender-Dienst hostet, battle ausgefallen. Benutzer erlebten in der Musik-Net-App absurde und nicht zusammenhängende Songempfehlungen. Ab dem Zeitpunkt des Dienstausfalls 30 % unserer registrierten Benutzer haben Musik aus dem Bereich „Empfohlen“ in unserer Musik-App gestreamt. Die Hauptursache für den Dienstausfall battle, dass der Server, der den Empfehlungsdienst bereitstellte, aufgrund des hohen Datenverkehrs und unzureichender Rechenressourcen nicht mehr über genügend Speicher verfügte.

[15:31 pm] — Das Downside wurde von einem Überwachungsdienst DataDog entdeckt, der den Dienst verfolgte. Es wurde eine Warnmeldung an die Bereitschaftsperson, unseren Machine Studying Engineer, gesendet.

[15:34 pm] — Aufgrund der Erkenntnisse und Untersuchungen der DataDog-App wurde uns mitgeteilt, dass der Server aufgrund des großen Datenverkehrs ausgefallen ist, der die Systemleistung beeinträchtigt und viele Rechenressourcen wie RAM, CPU und Netzwerk-E/A verbraucht.

Der Server battle zu diesem Zeitpunkt durch eine große Anzahl von Benutzern überlastet. Es wurde davon ausgegangen, dass der Serverausfall darauf zurückzuführen battle, dass seine Computerspezifikation nicht in der Lage battle, großen Datenverkehr zu bewältigen.

Bei einer irreführenden Untersuchung wurde versucht herauszufinden, ob unser bereitgestellter IaaS-Clouddienst (Infrastructure as a Service) ausgefallen battle, was mit anderen Worten den Ausfall unseres AI Recommender Servers verursachte.

[15:36 pm] — Das Downside wurde zunächst an unseren Machine Studying Engineer und dann an unser KI-Workforce weitergeleitet.

Die Hauptursache für diesen Ausfall battle die Tatsache, dass unser AI Recommender-System einen Single Level of Failure aufwies. Ein Single Level of Failure auf einer stark nachgefragten Musik-Streaming-Plattform hat sich als katastrophal erwiesen.

[15:47 pm] — Das Downside wurde durch die schnelle Bereitstellung einer fehlertoleranten Webarchitektur für unser AI Recommder System gelöst. Diese neue Infrastruktur umfasst einen Load Balancer, der dann auf drei Auftragsserver verweist, die gleichzeitig als unser KI-Empfehlungssystem laufen.

Die zur Behebung des Ausfalls ergriffenen Korrektur- und Vorbeugungsmaßnahmen sind nachstehend aufgeführt.

  • Konfigurieren eines elastischen und skalierbaren Setups nicht nur für das KI-System, sondern auch für jeden anderen wichtigen Serviceserver, um einen Single Level of Failure zu eliminieren. Dieses neue Setup wurde so konfiguriert, dass es in Zeiten mit hohem Benutzerverkehr vertikal skaliert werden kann.
  • Ein geeigneter Load Balancer wurde außerdem für die Ausführung eines Spherical-Robin-Planungsalgorithmus konfiguriert
  • Die MySQL-Datenbanken für die Server waren Repliken ihrer selbst, um eine Datensynchronisierung in Echtzeit zu ermöglichen.

Die folgenden Aktionen wurden von einem Amazon Cloud Formation Script IAC (Infrastructure as Code) durchgeführt, wodurch die neue Infrastruktur und ihre Konfigurationen in kürzester Zeit eingerichtet werden konnten.

  • Richten Sie einen Load Balancer ein.
  • Richten Sie drei neue AI-Recommender-System-Server ein, die vom Load Balancer verwaltet werden.
  • Öffnen Sie die Endpunkte jedes AI-Servers, damit sie für den Load Balancer sichtbar sind, indem Sie einen Nginx-Server konfigurieren.
  • Richten Sie HAproxy auf dem Load Balancer ein, um die AI Recommender System-Server erkennen zu können.
  • Konfigurieren Sie die MySql-Datenbanken jedes AI-Servers so, dass sie Replikate einer Grasp-MySql-Datenbank werden.
  • Die IP-Adresse des Load Balancers unserer Webanwendung zugänglich gemacht.
  • Das Cloud-Bildungsskript konfigurierte außerdem eine IAM-Rolle und richtete eine Firewall im Load Balancer und den AI-Servern ein, um Datenverkehr nur an autorisierte Systeme und Benutzer zuzulassen.

Meine sozialen Netzwerke:
Twitter!🚀😎





Source link

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here