Додому Internet & IT Wie große Websites Millionen von Besuchern bewältigen, ohne abzustürzen

Wie große Websites Millionen von Besuchern bewältigen, ohne abzustürzen

Es ist leicht zu glauben, dass für die Bedienung eines großen Publikums ein Serverraum von der Größe eines Lagerhauses erforderlich ist. Dies ist jedoch nicht immer der Fall. Wenn Ihre Website statisch ist, kann eine kleine Maschine Hunderttausende Besucher verarbeiten. Stellen Sie sich einen einfachen 500-MHz-Celeron vor, auf dem Linux und Apache laufen. Stellen Sie eine Verbindung zu einer T3-Leitung her (45 Millionen Bit pro Sekunde). Diese Einstellung verarbeitet sehr große Mengen an Datenverkehr. ISPs mieten das gesamte Setup für weniger als 1.000 US-Dollar pro Monat.

Aber hier liegt das Problem. Die beliebtesten Websites sind nicht klein. Sie prallten schnell gegen die Wand. Eine Box kann nicht unbegrenzt erweitert werden.

„Wenn Sie mit Millionen von Besuchern und dynamischen Inhalten umgehen müssen, geht Ihre Maschine kaputt.“

Grenzen treten auf, wenn ein bestimmter Schwellenwert erreicht wird. Erstens müssen Sie möglicherweise jeden Tag Millionen von Besuchern versorgen. Eine einzelne CPU hat Einschränkungen. Der zweite Grund ist ein Hardwarefehler. Wenn einer Ihrer Server ausfällt, bleibt Ihre Site dunkel, bis Sie sie durch einen neuen ersetzen und erneut konfigurieren. Drittens verbrauchen große oder komplexe Seiten schnell Ressourcen. Viertens: Wenn sich die Seite für jeden Benutzer dynamisch ändern muss, muss der Server mehr arbeiten. Schließlich erhöht die Hintergrundverarbeitung die Latenz. Die meisten großen Standorte erfüllen alle diese Kriterien und erfordern daher eine umfangreiche Infrastruktur.

Die drei wichtigsten Skalierungsstrategien

Wenn das Budget es zulässt, können Ingenieure während der Spitzenverkehrszeit drei Hauptrouten wählen.

  1. Kaufen Sie eine riesige Maschine mit unbegrenzter Leistung und Redundanz.
  2. Teilen Sie die Last auf viele kleinere Maschinen auf.
  3. Kombinieren Sie die beiden Methoden.

Der verteilte Ansatz kommt am häufigsten bei großen Webanwendungen zum Einsatz. Möglicherweise haben Sie dies sogar in Aktion gesehen, ohne es zu merken. Wenn sich die URL jedes Mal, wenn Sie die Website besuchen und aktualisieren, geringfügig ändert (zum Beispiel „www1.xyz.com“ und „www2.xyz.com“), ist das ein Hinweis. Diese Site verwendet eine Reihe unabhängiger Computer. Jeder nutzt Webserver-Software. Sie alle verwenden dieselbe Website-Seitenkopie.

Die wahre Magie liegt in der Art und Weise, wie eingehende Anfragen verteilt werden. Dies kann im Wesentlichen auf zwei Arten geschehen.

DNS-basierter Lastausgleich

Das Domain Name System (DNS) übersetzt für Menschen lesbare Namen in IP-Adressen. Einige DNS-Konfigurationen verwenden einen Round-Robin-Ansatz. DNS-Server durchlaufen bei jedem Eingang einer Anfrage die Liste der verfügbaren IP-Adressen.

Dadurch wird die Last auf natürliche Weise verteilt. Jeder Server empfängt einen Teil des Datenverkehrs. Sie reden nicht miteinander über die Ladung. Stellen Sie nur statische oder vorab generierte Inhalte bereit, auf die sie Zugriff haben.

Lastausgleichsschalter

Ein fortgeschrittenerer Ansatz beinhaltet einen Load Balancer. Der gesamte Netzwerkverkehr erreicht zunächst den zentralen Switch. Diese Maschine fungiert als Verkehrspolizist. Leitet die Anfrage an einen verfügbaren Server weiter.

Der Schalter errät nicht nur. Überprüfen Sie jeden Server, um festzustellen, welcher am wenigsten ausgelastet ist. Dadurch ist eine gleichmäßige Arbeitsteilung gewährleistet. HowStuffWorks hat diesen Ansatz gewählt. Der Load Balancer des Unternehmens verteilt den Datenverkehr auf drei verschiedene Webserver. Wenn einer von ihnen ausfällt, halten die anderen beiden die Site am Leben. Keine Ausfallzeit für den Benutzer.

Diese redundante Konfiguration hat klare Vorteile. Der Ausfall einer Maschine führt nicht zum Absturz der gesamten Website. Sie können die Kapazität auch stufenweise erhöhen. Brauchen Sie mehr Leistung? Fügen Sie ein weiteres Feld hinzu. Es ist flexibel.

Es gibt einen Nachteil. Diese verteilten Maschinen sind für die Transaktionsverarbeitung immer noch häufig auf zentralisierte Datenbanken angewiesen. Mit zunehmendem Datenverkehr wurde diese Datenbank zu einem Engpass.

Eine riesige Maschine

Nicht jeder verteilt. Der TerraServer von Microsoft geht den Weg der „einzelnen großen Maschine“.

TerraServer speichert Terabytes an Satellitenbildern. Es verarbeitet Millionen von Anfragen nach diesen Daten. Es verwendet riesige Hardware der Enterprise-Klasse. Nehmen Sie zum Beispiel den Digital AlphaServer 8400. Es verfügt über acht 440-MHz-64-Bit-Prozessoren. Enthält 10 GB fehlergeprüften und korrigierten RAM.

Das ist viel Leistung in einem Gehäuse. Dadurch wird die Komplexität der Netzwerkkoordination zwischen mehreren Servern vermieden. Aber es ist teuer. Fällt ein AlphaServer aus, stoppt der Dienst.

Die Wahl hängt von Ihrem Geschäftsmodell ab. Statischer Inhalt bevorzugt einfache Setups. Dynamische Transaktionen erfordern Redundanz. Datenintensive Anwendungen erfordern möglicherweise Rohleistung.

Wenn Sie mehr erfahren möchten, gibt es zahlreiche Ressourcen. Das W3C setzt Maßstäbe. Microsoft hat ein Whitepaper zum Windows NT-Lastausgleich veröffentlicht. IBM stellt ein Red Book zum Server-Balancing bereit. Ein Artikel über verteilte kollaborative Webserver beschreibt diese Theorie.

Aber die Kernrealität bleibt einfach. Verkehrswaage. Hardwaregrenzen. Ingenieure schlagen eine Brücke zwischen beidem. Wie Sie es erstellen, hängt davon ab, wofür Ihre Website tatsächlich verwendet wird.

Exit mobile version