Des technologies permettant la distribution sur YouTube?

34

Comme nous le savons, Youtube est énorme. Des milliers d'utilisateurs simultanés diffusent au moins 2 mégaoctets par vidéo. Évidemment, cela génère beaucoup de trafic… beaucoup trop pour un seul serveur.

Quelles technologies de réseau permettent de diffuser 4 milliards de vidéos par jour?

utilisateur1034912
la source

Réponses:

51

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

Jeff Ferland
la source
4
Votre exemple artificiel de partage est le meilleur que j'ai vu. Tout le monde semble faire une grande complication de ce concept simple pour une raison quelconque.
kizzx2
@ Jeff, serait bien si vous ajoutez des citations ou si vous indiquez clairement qu'il s'agit d'une spéculation de l'utilisateur final.
Pacerier
23

Plusieurs techniques sont utilisées pour les grands sites.

www.youtube.com -> un nombre quelconque d'adresses IP

Regardons dans le DNS:

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

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.8serveur 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.comconnecté que tout le contenu doit provenir du même serveur. Sur ce site, les ressources statiques sont servies à partir sstatic.netde serverfault.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.

MikeyB
la source
"En théorie, il pourrait avoir des connexions avec 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." Pourquoi n'est-ce pas possible dans le monde réel? Vous pouvez vous abonner à de nombreux fournisseurs d'accès Internet
user1034912
Vous voulez vraiment avoir des connexions indépendantes à plus de trente-cinq mille réseaux distincts? Ce n'est pas pratique
MikeyB
12

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.

Daniel Pittman
la source
1
Comment Google met-il un million de serveurs dans le monde? Est-ce qu'ils louent les serveurs? Ne serait-il pas difficile pour eux de maintenir la sécurité des données en gérant tous ces serveurs tiers?
user1034912
2
Ils possèdent chacun d'entre eux. Sérieusement, ils les achètent - eh bien, les fabriquent ces jours-ci. Cela coûte autant que vous pouvez l'imaginer, à certains égards, mais moins à d'autres.
Daniel Pittman
1
investor.google.com/financial/tables.html pourrait aider; Le 4ème trimestre de 2011, 10 000… millions de dollars sont entrés. Sérieusement, ils sont à une échelle que vous ne pouvez pas imaginer.
Daniel Pittman
2
@ user1034912 - oui, c'est stupéfiant. Mais c'est Google , alors pourquoi pas? Il existe des milliers de centres de données dans le monde, Google en exploite une infime fraction.
tombull89
1
@ Tomom - Pourquoi ne serait-il pas difficile à croire pour un utilisateur qui ne connaît pas bien la technologie de serveur? Il est impoli et extrêmement offensant de dire que quelqu'un qui ne sait pas que Google possède des centaines de serveurs vit sous le marteau. Allez à l'extérieur et demandez à une poignée de non-techniciens habituels et je leur garantis qu'ils ne connaissent pas la taille des serveurs de Google ni même ce qu'ils sont. En outre, les personnes ordinaires consultent-elles normalement les bilans? Devez-vous toujours lire toutes les nouvelles sur les centres de données? Honnêtement, je me fiche de combien de représentants vous avez, mais être impoli, irrespectueux et humiliant ne vous mène nulle part dans la vie.
DMan
3

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.

virtuellement Jonathan
la source
Btw travaillez-vous pour Google?
Pacerier
2

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)

Gabor Vincze
la source
Certaines données y sont périmées ....
Pacerier