Récemment, il y a toujours des gens dans le groupe qui se plaignent, disant que sur le CDN haute défense après le site lent comme un escargot, l'expérience de l'utilisateur directement à travers le cœur de la terre. Je vois cette situation d'un bon œil - j'ai mis le pied sur ce problème il y a cinq ans, mais je ne pensais pas qu'il y aurait encore autant de gens qui s'y heurteraient de plein fouet. Le CDN haute défense est essentiellement un “garde du corps”, mais si vous laissez le garde du corps dans une mauvaise position, il peut non seulement bloquer les balles, mais aussi bloquer tous les clients à l'extérieur de la porte.
Pour être honnête, la latence élevée de ce pot ne peut vraiment pas laisser tous les CDN en arrière. J'ai constaté que dans 80 % des cas, il s'agit d'un problème de configuration et que dans 2 % des cas, les nœuds sont mal choisis. L'année dernière, pour aider une station de commerce électronique à effectuer une migration, l'utilisation initiale d'un grand CDN à haute défense, la latence est montée en flèche jusqu'à 300 ms +, les plaintes des utilisateurs que la commande est plus. Plus tard, une opération pressée à 80 ms ou moins, le taux de conversion est directement revenu à 15%. Aujourd'hui, je vais mettre le fond des techniques d'optimisation hors de la boîte, ne vous contentez pas de collecter, n'oubliez pas d'essayer.
Identifiez d'abord le coupable : quelle est la nature de l'euphorie retardée ?
Beaucoup de gens voient la latence élevée des fournisseurs de CDN, mais en fait, il est probable que vous ne compreniez pas vous-même. Le CDN à haute défense, afin de porter l'attaque, le trafic doit être filtré autour du centre de nettoyage, puis revenir à la source vers le serveur. Plus on saute un tour, plus la latence augmente naturellement. Mais l'essentiel est que l'emplacement du centre de nettoyage, la stratégie de retour à la source, la sélection du protocole, tout cela peut faire quelque chose.
Le cas le plus scandaleux que j'ai vu est celui d'une entreprise qui a utilisé un nœud américain pour accélérer les utilisateurs nationaux et qui s'est plainte du décalage. Mon frère, il ne s'agit plus d'un problème de latence, mais d'un cours de géographie que l'on n'a pas réussi à suivre. En outre, la poignée de main TLS, la taille de la fenêtre TCP, le taux de réussite de la mémoire cache de ces détails sous-jacents, c'est vraiment la main qui étrangle le cou du retard.
Conseil 1 : sélection intelligente des nœuds, ne pas faire confiance à l“”auto-optimisation" des vendeurs”
Les fournisseurs de CDN aiment se vanter de leur programmation intelligente, mais il ne faut pas y croire. Leur soi-disant “nœud optimal” peut être le moins coûteux, mais pas le plus rapide. Lorsque j'ai utilisé CDN5, j'ai constaté qu'il programmait toujours les utilisateurs sur des nœuds froids à faible charge, et que la latence était directement doublée.
Ensuite, j'ai forcé le passage et j'ai fait deux choses : tout d'abord, j'ai utilisé une sonde construite par mes soins pour surveiller la latence des nœuds en temps réel. Écrivez un script pour exécuter régulièrement ping et traceroute, et rassemblez les données dans votre propre base de données pour les analyser. Deuxièmement, en fonction de la zone géographique de l'utilisateur et de l'opérateur, il est possible d'affiner la programmation. Les utilisateurs des télécommunications ne devraient pas être jetés dans le nœud Unicom, les utilisateurs du Guangdong qui se rendent difficilement au nœud de Pékin ne cherchent qu'à être réprimandés.
Voici le script de détection de nœuds que j'utilise (version Python) :
Si vous faites cela pendant une semaine, vous pourrez dessiner une carte thermique de la latence et vous saurez clairement quel nœud est stable et quel nœud est flottant. Faites ensuite quelque chose au niveau du DNS, en utilisant DNSPod ou la résolution intelligente de Cloudflare, en fonction des différents opérateurs et provinces pour renvoyer vers différentes IP de nœuds. Le test réel de cette série d'opérations peut faire baisser le délai de 40%, ce qui rend la “planification intelligente” dix fois plus utile que ce que vantent les vendeurs.
Conseil 2 : Optimisation du protocole pour maintenir TCP/TLS sur terre
HTTP/2 et HTTP/3 sont les véritables lois du goût. L'année dernière, j'optimisais pour un client de 08Host et j'ai constaté qu'il utilisait encore HTTP/1.1, avec de nouvelles connexions établies pour chaque ressource et la poignée de main TLS qui prenait la majeure partie du temps. Après avoir forcé une mise à niveau HTTP/2, le multiplexage a directement réduit le temps de chargement de moitié.
Mais le plus impitoyable est HTTP/3 (basé sur QUIC). Ce protocole est intrinsèquement résistant à la perte de paquets, particulièrement adapté aux fluctuations du réseau mobile dans la scène. cdn07 a été entièrement pris en charge, après l'ouverture des fluctuations de délai peut être réduit par 30%. Cependant, notez que l'ancien équipement peut être la compatibilité pull crotch, doivent faire un bon travail de programme de dégradation.
Exemple de configuration de Nginx (avec HTTP/2 et TLS 0-RTT activés) :
En outre, la poignée de main TLS est un tueur invisible. Il est recommandé d'activer la reprise de session et l'agrafage OCSP, qui peuvent réduire le temps de la poignée de main de 300 ms à 100 ms. Un client ne croyait pas que TLS avait un impact aussi important. Je lui ai montré le tableau comparatif des captures de paquets de Wireshark et il s'est immédiatement tû.
Conseil n° 3 : Stratégies de mise en cache et Edge Computing pour remplacer les requêtes dynamiques par des requêtes statiques
L'utilisation la plus stupide d'un CDN de haute défense est le retour de l'ensemble du site à la source. Certains de mes amis prennent même des photos et des CSS pour les renvoyer à la source de manière dynamique, alors si vous n'êtes pas bloqué, avec qui le serez-vous ? J'ai vu que l'optimisation la plus féroce est de transformer la requête dynamique 60% en edge caching.
CDN5 et CDN07 prennent en charge le stockage KV en périphérie, le cache de la session de l'utilisateur vers le nœud, réduisant ainsi le retour à la source de l'aller-retour. 08Host est plus impitoyable, il prend directement en charge la périphérie de l'assemblage Web en cours d'exécution, qui peut être agrégé au niveau du nœud de la demande API.
Les règles de mise en mémoire cache doivent être définies en fonction de la mort :
N'oubliez pas de préchauffer le cache ! En particulier avant la grande promotion, utilisez le script pour brosser les ressources populaires vers le nœud de périphérie CDN à l'avance. Une fois qu'une station de commerce électronique n'a pas fait de préchauffage, après le début de l'événement, le CDN retourne à la source du trafic et fait exploser le serveur, ce qui entraîne l'affichage d'une page d'erreur 502.
Œufs de marque : les cascades de latence de trois fournisseurs de CDN
Expérience purement subjective, juste à titre de référence : CDN5 Asie-Pacifique nœud de contrôle de latence vole stable, en particulier à Hong Kong et Singapour, une moyenne de 80 ms ou moins, mais l'Europe et les nœuds des États-Unis sont plus tirer. CDN07 HTTP/3 mise en œuvre de la plus radicale, l'optimisation mobile est bonne, mais la configuration de l'arrière-plan anti-humain. 08Host bol bon marché, la ligne BGP domestique est bonne, mais la capacité à prévenir DDoS n'est pas aussi bon que les deux premiers, adapté à l'attaque n'est pas des scénarios fréquents. Scénarios fréquents.
Un dernier mot d'ordre : l'optimisation de la latence est un combat permanent, et non une solution unique après le match.
Exécutez la cartographie des temps de latence une fois par mois, vérifiez les hits de cache chaque semaine et gardez un œil sur la surveillance en temps réel chaque jour. Si les conditions sont réunies, vous pouvez utiliser l'outil APM full-link, et si elles ne le sont pas, vous pouvez écrire des scripts pour vous surveiller vous-même. Une fois que j'ai pensé que l'optimisation était en place, le résultat a été qu'un certain opérateur a soudainement eu un problème de routage, et la latence du nœud a grimpé en flèche. Plus tard, j'ai effectué un basculement sur plusieurs lignes, et ce n'est qu'à ce moment-là que la situation s'est complètement améliorée.
Un CDN à haute défense n'est pas une solution miracle, c'est un jeu de compromis - un jeu entre sécurité et latence. Pour obtenir les deux, vous devez le régler vous-même. Pour ceux qui comptent sur des frères prêts à l'emploi, il est recommandé d'augmenter directement l'argent sur l'ANYCAST global, sinon c'est honnêtement selon mes compétences à jeter. N'oubliez pas que l'argent économisé grâce à l'optimisation de la latence vaut bien plus que la facture CDN elle-même.

