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.