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.