Qu'est-ce qu'un CDN et comment fonctionne-t-il?



Chiffres et faits (au lieu de l'introduction)


  • En 2010, la taille moyenne des pages Web était de 481 ko. En 2019 - déjà 1936,7 kB ( statistiques détaillées ). Au cours des trois dernières années, la valeur de cet indicateur a augmenté de 314,7%. Des études montrent que la tendance à augmenter la taille des pages Web se poursuit .
  • Les services de streaming audio et vidéo gagnent actuellement en popularité. En avril 2019, le nombre d'abonnés au service Spotify populaire était de 217 millions.
  • Selon les sondages, 25% des utilisateurs quittent une page Web si elle se charge pendant plus de 4 secondes. 74% des utilisateurs téléchargeant un site à partir d'un appareil mobile préfèrent ne pas attendre si le téléchargement dure plus de 5 secondes. 46% des utilisateurs refusent de traiter avec un service Web s'il est lent.


De quoi témoignent les faits ci-dessus?

Le fait qu'Internet devient de plus en plus «lourd» de contenu chaque année.
Et aussi que dans le monde moderne, la vitesse des sites Web et des services joue un rôle énorme. Si la vitesse est trop faible - cela est lourd de perte d'audience, et dans de nombreux cas - également de profit. Un moyen fiable de résoudre ce problème consiste à utiliser les réseaux de distribution de contenu (CDN).

Selectel propose un service CDN depuis 2014 et nous avons étudié en détail l'aspect technique du problème. Dans cet article, nous parlerons de l'appareil et des fonctionnalités du CDN moderne.

Termes clés


Avant de commencer une discussion de fond sur les fonctionnalités de CDN, définissons la terminologie de base.

CDN (Content Delivery Network) est une infrastructure de réseau géographiquement distribuée qui fournit une livraison rapide de contenu aux utilisateurs de services et de sites Web. Les serveurs inclus dans le CDN sont situés géographiquement de manière à minimiser le temps de réponse des utilisateurs du site / service.

Origine (origine) - le serveur sur lequel les fichiers source ou les données distribués via le CDN sont stockés.

PoP (point de présence) - un serveur de mise en cache dans le CDN, situé dans un emplacement géographique spécifique. Le terme bord est également utilisé pour désigner de tels serveurs.

Contenu dynamique - contenu généré sur le serveur au moment de la réception de la demande (soit modifié par l'utilisateur ou téléchargé à partir de la base de données).

Contenu statique - contenu stocké sur le serveur sous une forme inchangée (par exemple, fichiers binaires, fichiers audio et vidéo, JS et CSS).

Un peu d'histoire et de théorie


La forte augmentation d'Internet au milieu des années 90 a conduit à une situation où les serveurs ont commencé à supporter la charge. Avec les serveurs de cette époque (qui étaient parfois plus faibles en spécifications techniques que l'ordinateur portable moderne le plus productif), j'ai dû suivre différentes astuces: google, par exemple, «mise en cache hiérarchique» et autoroute de l'information - maintenant ces expressions ne sont utilisées que dans des articles sur l'histoire des technologies Internet . Pour comprendre comment la technologie de distribution de contenu s'est développée, faisons une petite digression théorique.

Remarque: la distribution de contenu statique et dynamique est associée à différents types de charge de serveur. Dans le cas d'un contenu dynamique, dont la génération est associée à des appels à la base de données, la vitesse du processeur et la quantité de RAM sont importantes.

Pour la distribution de contenu statique, qui dans la plupart des cas est très "lourd" et qui doit être téléchargé très rapidement, la vitesse du réseau est d'abord importante. La signification des solutions techniques pour accélérer la distribution de la statique est la suivante: fournir une mise à l'échelle horizontale sans synchronisation bidirectionnelle complexe avec le serveur principal.

Pour réduire la charge, les propriétaires de services Web à la fin des années 1990 ont commencé à distribuer des statiques et des dynamiques à partir de différents serveurs. De grands projets Web avec un public énorme dispersés dans le monde entier ont commencé à héberger des serveurs statiques dans différents emplacements géographiques.

Puis, à la fin des années 1990, des entreprises ont commencé à apparaître dans lesquelles l'organisation de la distribution de l'électricité statique est devenue l'un des principaux domaines d'activité. En 1998, Daniel Levine, étudiant au MIT, et Thomson Leighton, professeur de mathématiques, ont fondé Akamai. Aujourd'hui, c'est l'un des plus importants (sinon le plus grand) fournisseur de CDN au monde.

Déjà en 2004, plus de 3 000 entreprises utilisaient des CDN; le coût total de la livraison de contenu pouvait atteindre 20 millions de dollars par mois.

Le nombre de CDN dans le monde est en constante augmentation: les services pertinents sont fournis à la fois par de grandes sociétés internationales (par exemple, Akamai, Amazon, Cloudflare) et de nombreux fournisseurs régionaux ( revues détaillées ).

CDN n'est pas seulement utilisé pour distribuer des statistiques au sens strict du terme: la distribution de contenu sur plusieurs serveurs à travers le monde contribue à garantir la disponibilité pendant les heures de pointe.

Au cours des 10 à 12 dernières années, un autre type de contenu s'est répandu sur Internet - le streaming (de nombreux services de streaming audio et vidéo, qui sont aujourd'hui très populaires et ont un million, voire un milliardième audience). Aujourd'hui, la distribution est un autre cas d'utilisation courant pour CDN.

Examinez plus en détail les principes de fonctionnement et les fonctionnalités de l'utilisation de CDN.



Comment fonctionne CDN?


Imaginez un service Web utilisé par des gens dans toute la Russie. Les serveurs principaux sont situés à Saint-Pétersbourg et les utilisateurs sont situés dans divers emplacements géographiques: par exemple, à Krasnodar (2 604,2 km de Saint-Pétersbourg), Novossibirsk (3 826,1 km), Irkoutsk (5 661, 7 km) ou Vladivostok (9 602, 4 km). Plus l'utilisateur est éloigné du serveur d'origine, plus la réponse «originale» est longue. À l'aube du Runet, au tout début des années 2000, les habitants de Yuzhno-Sakhalinsk ou Petropavlovsk-Kamchatsky pouvaient attendre le chargement complet d'une page Web pendant 5, voire 10 minutes.

Lorsque vous utilisez CDN, tout se passe différemment: un utilisateur de Vladivostok est redirigé vers le serveur de mise en cache le plus proche géographiquement dans le cadre du CDN, ce qui rend la livraison de contenu statique beaucoup plus rapide.



Pour accélérer la distribution de la dynamique lors de l'utilisation de CDN, d'autres mécanismes sont utilisés: le fournisseur CDN réduit la route réseau due à son réseau.

Un autre scénario intéressant pour l'utilisation de CDN est ce que l'on appelle le streaming en direct: les internautes du monde entier peuvent regarder ou écouter la diffusion depuis les lieux des événements dans un navigateur (et parfois dans une application spéciale). C'est agencé de cette façon: un ou plusieurs serveurs d'origine reçoivent un flux de diffusion de la caméra, qui est immédiatement relayé aux points de présence. Les serveurs d'origine ne distribuent pas de contenu aux clients. Les CDN en streaming incluent également des équilibreurs de charge qui redirigent les demandes vers les serveurs périphériques les moins chargés pour le moment.

Comment la distribution de contenu est-elle organisée?


En règle générale, pour configurer la distribution de contenu statique via CDN, vous devez effectuer les étapes suivantes:

Étape 1: déplacez les statistiques du site vers un domaine distinct, par exemple, static.example.com - ce sera l'origine.

Étape 2: pour travailler via CDN, créez un domaine de la forme cdn.example.com.

Étape 3: connectez le CDN du fournisseur. Pour se connecter, le propriétaire du service Web doit informer le fournisseur des informations suivantes:
le domaine à partir duquel il prendra la statique - static.example.com;
le domaine à partir duquel la distribution ira est cdn.example.com.

Étape 4: Sur votre bureau d'enregistrement DNS, configurez un enregistrement CNAME à partir de cdn.example.com sur le domaine du fournisseur CDN, que le fournisseur CDN alloue lorsqu'il est connecté.
Par exemple, dans CDN Selectel, un tel domaine a la forme 85e77c09-bc03-43bf-b8f3-9492ae33390f.selcdn.net, où 85e72c09-bc03-43bf-b8f3-9492ae33390f est généré automatiquement.

Étape 5: sur votre site, modifiez le domaine des statistiques que vous prévoyez de distribuer via CDN à cdn.example.com.

L'utilisateur saisit dans la barre du navigateur l'adresse www.example.com , dont il reçoit une page HTML. De plus, tout le contenu statique, par exemple les images graphiques, est chargé à partir du CDN (à partir de l'adresse cdn.example.com).

Le contenu statique destiné à la distribution est souvent placé dans les magasins d'objets ( nous en avons parlé il y a six ans ). Il existe de nombreux plugins et extensions pour les CMS populaires (Wordpress, Joomla, Drupal, 1C Bitrix et autres), avec lesquels vous pouvez configurer l'intégration avec les services de stockage cloud et la distribution de statiques via CDN.

Après avoir connecté le CDN, le service Web fonctionnera sur le même serveur d'origine. Les parties mises en cache du site seront téléchargées sur les serveurs du réseau CDN. Le système trouve le serveur le plus proche de l'utilisateur et charge le plus rapidement possible les statistiques du site.

Prenons attention à un point important: les serveurs inclus dans le CDN ne sont pas similaires aux serveurs de fichiers sur lesquels le contenu est hébergé pour un téléchargement ultérieur. Les CDN ne sont pas utilisés pour stocker du contenu, mais pour la mise en cache basée sur des algorithmes spécifiques.

Comment le CDN comprend-il où se trouve le serveur de mise en cache le plus proche?


En règle générale, deux technologies populaires sont utilisées pour charger du contenu à partir de CDN: GeoDNS et AnyCast.

En utilisant GeoDNS, vous pouvez lier plusieurs adresses IP à un seul nom de domaine. Selon l'emplacement géographique (déterminé par l'adresse IP d'où provient la demande), l'utilisateur est redirigé vers le serveur le plus proche. Vous pouvez lire sur les fonctionnalités de GeoDNS dans cet article (en anglais).

Lorsque vous utilisez la technologie Anycast, les adresses sont courantes, mais le routage se produit vers «leurs» serveurs dans la région. Lors de l'accès à l'adresse www.example.com, l' utilisateur est redirigé vers le point de présence le plus proche. Le fournisseur de l'utilisateur reçoit plusieurs annonces de différents réseaux qui ont un point de présence, et le routeur du fournisseur sélectionne le plus proche d'eux. La réponse est également renvoyée le long de l'itinéraire le plus court.

Comment le contenu est-il mis en cache?


Le plus courant est le schéma de premier accès : le temps maximal de téléchargement est passé par l'utilisateur qui accède en premier au serveur d'origine. Tous les utilisateurs suivants recevront des données mises en cache à leur point de présence le plus proche.

La géographie est très importante ici: par exemple, après un appel de Rio de Janeiro, les données seront mises en cache sur un serveur situé au Brésil, ce qui ne résoudra pas les problèmes de vitesse d'accès pour les utilisateurs de Paris ou de Londres.

Pour surmonter les limitations imposées par ce schéma, des technologies d'extraction régionales sont utilisées: les serveurs voisins inclus dans le CDN prennent le contenu les uns des autres et n'accèdent pas au serveur d'origine.

Sur la plupart des CDN, l'utilisateur qui envoie la demande de contenu statique est redirigé vers le point de présence le plus proche et en reçoit une version mise en cache. Si le point de présence le plus proche ne trouve pas les fichiers, une recherche commencera sur les points de présence voisins, d'où la réponse de l'utilisateur sera redirigée. Dans Akamai CDN, cette procédure est appelée distribution à plusieurs niveaux (vous pouvez la traduire en russe par «distribution à plusieurs niveaux»).

À quoi servent les CDN?


Le plus souvent, le CDN est utilisé pour réduire le temps de réponse du contenu mis en cache, ce qui, comme nous l'avons mentionné ci-dessus, réduit les sorties de visiteurs en raison du chargement lent de la ressource et réduit ainsi les éventuelles pertes financières. CDN permet également de réduire le risque de perdre l'accès au contenu en raison d'une chute du serveur principal. Le contenu sera disponible tout le temps pendant que vous restaurez le serveur principal.

L'utilisation de CDN réduit considérablement la charge sur le serveur principal, ce qui contribue à résoudre le problème des charges de pointe. Le CDN moderne est capable de survivre à de très grandes charges. Fin 2018, Akamai a annoncé un volume record de trafic CDN transmis : 72 Tb / s.

De nos jours, les CDN sont également activement utilisés pour distribuer du contenu en streaming.

Qu'est-ce qui est important à retenir lorsque vous travaillez avec CDN?


Comme toute technologie, CDN possède un certain nombre de fonctionnalités.

Le tout premier problème que les services Web basés sur CDN peuvent rencontrer est la latence du cache. La situation suivante est très probable: sur le serveur principal, le fichier a été modifié, mais sur les serveurs de mise en cache, il restera inchangé. Ceci est particulièrement important lorsque du contenu fréquemment mis à jour est distribué via CDN (photos de la scène, nouvelles versions de logiciels, etc.)

Pour garantir la livraison de contenu "frais" dans les CDN modernes, il existe une fonction de suppression du cache, c'est-à-dire la suppression du contenu du pool de cache. De plus, les propriétaires de sites et de services peuvent gérer eux-mêmes les paramètres à l'aide des en-têtes de validateur (voir nos recommandations à ce sujet dans un article publié précédemment).

Une autre difficulté est associée au blocage: si pour une raison ou une autre les services qui sont vos «voisins» par le fournisseur IP CDN sont bloqués, votre site peut être bloqué avec vous. Mais ce problème peut être résolu: sur demande, les fournisseurs CDN peuvent changer votre adresse IP.

Qui a besoin d'un CDN?


Le CDN est principalement nécessaire pour les projets avec un large public dans différentes régions ou pays. Tout est clair ici: réduction des délais, distribution rapide du contenu et augmentation du niveau de confort, et, par conséquent, des utilisateurs plus satisfaits.

Le CDN peut également être utile aux développeurs d'applications mobiles: selon les statistiques, les utilisateurs refusent souvent de continuer à travailler avec l'application en raison de problèmes de vitesse. Récemment, des solutions techniques spéciales sont apparues, axées sur la distribution de contenu sur les appareils mobiles. Ils sont appelés CDN mobiles. Les services correspondants sont offerts par de nombreux grands fournisseurs CDN - par exemple, Akamai ou Amazon.

Besoin de CDN et de projets axés sur la distribution de jeux, de contenu multimédia et de streaming (comme mentionné ci-dessus).

Que rechercher lors du choix d'un fournisseur CDN (au lieu d'une conclusion)


Le nombre d'utilisateurs de votre service Web augmente, l'audience augmente et vous envisagez de connecter un CDN pour optimiser et accélérer la distribution de la statique et réduire la charge sur les serveurs principaux.

Que dois-je rechercher lors du choix d'un fournisseur CDN?

Tout d'abord, le nombre de points de présence . Cela est particulièrement vrai pour les projets ayant une large audience internationale. Il vous sera utile de trouver des informations sur les points de présence dans les régions les plus intéressantes pour vous et de les comparer avec l'audience potentielle du site.

Deuxièmement, c'est la présence de liaisons avec les opérateurs télécoms . C'est également un facteur important dont dépend la vitesse et l'efficacité du CDN. Par exemple, un fournisseur CDN avec des points de présence dans 100 villes, mais avec un petit nombre de connexions, peut avoir un délai plus long qu'un fournisseur avec des points de présence situés dans 5 villes, mais il y a beaucoup plus de connexions avec les opérateurs de télécommunications.

Malheureusement, dans la plupart des cas, les fournisseurs CDN ne publient pas ces informations, vous ne pouvez donc tout vérifier qu'en testant.

Troisièmement, la disponibilité de services et de fonctions supplémentaires . De nombreux fournisseurs CDN fournissent des services tels que l'analyse des statistiques de consommation, la gestion des politiques de mise en cache, la gestion des en-têtes HTTP, le préchargement de contenu très «lourd» (à partir de 200 Mo ou plus) et la suppression complète et sélective du cache.

De plus, lorsque vous choisissez un fournisseur CDN, vous devez vérifier s'il prend en charge les technologies et protocoles dont vous avez besoin (HTTP / 2, IPv6, certificats SSL et autres).

Source: https://habr.com/ru/post/fr463915/


All Articles