Wie erreichen Websites wie Google eine hohe Verfügbarkeit? [geschlossen]


7

So wie ich es verstehe, wird beim Öffnen einer Website wie Google der Hostname nachgeschlagen und mein Browser verwendet die resultierende IP-Adresse, um eine Verbindung zum Server herzustellen und die Seite abzurufen.

Wie stellen Hochverfügbarkeits-Websites jedoch sicher, dass diese einzelne IP-Adresse immer erreichbar ist? Ist das nicht eine einzige Fehlerquelle?


4
Ihre Frage ist mehrdeutig und in der aktuellen Form nur schwer vernünftig zu beantworten. Hochverfügbarkeit ist ein expansives Thema mit zahlreichen Ansätzen.
Warner

1
Warner ist genau richtig. Aus heutiger Sicht ist Ihre Frage viel zu vage für jede sinnvolle Antwort. Jede Antwort führt wahrscheinlich zu mehreren zusätzlichen Fragen. Ich würde vorschlagen, dass Sie googeln, einige Wikipedia-Seiten lesen, sogar vorhandene Serverfehlerfragen durchsuchen und dann mit spezifischeren Fragen zu Themen zurückkehren, die Sie nicht verstehen.
ThatGraemeGuy

1
Wie machen Sie das? Mit viel Geld.
Joeqwerty

[seufzt] . Eine völlig vernünftige und spezifische Frage (wie erstellt man eine Website ohne SPOF?), Die verspottet und geschlossen wurde, ohne dass eine einzige klare Antwort gegeben wurde. Ich lasse nicht klüger als ich angekommen bin.
Mark Amery

Antworten:


8

Es gibt zwei gängige Lösungen für die Hochverfügbarkeit von Websites: DNS-Round-Robin und IP-Lastausgleich.

DNS Round Robin bedeutet, dass Sie jedes Mal, wenn Sie einen DNS-Server nach dem Namen der Site abfragen, unterschiedliche IP-Adressen erhalten. Dies hilft bei der Verteilung von Anforderungen auf mehrere Server und vermeidet auch den einzelnen Fehlerpunkt, auf den Sie hingewiesen haben. Dies ist die DNS-Antwort für www.google.com(wenn Sie zu einem der autorisierenden Nameserver für die Domain "google.com" gefragt werden):

> www.google.com
Server:  ns1.google.com
Address:  216.239.32.10

www.google.com  canonical name = www.l.google.com
www.l.google.com        internet address = 74.125.77.99
www.l.google.com        internet address = 74.125.77.104
www.l.google.com        internet address = 74.125.77.147

Eine andere gängige Lösung, die auch gleichzeitig verwendet werden könnte (und in diesem Fall sehr wahrscheinlich ist), ist der IP-Lastausgleich. dh diese IP-Adressen werden nicht tatsächlich Servern zugewiesen, sondern stattdessen Lastausgleichsgeräten (oder Reverse-Proxys oder einer ähnlichen Lösung), die die Anforderungen dann an einen von mehreren Back-End-Servern weiterleiten. Sollte einer dieser Server ausfallen, wird ein anderer verwendet.

Mehr Infos hier:

http://en.wikipedia.org/wiki/Round_robin_DNS
http://en.wikipedia.org/wiki/Load_balancing_(computing)


2
Angesichts der Größe von Google ist es tatsächlich mehr als das.
TomTom

3
Ich bin sicher, Sie können auch in DNS Anycasting hinzufügen
Mark Henderson

5
-1 aus einem Grund - DNS Round Robin ist KEINE Hochverfügbarkeitslösung. Es verteilt die Last auf alle IP-Adressen, unabhängig davon, ob sie verfügbar sind oder nicht.
TomTom

2
BGP ist auch der Schlüssel. Wirklich eine zu allgemeine Frage. Wir konnten den ganzen Tag lang keine Details auswählen.
Warner

Dies ist die Antwort, nach der ich gesucht habe. Ich wusste nicht, dass es so etwas wie DNS Round Robin gibt! Vielen Dank!
Chris

1

Eine IP-Adresse ist nicht unbedingt ein SPOF, da sie auf jeden Fall dynamisch (auch als Failover bezeichnet) auf einen fehlerfreien Server zurückgeführt werden kann, falls der vorherige Server, auf dem sie gespeichert ist, schief geht.


1

Google verwendet höchstwahrscheinlich DREI Ansätze gleichzeitig:

  • Im Backend stehen Ihnen mehrere Server zur Verfügung, um Anforderungen zu bearbeiten. Sie haben ihre eigenen IP-Adressen.
  • Vor ihnen befinden sich Hardware Load Balancer, die Anfragen an die dahinter liegenden Server verteilen. Sie haben jeweils eine öffentliche IP-Adresse, können jedoch 30, 60 oder sogar mehr physische Server abdecken. Sie selbst sind wahrscheinlich von einem großen Hersteller überflüssig.
  • Vorne wird DNS Round Robin wahrscheinlich verwendet. Ermöglicht die Lastverteilung auf noch mehr Lastausgleicher.

Eigentlich ist das alles schön beschrieben.

http://en.wikipedia.org/wiki/Google_platform

Beachten Sie, dass wir von Hunderten von Tausenden von Servern sprechen. Viele Rechenzentren voller Sachen.

Google ist insofern etwas Besonderes, als die Server so gut wie schreibgeschützt sind. Sie erhalten eine Kopie des Index und stellen diese bereit, bis sie mit einer neuen aktualisierten Kopie neu abgebildet werden. An einem antwortenden Cluster werden niemals Aktualisierungen vorgenommen. Dies ist ungewöhnlich für eine Anwendung - aber nicht, weil Google klug ist oder so, nur weil ihre Anforderungen ungewöhnlich sind.


Nun, es liegt wahrscheinlich auch daran, dass Google schlau ist.
Mfinni

In diesem Fall nicht nur - ihre einfache Skalierung macht dies zum einzig praktikablen Ansatz. Die Anzahl der Server ist lächerlich hoch, aber dann ... sie sind alle ähnlich und sie brauchen sie einfach;)
TomTom

Das ergibt für mich keinen Sinn. Wenn Sie einen IP-Punkt an einem Load Balancer anstelle eines Servers erstellen, wird der Load Balancer sicher nur zum Single Point of Failure anstelle des Servers, anstatt den Single Point of Failure zu beseitigen .
Mark Amery

Nun, lernen. Nein, nicht unbedingt. Windows verfügt beispielsweise über einen IP Load Balancer. Setzen Sie 4 Maschinen ein. Dann befindet sich die HA-Ressource auf einer 5. IP (!) Und wird dynamisch behandelt. HA auf dieser Ebene ist ein gelöstes Problem - das Finden der Dokumentation für die Produkte in Google ist ein Problem, das Sie offensichtlich noch nicht gelöst haben.
TomTom

0

Hochverfügbarkeits-Websites verwenden viele Technologien wie DNS-Roots-Server, um jederzeit erreichbar zu sein.

Um Angriffe und Ausfälle zu vermeiden, können wir viele Lösungen bereitstellen:

  • Anycast-Lösungen
  • DNS-Lastausgleich
  • Lastausgleich und Reverse Proxy.
  • Failover-Lösungen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.