Technologien, die eine Verbreitung im YouTube-Maßstab ermöglichen?

34

Youtube ist bekanntlich riesig. Es gibt Tausende gleichzeitiger Benutzer, die mindestens 2 Megabyte pro Video streamen. Offensichtlich wird das viel Verkehr sein ... viel zu viel für irgendeinen Server.

Welche Netzwerktechnologien ermöglichen das Pushen von 4 Milliarden Videos pro Tag?

user1034912
quelle

Antworten:

51

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.comund 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.

Jeff Ferland
quelle
4
Ihr erfundenes Beispiel für Scherben ist das Beste, das ich je gesehen habe. Jeder scheint aus irgendeinem Grund eine große Komplikation aus diesem einfachen Konzept zu machen.
kizzx2
@ Jeff, wäre großartig, wenn du einige Zitate hinzufügst oder klarstellst, dass dies Endbenutzerspekulation ist.
Pacerier
23

Für große Sites werden verschiedene Techniken verwendet.

www.youtube.com -> beliebig viele IP-Adressen

Schauen wir uns DNS an:

www.youtube.com is an alias for youtube-ui.l.google.com.
youtube-ui.l.google.com has address 74.125.226.14
youtube-ui.l.google.com has address 74.125.226.0
youtube-ui.l.google.com has address 74.125.226.1
youtube-ui.l.google.com has address 74.125.226.2
youtube-ui.l.google.com has address 74.125.226.3
youtube-ui.l.google.com has address 74.125.226.4
youtube-ui.l.google.com has address 74.125.226.5
youtube-ui.l.google.com has address 74.125.226.6
youtube-ui.l.google.com has address 74.125.226.7
youtube-ui.l.google.com has address 74.125.226.8
youtube-ui.l.google.com has address 74.125.226.9
youtube-ui.l.google.com has IPv6 address 2001:4860:800f::88

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.8DNS-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 von sstatic.netanstatt von bereitgestellt serverfault.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.

MikeyB
quelle
"Theoretisch könnte es Verbindungen zu jedem anderen Netzwerk haben, zu dem es Video lieferte. In der realen Welt ist das natürlich nicht möglich, aber denken Sie über die Idee nach." Warum ist das in der realen Welt nicht möglich? Sie können viele Internetanbieter abonnieren
user1034912
Sie möchten wirklich unabhängige Verbindungen zu mehr als 35.000 verschiedenen Netzwerken haben? Das ist nicht praktisch.
MikeyB
12

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.

Daniel Pittman
quelle
1
Wie setzt Google eine Million Server weltweit ein? Vermieten sie die Server? Wäre es nicht schwierig für sie, die Datensicherheit für die Verwaltung aller Server von Drittanbietern aufrechtzuerhalten?
user1034912
2
Sie besitzen jeden einzelnen von ihnen. Im Ernst, sie kaufen - na ja, machen heutzutage - sie. Dies kostet in gewisser Weise so viel, wie Sie sich vorstellen, in anderen Fällen jedoch weniger.
Daniel Pittman
1
investor.google.com/financial/tables.html könnte helfen; Q4, 2011, 10.000-ish ... Millionen-Dollar kamen herein. Im Ernst, sie haben eine Größenordnung, die Sie sich nicht vorstellen können.
Daniel Pittman
2
@ user1034912 - ja, es ist umwerfend. Aber das ist Google , warum zum Teufel nicht? Es gibt weltweit Tausende von Rechenzentren, von denen Google nur einen winzigen Bruchteil betreibt.
Tombull89
1
@Tomtom - Warum ist es für einen Benutzer, der mit Servertechnologie nicht vertraut ist, nicht schwer zu glauben? Es ist unhöflich und extrem anstößig zu sagen, dass jemand, der nicht weiß, dass Google Hunderte von Servern hat, unter einem Stein lebt. Gehen Sie nach draußen und fragen Sie eine Handvoll normaler Nicht-Techniker. Ich garantiere, sie kennen weder die Größe der Google-Server noch deren tatsächliche Größe. Stöbern normale Leute normalerweise auch in Bilanzen? Müssen Sie immer alle Neuigkeiten über Rechenzentren lesen? Ehrlich gesagt ist es mir egal, wie viel Wiederholung du hast, aber unhöflich, respektlos und erniedrigend zu sein, bringt dich nirgendwo im Leben hin.
14.
3

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.

virtuell Nathan
quelle
Übrigens arbeiten Sie für Google?
Pacerier
2

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)

Gabor Vincze
quelle
Einige der Daten dort sind jedoch veraltet ....
Pacerier