Skalierung im Backend
In einem sehr einfachen Setup wird ein DNS-Eintrag an eine IP gesendet, die zu einem Server gehört. Jeder auf der ganzen Welt geht zu dieser einzigen Maschine. Bei genügend Traffic ist das einfach zu viel, um es zu verarbeiten, lange bevor Sie die Größe von YouTube erreichen. In einem einfachen Szenario fügen wir einen Load Balancer hinzu. Die Aufgabe des Lastenausgleichs besteht darin, den Datenverkehr auf verschiedene Back-End-Server umzuleiten, während er als ein Server angezeigt wird.
Bei so vielen Daten wie YouTube wäre es zu viel zu erwarten, dass alle Server in der Lage sind, alle Videos zu liefern . Daher müssen wir eine weitere indirekte Ebene hinzufügen: Sharding . In einem erfundenen Beispiel ist ein Server für alles verantwortlich, was mit "A" beginnt, ein anderer besitzt "B" und so weiter.
Den Rand näher rücken
Mit der Zeit wird die Bandbreite jedoch immer größer und Sie verschieben eine Menge Daten in einen Raum. Jetzt, da wir sehr beliebt sind, ziehen wir es aus dem Raum. Die beiden Technologien, die hier von Bedeutung sind, sind Content Distribution Networks und Anycasting .
Wo auf der ganzen Welt große statische Dateien angefordert werden, verweise ich nicht mehr auf direkte Links zu meinen Hosting-Servern. Stattdessen stelle ich einen Link zu meinem CDN-Server her. Wenn jemand nach einem Video fragt, fragt er meinen CDN-Server danach. Das CDN ist dafür verantwortlich, dass das Video bereits vorhanden ist, dass eine Kopie vom Hosting-Server angefordert wird oder dass ich umgeleitet werde. Dies hängt von der Architektur des Netzwerks ab.
Wie ist das CDN hilfreich? Nun, eine IP kann tatsächlich zu vielen Servern gehören, die sich an vielen Orten auf der ganzen Welt befinden. Wenn Ihre Anfrage Ihren Computer verlässt und an Ihren ISP geht, ordnet der Router den besten Pfad (kürzester, schnellster, kostengünstigster ... unabhängig von der Metrik) zu dieser IP-Adresse zu. Häufig befindet sich ein CDN in oder neben dem nächstgelegenen Tier 1- Netzwerk.
Also habe ich ein Video von YouTube angefordert. Die tatsächliche Maschine, auf der es gespeichert wurde, ist mindestens iad09s12.v12.lscache8.c.youtube.com
und tc.v19.cache5.c.youtube.com
. Diese werden in der Quelle meiner Webseite angezeigt, die ich gerade betrachte, und wurden von einer Art Indexserver bereitgestellt. Von Maine aus fand ich den tc19-Server in Miama, Florida. Von Washington aus fand ich den tc19-Server in San Jose, Kalifornien.
Für große Sites werden verschiedene Techniken verwendet.
www.youtube.com
-> beliebig viele IP-AdressenSchauen wir uns DNS an:
So könnte www.youtube.com tatsächlich zu mehreren IP-Adressen gehen.
Beliebige IP-Adressen
Eine einzelne IP kann von einer beliebigen Anzahl autonomer Systeme (einem Netzwerk im Internet) gleichzeitig verarbeitet werden. Beispielsweise werden viele der Stamm-DNS-Server sowie der
8.8.8.8
DNS-Server von Google an vielen Stellen auf der ganzen Welt übertragen. Die Idee ist, dass Sie in den USA das US-amerikanische Netzwerk und in Großbritannien das britische Netzwerk erreichen.Medien, die von einem anderen Server stammen
Nur weil Sie eingeschaltet sind
www.youtube.com
, bedeutet dies nicht, dass alle Inhalte von demselben Server stammen müssen. Direkt auf dieser Site werden statische Ressourcen vonsstatic.net
anstatt von bereitgestelltserverfault.com
.Wenn wir zum Beispiel Kaley Cuocos Slave Leia PSA sehen, stellen wir fest, dass die Medien von bedient werden
v10.lscache5.c.youtube.com
.mehrere Internetverbindungen
Ich versichere dir, Youtube hat mehr als eine Internetverbindung. Ungeachtet aller anderen Techniken könnte Youtube, selbst wenn es sich wirklich um eine einzelne Site und einen einzelnen Server handelt, theoretisch Verbindungen zu jedem anderen Netzwerk haben, zu dem es Videos liefert. In der realen Welt ist das natürlich nicht möglich, aber denken Sie über die Idee nach.
Einige oder alle dieser Ideen (und mehr!) Können zur Unterstützung eines Content Delivery-Netzwerks verwendet werden . Lesen Sie in diesem Artikel nach, wenn Sie mehr wissen möchten.
quelle
Sie können sich zu Unrecht vorstellen, dass YouTube (auch bekannt als Google) nur einen Server hat. Diese Infor- mation kann helfen, den Umfang des Systems zu veranschaulichen, das diesen Dienst unterstützt.
Selbst wenn Sie nur einen Standort haben, können Sie mit Tools wie Load Balancer und allem absolut mehr als einen Server hinter einem Namen und sogar eine IP-Adresse haben.
Google ist jedoch sehr präsent und nutzt Tools wie AnyCast - eine Technik, mit der dieselbe IP an mehreren Stellen im Internet veröffentlicht und Personen an den nächstgelegenen Serverpool geleitet werden, dem sie gehören -, um die Infrastruktur zu sichern.
quelle
Ich werde etwas auf die Netzwerkseite eingehen: Google verfügt über einen Point of Presence (PoP) in 73 einzigartigen Rechenzentren auf der ganzen Welt (ohne eigene). Sie sind Mitglied von 69 einzigartigen Internetbörsen . Google befindet sich in mehr Rechenzentren und Internet Exchange-Punkten als andere auf peeringdb gelistete Netzwerke.
Die gesamte Internet-Austauschkapazität von Google beträgt> 1,5 TBit / s und 1,5 TBit / s sind für Netzwerke mit mehr als 100 MBit / s Datenverkehr bei Google reserviert. Nachdem Sie "genügend Volumen" haben , werden Sie zu Private Peering (PNI) verschoben.
Neben Internet Exchange Peering und Private Peering (mit AS15169) betreibt YouTube auch ein Transitnetzwerk: AS43515 und ein anderes Netzwerk, von dem ich annehme, dass es für kostenpflichtiges Peering / Überlauf gilt, AS36040. Google betreibt auch Google Global Cache- Server, damit ISPs ihre Dienste noch lokaler in ihrem Netzwerk bereitstellen können. (Daten von peeringdb, bgp.he.net).
Meiner Erfahrung nach verwendet YouTube viel mehr als nur IP-Geolocation oder Anycast, um einen Ort für die Bereitstellung von Videos auszuwählen.
Google betreibt ein riesiges globales Backbone-Netzwerk, besitzt Dark Fibre und hat U-Boot-Kabel finanziert . Das Verkehrsaufkommen, das YouTube generiert, ist riesig! Ich vermute, YouTube hat ein maximales Verkehrsaufkommen von> 12 TBit / s. Google repräsentiert mindestens 7% (und wahrscheinlich> 10%) des gesamten Internetverkehrs zwischen Domains.
Um Ihre Frage aus der Netzwerkperspektive tatsächlich zu beantworten, müssen Sie, um wie YouTube zu skalieren, massive Investitionen in Ihr Netzwerk tätigen - von der Glasfaser im Boden über die WDM-Ausrüstung bis hin zu den Routern. Sie müssen den Inhalt und das Netzwerk so nah wie möglich an Ihre Benutzer bringen. Das bedeutet normalerweise Peering, IXs und vielleicht ein bisschen Transit. Sie müssen in der Lage sein, Benutzern auf intelligente Weise mitzuteilen, woher die Inhalte stammen sollen, um den Datenverkehr so gleichmäßig und billig wie möglich zu halten. Und natürlich müssen Sie über die massive Serverinfrastruktur verfügen, um 4 Milliarden Aufrufe pro Tag zu speichern, zu verarbeiten, zu konvertieren und zu liefern!
Wenn Sie sich für den Server interessieren, habe ich einen Blog-Beitrag verfasst, in dem einige der kürzlich veröffentlichten Datencenter-Bilder aufgeschlüsselt sind.
quelle
Wenn Sie mehr über Großsysteme und die von diesen Unternehmen verwendeten Technologien erfahren möchten, ist http://highscalability.com die beste Quelle
Die größten Unternehmen wie Google oder Akamai haben immer Komponenten, die sie selbst geschrieben / erstellt haben. (zum Beispiel hat Akamai einen Webserver für ihre Dienste entwickelt)
quelle