Une introduction au réseau de diffusion de contenu Akamai

Akamai est l'un des principaux fournisseurs de réseaux de diffusion de contenu (CDN) au monde. Grâce à la plate-forme intelligente Akamai, de nombreux produits sont proposés pour améliorer les performances, la disponibilité, la sécurité et la génération d'informations.

Les autres CDN incluent Cloudflare, Fastly, MaxCDN, Incapsula et Rackspace.

Ici, nous examinerons ce qu'est un CDN, puis quelques détails concernant l'implémentation d'Akamai, notamment:

  • La plate-forme intelligente Akamai et les serveurs Edge
  • L'interface Akamai et Property Manager
  • Performances de routage
  • Mise en cache

Qu'est-ce qu'un CDN?

Une demande d'un utilisateur pour un contenu sur l'Internet public peut sembler simple, se connecter au serveur contenant le contenu («l'origine du contenu») et le renvoyer à l'utilisateur, mais c'est en fait très complexe.

La connexion peut devoir passer par de nombreux fournisseurs de services Internet (FAI), points de peering et centres de données, sur des réseaux concurrents, et souffrir de l'absence de routes disponibles de manière cohérente.

De nombreux types d'appareils et bandes passantes différents peuvent être utilisés, à partir de différents emplacements mondiaux, avec différents types de contenu requis.

Cela peut entraîner des fluctuations de la vitesse et de la disponibilité, des problèmes de sécurité et une faible visibilité de ce qui se passe entre l'utilisateur et l'origine du contenu.

Un CDN place plus de contrôle entre les mains du fournisseur de contenu et contribue à améliorer l'expérience de l'utilisateur final.

Pour ce faire, il agit comme un réseau parallèle haute performance, maintenant son propre réseau de serveurs hautement distribués. En étant dispersé sur de nombreux emplacements physiques et réseau, mais optimisé comme un seul réseau, il existe plus de contrôle et de fiabilité pour les demandes des utilisateurs.

À mesure que l'entreprise se développe, la mise à l'échelle pour répondre à des demandes plus élevées sur l'origine du contenu présente également des défis. Nous examinerons également comment les outils CDN peuvent être utilisés pour réduire la charge sur l'origine, contribuant non seulement à améliorer les performances, mais également à réduire les coûts en réduisant la hauteur de l'échelle d'origine.

Plateforme intelligente Akamai

Akamai maintient un réseau mondial de plus de 240 000 «serveurs périphériques». Ceux-ci sont positionnés au «bord» d'Internet, aussi près que possible des utilisateurs finaux. Pour y parvenir, de nombreux serveurs de périphérie sont même situés directement dans les FAI, ou dans les tours de données mobiles, pour réduire encore plus la latence entre la connexion au FAI d'un utilisateur avant de passer au réseau Akamai.

Lorsqu'un utilisateur effectue une demande, Akamai la mappe de manière dynamique sur le serveur Edge disponible le plus proche. Le serveur Edge applique les règles métier que le fournisseur de contenu a spécifiées, avant d'utiliser la meilleure route disponible entre tous les autres serveurs Edge du réseau Akamai pour récupérer le contenu à l'origine. Les règles métier sont répliquées sur chaque serveur Edge.

Tout contenu disponible et configuré pour être mis en cache est ensuite mis en cache sur le serveur de périphérie pour les futures demandes de connexion à ce nœud. Nous examinerons cela plus en détail plus tard.

Un site est ajouté à Akamai en ajoutant un enregistrement CNAME dans le DNS qui pointe du nom d'hôte, par exemple «community.akamai.com», vers un nom d'hôte de périphérie d'Akamai, «community.akamai.com.edgekey.net», où Akamai contrôlait le mappage de serveur Edge prend le relais pour attribuer le meilleur serveur Edge disponible. Si vous «creusez» un nom d'hôte et voyez «edgekey.net», vous savez qu'Akamai est utilisé par le fournisseur de contenu.

Interface Akamai

Akamai fournit une interface graphique Web nommée «Luna Control Center», plusieurs API et une CLI.

Comme vu dans l' onglet Moniteur , de nombreux outils de reporting et d'analyse sont disponibles pour générer des informations au niveau CDN. Les journaux des serveurs de périphérie sont également disponibles sur demande.

Dans l' onglet Configurer, nous nous concentrerons sur l'introduction de Property Manager et laisserons d'autres options pour un prochain article.

Une propriété , parfois également appelée configuration , est le principal moyen de contrôler la façon dont les serveurs Edge répondent aux demandes des utilisateurs. Les propriétés appliquent une liste de règles à un ensemble de noms d' hôte et vous ne pouvez appliquer qu'une seule propriété à la fois à un nom d'hôte donné. Les règles sont constituées de critères / conditions de correspondance et comportements . Un exemple supplémentaire de cela sera vu plus tard lors de l'examen de la mise en cache. La règle par défaut de chaque propriété doit spécifier un code de fournisseur de contenu ( CP) valide pour facturer et signaler le service. Les règles sont les «derniers matchs gagnés».

Une API Property Manager (et CLI) existe, avec un excellent glossaire de concepts.

Lors de la modification d'une propriété, une nouvelle version est d'abord créée, permettant d'effectuer et de tester des modifications pendant que la propriété précédente reste active. La nouvelle version peut d'abord être activée sur la mise en scène d'Akamairéseau, sur lequel un développeur peut pointer sa machine locale sur laquelle exécuter des tests, avant de l'activer en production. L'activation de la production prend environ dix minutes pour déployer globalement la nouvelle version sur tous les serveurs de périphérie, avec une option de secours rapide qui revient en quelques minutes.

Performance de l'itinéraire

En plus de fournir une quantité toujours croissante de serveurs périphériques distribués, pour pouvoir servir le contenu mis en cache au plus près de chaque utilisateur, l'itinéraire vers l'origine du contenu peut être optimisé. Dans le cas d'Akamai, c'est via SureRoute.

Le réseau de serveurs d'Akamai (un utilisateur se connecte d'abord au serveur de périphérie et tout parent ultérieur à ce serveur) recouvre la route par défaut vers l'origine. La route par défaut peut passer entre plusieurs FAI et réseaux différents, qui peuvent ne pas toujours bien se jumeler. Comme vu ci-dessus, une liaison avec perte (ou une autre dégradation de ce type) peut signifier qu'une route non évidente est la meilleure option.

Le meilleur itinéraire se trouve en deux étapes.

  • Premièrement, les serveurs Akamai exécutent en permanence des sondes les uns contre les autres et, à un taux inférieur, contre toutes les origines des clients Akamai. Ceux-ci sont utilisés pour calculer et distribuer une liste centralisée de routes candidates entre chaque couplage serveur de périphérie / origine.
  • Deuxièmement, pour réduire ces itinéraires candidats bruts à une seule meilleure option, un objet de test SureRoute statique est placé par chaque client à son origine spécifique d'une taille similaire à son contenu moyen attendu. Des courses pour récupérer cet objet sont périodiquement exécutées entre chaque serveur de périphérie et l'origine de sorte qu'un enregistrement de celui avec la latence et / ou le taux de perte de paquets les plus faibles puisse être tenu à jour.

Cela signifie qu'à chaque demande adressée à un serveur de périphérie, l'itinéraire le plus rapide et le plus fiable à ce moment-là peut être utilisé pour atteindre l'origine.

Mise en cache

La mise en cache sur un serveur de périphérie peut réduire considérablement la latence pour l'utilisateur final.

À mesure que les organisations évoluent, la mise en cache peut également devenir de plus en plus importante pour réduire la charge sur l'origine du contenu, à la fois pour de meilleures performances et pour réduire les coûts.

Comme décrit dans la réponse donnée à «Les serveurs Edge Akamai partagent-ils le contenu mis en cache», les serveurs Edge sont regroupés en «régions» du réseau. Si le cache d'un serveur Edge spécifique n'est pas rempli, il enverra une requête locale aux autres serveurs Edge de sa région et si un pair a du contenu, il servira la réponse avant de le mettre en cache lui-même.

Si tous les caches de l'homologue local sont vides (ou périmés), la demande sera transmise au serveur parent de la périphérie, où la même vérification locale aura lieu entre les homologues du parent. Si aucun contenu n'est mis en cache le long de l'itinéraire entier, il retournera à l'origine et remplira à nouveau le cache avec sa réponse.

La clé de cache standard utilisée est constituée du nom d'hôte (domaine), du chemin et de la chaîne de requête. Cela peut être modifié pour réduire la cardinalité et / ou donner plus de contrôle sur la purge du cache. Cela peut être en incluant uniquement des paramètres de requête spécifiques, donc en excluant des éléments tels que les ID de produit, en ajoutant les valeurs de certains cookies, en-têtes ou variables définies par l'utilisateur.

Les conditions de correspondance (si le cookie « x » existe par exemple) peuvent être combinées avec des comportements de «contournement du cache» pour créer des scénarios avancés tels que la mise en cache de différents contenus pour les utilisateurs avec une session ou pour les utilisateurs situés à différents endroits.

Une extension de navigateur telle que ModHeader peut être utilisée pour afficher les en-têtes Akamai Pragma afin d'étudier le comportement de la mise en cache localement.

Dernières pensées

L'utilisation d'un CDN offre plus de contrôle aux fournisseurs de contenu et des outils tels que ceux décrits ci-dessus offrent des avantages qui sont de plus en plus importants lorsque vous travaillez à grande échelle.

Bien que les produits spécifiques d'Akamai aient été abordés ici, des concepts similaires de travail à grande échelle existent avec d'autres fournisseurs CDN.

D'autres spécificités d'Akamai peuvent être abordées dans un prochain article, n'hésitez pas à garder un œil sur les sujets suivants suggérés tels que:

  • Améliorations de la sécurité avec la gestion des certificats et les pare-feu d'applications Web (WAF)
  • Gestionnaire d'images pour une diffusion d'image optimisée
  • Cloudlets pour fournir un contrôle granulaire en dehors du cycle d'activation de Property Manage avec de nombreux types disponibles pour différents cas d'utilisation
  • Gestion globale du trafic (GTM) pour l'équilibrage de charge basé sur DNS
  • mPulse pour l'utilisation de Real User Metrics (RUM) pour la surveillance des performances

Merci d'avoir lu ?

Vous pouvez également profiter:

  • Guide du débutant sur Elastic Container Service d'Amazon
  • Comment ajouter de manière incrémentielle Flow à une application React existante
  • Amélioration progressive avec CSS Grid