English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

invité
1 / ?
retour aux leçons

Le nœud de bouteille identifié avant que le trafic n'arrive

Centralité entretenue

Pour chaque paire de nœuds dans un graphe, il existe un chemin le plus court entre eux. La centralité entretenue d'un nœud N = la fraction de tous les chemins les plus courts qui passent par N.

Un nœud avec une haute centralité se trouve sur le chemin entre beaucoup d'autres paires. S'il ralentit, beaucoup de flux ralentiront. S'il échoue, beaucoup de flux seront rompus.

Lecture architecturale : les nœuds à haute centralité sont ceux que chaque examen d'architecture devrait payer une attention particulière. Ce sont les bouteilles, les SPOFs et les composants à capacité critique. Ils ont tendance à être:

- Le fournisseur DNS (entre chaque client et chaque service)

- Le proxy d'entrée (entre chaque client et chaque back-end)

- La base de données primaire (entre chaque back-end et chaque lecture)

- Le service d'authentification (entre chaque utilisateur et chaque action autorisée)

Détection sans mesure : la topologie du graphe identifie seuls les nœuds à haute centralité. Vous n'avez pas besoin de données de trafic ; vous avez besoin du diagramme d'architecture. Un nœud qui se trouve entre beaucoup d'autres paires est critique structurel.

Conséquence opérationnelle : les nœuds à haute centralité méritent une investissement disproportionné dans (1) l'augmentation de la capacité, (2) la redondance, (3) l'observabilité et (4) les cahiers des charges des plans d'intervention en cas d'incident.

Centralité entretenue : nœud mis en évidence sur la plupart des chemins les plus courts

Un système a : 100 clients externes -> 1 DNS -> 1 fournisseur de CDN -> 3 proxies inverses -> 12 réplicas back-end -> {1 base de données primaire, 2 nœuds de cache, 5 points de terminaison API externes}. Classez ces classes de nœuds par centralité entretenue (première en haut) et expliquez pourquoi les deux premières rangées méritent une attention particulière.

La plus petite coupe coupe la plus petite partie

Théorème du min-coupe en termes simples

Le min-coupe entre deux nœuds dans un graphe = le plus petit nombre d'edges (ou de nœuds) que vous devez supprimer pour les désconnecter.

Lecture opérationnelle: le min-coupe limite le rayon d'action maximal d'un échec. Si le min-coupe entre 'clients' & 'database' est de 1 arête (une seule proxy), alors la perte de cette arête coupe tous les clients de la base de données. Si le min-coupe est de 5, vous devez perdre 5 composants simultanément pour être totalement coupé; malchance, mais limitée.

Conception pour réduire l'impact d'un échec: augmenter le min-coupe à chaque frontière importante. Plusieurs proxies; plusieurs nœuds de cache; plusieurs chemins de réseau entre les DC. Chaque ajout augmente le min-coupe de 1.

Le motif de bulkhead en termes de graphe: partitionner les ressources en sous-graphes distincts qui ne partagent pas de min-coupe les uns avec les autres. Un échec dans un sous-graphe ne peut pas se propager aux autres parce que les arêtes n'existent pas.

Le diamètre détermine la distance des échecs

Diamètre du graphe = la plus longue des distances les plus courtes entre deux nœuds.

Propagation des échecs: lorsqu'un nœud échoue & que les flux de reprise touchent les nœuds en amont jusqu'à la distance du diamètre, ils touchent les nœuds en amont jusqu'à la distance du diamètre. Un système à diamètre 3 (client -> proxy -> backend -> DB) signifie qu'un échec de la base de données affecte 3 couches en amont dans une tempête de reprise.

Implication: un diamètre plus court = une contenance des échecs plus rapide, mais aussi une concentration accrue des nœuds. Chaque conception a son compromis.

Min-coupe comme limite du rayon d'action; diamètre comme distance de propagation

Calculer le Min-Coupe pour une Architecture Réelle

Une architecture: 1 DNS, 1 CDN, 3 proxies inverses, 12 réplicas backend, 1 base de données primaire.

Calculer (ou estimer) le min-coupe aux trois frontières: (1) entre les clients externes & le niveau de la proxy inverse; (2) entre le niveau de la proxy inverse & le niveau du backend; (3) entre le niveau du backend & la base de données primaire. Pour chacun, nommez ce qui échoue lorsque ce min-coupe est dépassé.

Audit des modes de défaillance via les indicateurs de graphe

Synthèse

Vous pouvez maintenant identifier les nœuds à haute entretenue, calculer le min-coupe à chaque frontière & estimer la distance de propagation des échecs via le diamètre.

Appliquez tous les trois.

Un système : 50 points de terminaison des clients -> 1 DNS -> 2 POP CDN -> 4 reverse proxies -> 16 réplicas back-end -> { cluster de base de données (1 primaire + 2 de secours), cluster Redis (5 nœuds), 3 API externes }.

Auditer le système: (1) nommer le nœud le plus entretenant, (2) calculer le min-coupe à la frontière la plus préoccupante & (3) proposer deux modifications architecturales spécifiques (chaque levant une min-coupe, chaque nommée avec la frontière qu'elle renforce).

Notes Complémentaires

Notes Complémentaires

Cette géométrie-de leçon reformule la leçon principale Modes de rupture et rayon d'action à travers des indicateurs de graphes (betweenness, min-cut, diamètre).

Le dernier complément, geometry_of_observability_and_capacity, traite des cellules de Voronoi pour les zones de captation des POP CDN, le plancher de vitesse de la triangule de latence & la courbe de file révisitée au niveau du niveau de la proxy.

Bien fait.