Guides

Guide d'architecture logicielle

Architecture edge mondiale : routage, cache, résilience de l'origine et passage à l'échelle

Une architecture edge mondiale combine une diffusion locale avec une conception disciplinée de l'origine, des données, du routage et des défaillances pour que les chemins rapides ne créent pas de risque opérationnel caché.

Les utilisateurs mondiaux font l'expérience d'une application à travers les résolveurs DNS, les chemins réseau, la terminaison TLS, les points de présence edge, les caches, les régions d'origine et les systèmes de données. Une périphérie proche peut améliorer la première partie de ce chemin, mais elle ne fait pas disparaître une origine distante, surchargée ou incohérente. L'architecture mondiale consiste donc à choisir où le travail se produit et comment le système se comporte lorsqu'un emplacement ou fournisseur se dégrade.

Ce guide présente une approche neutre vis-à-vis des fournisseurs pour les architectes logiciels et ingénieurs DevOps. Elle s'applique que la diffusion utilise un CDN, plusieurs fournisseurs, des équilibreurs de charge cloud, des origines dédiées ou un mélange de ces composants.

La proximité géographique n'est pas à elle seule une stratégie de fiabilité

Le point de présence le plus proche peut être défaillant, une origine peut être saturée et une écriture peut nécessiter une région faisant autorité. Routez selon une capacité mesurée et une politique claire, et non seulement une carte ou une consultation de géolocalisation IP.

Établissez les parcours utilisateur et les objectifs régionaux

Commencez par les parcours critiques, et non par les composants d'infrastructure. Définissez un objectif de latence et de disponibilité pour les pages publiques, API, authentification, paiement, médias et flux administratifs. Segmentez les objectifs par régions et conditions réseau pertinentes là où l'entreprise les sert. Une moyenne mondiale unique peut masquer une expérience inacceptable sur un marché clé.

Cartographiez le parcours à travers DNS, edge, cache, origine, services, magasins de données et tiers. Marquez quelles réponses peuvent être servies localement, lesquelles exigent une lecture régionale et lesquelles exigent une écriture faisant autorité. Incluez le comportement en cas de défaillance : réponse en cache, réponse dégradée, acceptation dans une file, repli régional ou erreur explicite.

Utilisez le monitoring d'utilisateurs réels pour la vision côté utilisateur, des sondes synthétiques pour les contrôles de disponibilité contrôlés et la télémétrie backend pour la causalité. Comparez p50, p95 et p99 plutôt que de célébrer une moyenne. Un budget de latence mondial doit laisser du temps pour le réseau client, le traitement edge, le travail d'origine, les dépendances et la variation normale.

Concevez le DNS et le pilotage du trafic pour le changement lent et la défaillance rapide

Le DNS est un plan de contrôle avec une mise en cache par les résolveurs et un comportement client inégal. Le TTL est une indication, pas un basculement de trafic immédiat. Gardez les enregistrements simples, utilisez le pilotage conscient de la santé seulement lorsque le signal de santé représente la capacité applicative requise et prévoyez que les caches des résolveurs survivent à un changement.

Au niveau HTTP, une périphérie peut prendre des décisions plus informées avec le chemin, les en-têtes, les cookies, l'état du cache et la santé applicative. Gardez la logique de routage déterministe et auditable. Utilisez des déplacements pondérés ou graduels pour les changements planifiés ; réservez un chemin d'urgence pour une panne confirmée. Ajoutez une hystérésis, des périodes de séjour minimales et des contrôles de récupération afin que des signaux transitoires ne provoquent pas de basculements de trafic répétés.

Pour chaque route, documentez la destination primaire et secondaire, l'allocation de capacité, les certificats TLS, les en-têtes d'hôte, l'authentification, la politique de cache, les dépendances de données et l'action de rollback. Une origine secondaire qui n'a pas reçu la configuration courante ou ne peut pas joindre la base de données requise n'est pas une cible de basculement.

Traitez la topologie de cache comme une conception de capacité d'origine

Mettez en cache près des utilisateurs les représentations publiques et stables avec des directives de cache HTTP explicites. Décidez où se situent les couches de cache : navigateur, point de présence edge, shield régional et cache applicatif ont chacun un comportement d'éviction, visibilité et invalidation différent. La meilleure topologie est celle qui correspond à la volatilité du contenu et rend la charge d'origine prévisible.

Utilisez une clé de cache définie de manière étroite. Normalisez les chemins et des paramètres de requête sélectionnés ; n'incluez les dimensions de variante que lorsqu'elles modifient la représentation. Évitez la mise en cache partagée de réponses personnalisées, authentifiées ou sensibles à moins que le modèle d'isolation ne soit conçu, revu et testé spécifiquement. Les recommandations de cache HTTP de l'IETF offrent une base utile, mais le propriétaire produit définit si du contenu obsolète est acceptable.

Ajoutez le regroupement de requêtes et un origin shield pour le contenu à forte demande. Ces contrôles réduisent les récupérations d'origine dupliquées pendant l'expiration de cache ou les purges. Protégez-vous contre les cache stampedes avec des TTL à gigue, stale-while-revalidate lorsqu'il convient, du verrouillage par clé et un budget de concurrence d'origine. Testez un événement de cache froid dans un plan de lancement, et non après un pic de trafic.

Rendez les origines difficiles à atteindre et faciles à protéger

La périphérie mondiale doit être le point d'entrée public prévu, et non un proxy facultatif. Restreignez l'entrée d'origine aux réseaux de diffusion de confiance ou à une connectivité privée, authentifiez les requêtes edge-à-origine et retirez ou remplacez les en-têtes de transfert fournis par le client à la frontière de confiance. Assurez-vous que les anciens enregistrements DNS, IP directes, endpoints de stockage et hôtes de développement n'exposent pas de chemin de contournement.

Définissez des limites distinctes à la périphérie et à l'origine. La périphérie peut absorber un trafic large, tandis que l'origine nécessite des limites strictes pour les connexions, requêtes, chargements, routes coûteuses et dépendances. Appliquez WAF, gestion des bots, contrôles DDoS, validation de requête et limites de débit selon le modèle de menace. Ces contrôles doivent être observables et ciblés étroitement afin qu'une atténuation ne bloque pas silencieusement les utilisateurs légitimes.

Exécutez des contrôles de santé d'origine qui testent la véritable chaîne de dépendances de la route à une fréquence appropriée. Un processus répondant 200 alors que son pool de base de données est épuisé ne devrait pas recevoir de trafic supplémentaire. Inversement, ne basculez pas parce qu'une dépendance analytique facultative est lente si le parcours utilisateur reste sain.

Choisissez explicitement les compromis de données régionales et d'écriture

Le contenu public à dominante lecture peut souvent utiliser des données répliquées ou mises en cache. Les écritures impliquant identité, paiements, inventaire ou ordre strict nécessitent une autorité déclarée. Indiquez si un client lit depuis un réplica local, une région primaire ou une représentation en cache, et quelle obsolescence est acceptable.

Un service applicatif actif-actif peut améliorer la disponibilité locale mais ajoute une résolution de conflits, un retard de réplication et une complexité opérationnelle. Les conceptions actif-passif simplifient l'autorité d'écriture mais peuvent augmenter le temps de basculement et concentrer la capacité. Aucune n'est universellement meilleure. Choisissez selon les objectifs de récupération, le modèle de données, la capacité des opérateurs, les exigences réglementaires et le coût métier d'un comportement obsolète ou indisponible.

Lorsqu'une requête peut être acceptée sans être terminée immédiatement, utilisez une file durable et signalez un état de réalisation distinct. L'âge de la file, la gestion des doublons et la sémantique de rejeu font alors partie de la conception de résilience mondiale. Ne transformez pas un problème de cohérence en backlog invisible.

Concevez pour la défaillance régionale et fournisseur sans fausse confiance

Une architecture multi-CDN ou multi-cloud peut réduire la dépendance à un plan de contrôle ou réseau, mais elle augmente le travail de coordination. Les règles de cache, TLS, l'authentification d'origine, la politique WAF, les journaux, métriques, contrôles d'accès et runbooks d'incident doivent être alignés. Un deuxième fournisseur nominalement configuré n'offre pas de résilience utile tant qu'il n'a pas traité de trafic représentatif proche de la production.

Utilisez des fondations portables lorsque possible : normes DNS et HTTP, pratiques TLS standard, contrats d'origine versionnés, contexte de trace OpenTelemetry, journaux conservés centralement et contrôles de configuration automatisés. Gardez les capacités de routage ou de runtime edge spécifiques à un fournisseur derrière des adaptateurs documentés. Maintenez un chemin de sortie et de récupération testé au lieu de supposer que toutes les plateformes se comportent de manière équivalente.

Exercez délibérément les modes de défaillance. Simulez un ralentissement d'origine régionale, une vague de purge de cache, une erreur de routage DNS, une dégradation de fournisseur, un certificat expiré, une politique edge invalide et une panne partielle du magasin de données. Vérifiez la capacité avant de déplacer le trafic, surveillez les métriques côté utilisateur pendant le déplacement et conservez une option de rollback. Les recommandations SRE de Google sur les défaillances en cascade sont particulièrement pertinentes : les nouvelles tentatives et les déplacements de trafic peuvent transformer une dépendance faible en panne plus large.

Instrumentez une vue de diffusion mondiale unique

Utilisez un identifiant stable de requête ou de trace de la périphérie à l'origine. Avec un traçage compatible OpenTelemetry, corrélez les décisions DNS ou de routage lorsqu'elles sont disponibles, l'emplacement edge, l'état du cache, l'origine sélectionnée, le timing amont, la version de déploiement, les appels de base de données, le délai de file et le résultat de réponse. Traitez les données personnelles et les en-têtes contenant des identifiants comme sensibles ; utilisez des étiquettes de route et région à cardinalité bornée pour les métriques.

Les tableaux de bord opérationnels doivent rendre les compromis visibles : percentiles de latence par région utilisateur et route, disponibilité, taux de hit du cache, egress et saturation de l'origine, classes d'erreur, distribution du trafic, état des contrôles de santé, âge de la file et taux de tentatives d'accès direct à l'origine. Lors d'un incident, comparez des signaux indépendants avant de piloter le trafic. Une défaillance de sonde isolée ne devrait pas automatiquement déplacer une grande part du trafic mondial.

Liste de contrôle d'architecture edge mondiale

Avant la mise en ligne, confirmez que les parcours critiques ont des objectifs régionaux ; que le pilotage du trafic a des contrôles de santé et une hystérésis significatifs ; que les clés de cache et le comportement obsolète sont sûrs ; que les événements de cache froid et de purge préservent la capacité d'origine ; que les origines rejettent le trafic direct ; que l'autorité des données et la sémantique de basculement sont documentées ; que les fournisseurs partagent la politique et la télémétrie requises ; et que le basculement régional a été répété sous charge.

Références faisant autorité

Planifiez la diffusion mondiale autour de modes de défaillance réels

Échangez avec les experts Optimi sur le routage edge mondial, la résilience du cache et de l'origine, et une architecture de diffusion neutre vis-à-vis des fournisseurs.

Discuter de l'architecture edge mondiale