Mise à l'échelle sur le backend
Dans une configuration très simple, une entrée DNS va à une IP qui appartient à un serveur. Partout dans le monde, tout le monde utilise cette machine. Avec suffisamment de trafic, c'est trop difficile à gérer bien avant que vous ne deveniez la taille de YouTube. Dans un scénario simple, nous ajoutons un équilibreur de charge. L'équilibreur de charge a pour tâche de rediriger le trafic vers divers serveurs principaux tout en apparaissant sous la forme d'un seul serveur.
Avec autant de données que YouTube, il serait excessif d’attendre que tous les serveurs soient capables de diffuser toutes les vidéos. Nous avons donc une autre couche d’indirection à ajouter: le partage . Dans un exemple artificiel, un serveur est responsable de tout ce qui commence par "A", un autre possède "B", etc.
Rapprocher le bord
Finalement, cependant, la bande passante devient intense et vous déplacez BEAUCOUP de données dans une pièce. Donc, maintenant que nous sommes très populaires, nous le sortons de cette pièce. Les deux technologies qui comptent ici sont Content Content Networks et Anycasting .
Là où j'ai ces gros fichiers statiques demandés partout dans le monde, je cesse de pointer des liens directs vers mes serveurs d'hébergement. Ce que je fais à la place est de mettre en place un lien vers mon serveur CDN. Lorsque quelqu'un demande à regarder une vidéo, il le demande à mon serveur CDN. Le CDN est responsable d'avoir déjà la vidéo, de demander une copie du serveur d'hébergement ou de me rediriger. Cela varie en fonction de l'architecture du réseau.
Comment ce CDN est-il utile? Eh bien, une adresse IP peut en réalité appartenir à de nombreux serveurs situés à de nombreux endroits dans le monde. Lorsque votre demande quitte votre ordinateur et se rend chez votre fournisseur de services Internet, leur routeur associe le meilleur chemin (métrique, métrique, rapide, peu coûteux…) à cette adresse IP. Souvent, pour un CDN, ce sera sur ou à côté de votre réseau de niveau 1 le plus proche .
J'ai donc demandé une vidéo à YouTube. La machine sur laquelle il a été stocké est au moins iad09s12.v12.lscache8.c.youtube.com
et tc.v19.cache5.c.youtube.com
. Ceux-ci apparaissent dans la source de ma page Web que je regarde et ont été fournis par une forme de serveur d'indexation. Maintenant, du Maine, j’ai trouvé que le serveur tc19 était situé à Miama, en Floride. De Washington, j’ai trouvé que le serveur tc19 se trouvait à San Jose, en Californie.
Plusieurs techniques sont utilisées pour les grands sites.
www.youtube.com
-> un nombre quelconque d'adresses IPRegardons dans le DNS:
Ainsi, www.youtube.com pourrait en réalité accéder à plusieurs adresses IP.
adresses IP anycasted
Une même adresse IP peut être gérée simultanément par un nombre quelconque de systèmes autonomes (un réseau sur Internet). Par exemple, de nombreux serveurs DNS racine ainsi que le
8.8.8.8
serveur DNS de Google sont diffusés à n'importe quel moment dans le monde. L'idée est que si vous êtes aux États-Unis, vous frappez le réseau américain et si vous êtes au Royaume-Uni, vous frappez le réseau britannique.médias provenant de différents serveurs
Ce n’est pas parce que vous êtes
www.youtube.com
connecté que tout le contenu doit provenir du même serveur. Sur ce site, les ressources statiques sont servies à partirsstatic.net
deserverfault.com
.Par exemple, si nous regardons le message d'intérêt public de Slave Leia de Kaley Cuoco, nous constatons que les médias sont servis
v10.lscache5.c.youtube.com
.plusieurs connexions internet
Je vous assure que Youtube dispose de plusieurs connexions Internet. Malgré toutes les autres techniques, même si Youtube était en réalité un seul site et un seul serveur, il pouvait théoriquement être connecté à tous les autres réseaux auxquels il servait de la vidéo. Dans le monde réel, ce n'est pas possible, bien sûr, mais considérons l'idée.
Chacune de ces idées (et plus!) Peut être utilisée pour soutenir un réseau de diffusion de contenu . Lisez cet article si vous souhaitez en savoir plus.
la source
Vous avez tort d’imaginer que YouTube (Google) n’a qu’un seul serveur; Cette information pourrait aider à illustrer l’échelle du système qui supporte ce service.
Même si vous n'avez qu'un seul point de présence, vous pouvez absolument avoir plus d'un serveur derrière un seul nom, et même une adresse IP, en utilisant des outils tels que les équilibreurs de charge, etc.
Cependant, Google a énormément de points de présence et utilise des outils tels qu'AnyCast, une technique permettant de publier la même adresse IP à plusieurs endroits sur Internet, et faisant en sorte que les utilisateurs soient routés vers le pool de serveurs le plus proche, afin de soutenir l'infrastructure.
la source
Je parlerai un peu du côté réseau: Google possède un point de présence (PoP) dans 73 centres de données uniques dans le monde (sans compter le leur). Ils sont membres de 69 échanges Internet uniques . Google se trouve dans plus de centres de données et de points Internet Exchange que les autres réseaux répertoriés sur peeringdb.
La capacité totale d'échange Internet de Google est supérieure à 1,5 T / s, et 1,5 T / s est réservé aux réseaux avec un trafic supérieur à 100 Mb / s avec Google, mais inférieur à ce que je suppose entre 2 et 3 Gbps. Une fois que vous avez «un volume suffisant» , vous êtes transféré vers un réseau de peering privé (PNI).
En plus des échanges entre homologues Internet et privés (avec AS15169), YouTube exploite également un réseau de transit: AS43515 et un autre réseau qui, je suppose, est dédié aux homologues / débordements rémunérés, AS36040. Google exploite également les serveurs Google Global Cache , permettant ainsi aux fournisseurs de services Internet de se déployer encore plus localement au sein de leur réseau. (Données de peeringdb, bgp.he.net).
Sur la base de mon expérience, je pense que YouTube utilise bien plus que la géolocalisation IP ou Anycast pour choisir un emplacement de diffusion vidéo.
Google exploite un énorme réseau dorsal mondial, ils possèdent la fibre noire , ils ont financé des câbles sous-marins . Le volume de trafic généré par YouTube est énorme! Je suppose que YouTube a un volume de trafic maximal de> 12 To / s. Google représente au moins 7% (et probablement plus de 10%) de l’ensemble du trafic Internet inter-domaines.
Donc, pour répondre à votre question, d’un point de vue réseau, pour pouvoir évoluer comme YouTube, vous devez investir énormément dans votre réseau - de la fibre optique terrestre au matériel WDM et aux routeurs. Vous devez rapprocher le plus possible le contenu et le réseau de vos utilisateurs. Cela signifie généralement un peering, des IX et éventuellement un peu de transit. Vous devez être capable de dire intelligemment aux utilisateurs où obtenir le contenu pour que le trafic soit aussi distribué que possible et le moins cher possible. Et bien sûr, vous devez disposer d'une infrastructure de serveur massive pour stocker, traiter, convertir et fournir 4 milliards de vues par jour!
Si vous êtes curieux du côté serveur, j’ai écrit un article de blog décrivant certaines des images récemment publiées du centre de données.
la source
Si vous voulez en savoir plus sur les systèmes à grande échelle et les technologies utilisées par ces entreprises, la meilleure source est maintenant http://highscalability.com
Les plus grandes entreprises comme Google ou Akamai ont toujours des composants qu’elles ont elles-mêmes écrites / créées. (par exemple, Akamai a développé un serveur Web pour leurs services)
la source