Hobs régionaux
(Section : Écosystème et réseau)
1) Pourquoi les maisons régionales sont-elles nécessaires ?
Le hub régional est un cluster local de calcul, de stockage et de passerelles réseau optimisé pour :- Latence et UX : proximité avec l'utilisateur (RTT↓, TTI/TTF↓).
- Conformité et résidence : stockage/traitement des données au sein de la juridiction.
- Stabilité et capacité : déchargement du noyau global, travail en isolant partiellement la région.
- Économie : baisse du trafic interrégional, CDN/caches locaux, tarifs avantageux IX/peering.
2) Les rôles du hub régional
1. Edge/Gateway est la couche d'entrée (HTTP/2/3, gRPC, WebSocket, QUIC), rate-limit, QoS, WAF.
2. Reader/API - RPC, index, services de recherche, vues materialized locales.
3. Compute/Stream - gestion des événements, agrégation, filtres anti-frod.
4. Data Plane est une vitrine TSDB/colonne, un stockage d'objets pour les données « chaudes ».
5. Conformité/KYC/KYB - intégrations locales avec les fournisseurs et catalogues de sanctions.
6. Payments/PSP - méthodes de paiement locales et il/off-ramp.
7. Bridge/Relay est un terminal de messages inter-chaînes avec un tampon de finalisation local.
8. Observability - métriques/logs/tracés, échantillons synthétiques.
9. Governance/Access - répertoires de rôles, clés et limites pour les membres régionaux.
3) Topologies de déploiement
Hub-and-Spoke : « maître-habe » central + Spooks régionaux avec autonomie partielle.
Active-Active (Multi-Primary) : Fonctionne symétriquement sur plusieurs hubs avec réplication de conflit-fri (CRDT/journaux en avance).
Active-Passive : réserve chaude avec réplication périodique et rollover DR.
Edge-Tiered : les nœuds edge « fins » (CDN, WebSocket-fan-out) → les nœuds régionaux « épais ».
Le choix dépend des exigences de finalisation/cohérence, du coût des canaux et des contraintes réglementaires.
4) Géomarshrutisation et politique de résidence
GeoDNS/Anycast + Latency-Aware LB : nous envoyons des demandes à la personne en bonne santé la plus proche.
Routage de la jurisprudence : les données des sujets (UE/UK/TR, etc.) restent dans le centre approprié ; transferts interrégionaux - uniquement sur des listes blanches.
SOR (Smart Order Routing) pour les régions : prend en compte le RTT, le coût du canal, les drapeaux de conformité, le chargement des quotas et les SLO.
Fail-in-Place : en cas de dégradation des relations extérieures, haba continue de servir « finalized-only » les demandes et les opérations locales.
5) Données : Répertoires, réplications, classes de stockage
Classes de données :- P0 - paiements/pont/identification (résidence stricte, synchronisation des « signaux » uniquement dans les agrégats/hachures).
- P1 - événements et agrégats de produits (vis locale + exportation périodique).
- P2 - débogage/logs (compression agressive, longue rétention dans la région).
- Les événements sont des logs-shipping avec un ordre dans le lot (régions-clés scopées).
- Stockages - MMR/CRDT asynchrone ou snapshot-backaps.
- Résidence : politiques DLP/PII, tokenization, clés de chiffrement séparées par région.
6) Performances et mise en cache
Cache : edge-cache (court TTL), read-through sur l'API, cache negative.
Warm-data : les derniers N blocs/trampolines, indices chauds selon les méthodes populaires.
Tampons DA/Batch pour L2/ponts : file d'attente locale de publications avec confirmations.
Hardware-Adapted TPS : planification de la capacité pour $/TPS et $/RPS, en tenant compte des prix régionaux.
7) QoS, files d'attente et backpressure
Classes de P0/P1/P2 au niveau du bus et des passerelles ; files d'attente et quotas séparés.
Partitioning : clé 'region' tenant 'topic' pour le throughput prédit.
DLQ : mise en quarantaine des messages « toxiques », retraits avec gitter.
Contrôle d'admission : limitation des RPC « chers » (par plage, filtres, limites).
8) SLI/SLO centre régional
SLI:- p95 Latitude (Edge/API), taux de réussite, Queue-Lag p95, Freshness vitrine, Finality p95 (pont/relais), Geo-Hit Ratio (proportion de demandes traitées dans la région), Compliance Pass %.
- Edge/API p95 ≤ 350–450 мс, Availability ≥ 99. 95%.
- Freshness (P1) p95 ≤ 3 min ; Queue-Lag P0 p95 ≤ 2 с.
- Geo-Hit Ratio ≥ 85 % (pas de hop interrégional).
- DR RTO ≤ 15 min, RPO ≤ 5 min pour P0.
9) Observabilité et dashboards
Ops Core : latency/error/queue-lag/throughput par classe QoS.
Geo View : carte thermique RTT, Geo-Hit Ratio, trafic interrégional.
Conformité : résidence, succès de sanctions, logis d'exportation.
Bridge/DA : finalisation p95, challenge/reorg, refus de publication.
Capacity & Cost : TPS_per_$, CTS/1k de demandes, Utilisation %.
10) DR et durabilité
Canaux redondants : IX/fournisseurs indépendants, tunnels cryptés inter-cabines.
Mode isolé : « finalized-only », API dégradées, reçus locaux suivis d'un reconcile.
Exercices réguliers : coupure transatlantique, perte de DA/prevers, « gitter/pertes » aux frontières.
11) Économie et planification de la capacité
CTS (Cost-to-Serve) per 1k ops : canaux + calculs + stockage + licences.
TPS_per_$ : capacité durable de 1 dollar d'infrastructure.
Optimisation peering/IX : points peer locaux, préfixes d'annonce, compression et trampoline.
Modèle Tier : T1 (ensemble de services), T2 (analyse complète), T3 (pile complète + DA/pont).
12) Configurations de référence
12. 1 Politique de routage (YAML)
yaml routing:
geodns:
regions: [eu, uk, tr, la, apac, na]
policies:
prefer_local: true fallback_chain: [nearest_healthy, master_hub]
compliance:
residency:
eu: ["eu"]
uk: ["uk"]
tr: ["tr"]
export_whitelist:
eu: ["anonymized_metrics","hash_anchors"]
slo_gates:
p0_latency_p95_ms: 400 queue_lag_p95_ms: 2000
12. 2 K8s : passerelle Edge + HPA
yaml apiVersion: apps/v1 kind: Deployment metadata: { name: edge-gw, labels: { region: eu } }
spec:
replicas: 4 template:
spec:
containers:
- name: gw image: org/edge-gw:2. 7. 0 ports: [{ containerPort: 443 }]
env:
- { name: QOS_CLASSES, value: "P0,P1,P2" }
- { name: DENY_HEAVY_RANGE, value: "eth_getLogs>5000" }
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: { name: edge-gw-hpa }
spec:
minReplicas: 4 maxReplicas: 24 metrics:
- type: Pods pods:
metric: { name: request_latency_p95_ms }
target: { type: AverageValue, averageValue: 350m }
12. 3 Kafka : parti par région/tentant
yaml topic: "events. p0"
partitions: 96 config:
min. insync. replicas: 2 cleanup. policy: delete compression. type: zstd message. timestamp. type: CreateTime
12. 4 Politique de résidence et d'exportation
yaml data_policy:
pii: { tokenized: true, cross_region_export: "deny" }
exports:
anonymized_metrics: { allowed: ["eu","uk","na"], schedule: "5m" }
hash_anchors: { allowed: ["eu","uk","na","apac"], cadence: "15m" }
13) Schémas de données et demandes
Répertoire des pôles et des liens
sql
CREATE TABLE hubs (
hub_id TEXT PRIMARY KEY,
region TEXT, tier SMALLINT, status TEXT,
rtt_ms INT, cost_per_1k_ops NUMERIC,
created_at TIMESTAMPTZ
);
CREATE TABLE interlinks (
src_hub TEXT, dst_hub TEXT,
capacity_mbps INT, cost_per_gb NUMERIC,
encrypted BOOLEAN, health TEXT,
PRIMARY KEY (src_hub, dst_hub)
);
Geo-Hit Ratio и Freshness
sql
SELECT region,
100. 0 SUM(CASE WHEN served_in_region THEN 1 ELSE 0 END)/COUNT() AS geo_hit_pct,
PERCENTILE_CONT(0. 95) WITHIN GROUP (ORDER BY freshness_s) AS freshness_p95
FROM req_stats
WHERE ts >= now() - INTERVAL '24 hours'
GROUP BY region;
TPS_per_$
sql
SELECT hub_id,
AVG(tps_sustained) / NULLIF(AVG(cost_usd_hour),0) AS tps_per_usd
FROM hub_perf
WHERE ts >= now() - INTERVAL '7 days'
GROUP BY hub_id;
14) Règlements opérationnels
Au quotidien : rapport SLO (latitude/queue-lag/freshness), audit exportation/résidence, état des visages inter-cabines.
Chaque semaine : calibrage des quotas/QoS et GeoDNS, recalculage des CTS/TPS_per_$, révision des caches et index « hot ».
Chaque mois : Exercice DR (mode isolé, commutation de canal), vérification DA/ponts.
Avant la sortie : rollout canarien un hub/une région, gates SLO et plan de retour.
15) Playbook des incidents
A. Chute du canal interrégional
1. Basculer vers IX de secours, activer la compression/batch ;
2. Hub en mode « finalized-only » ;
3. La file d'attente des exportations est dans le tampon, avec une limite ;
4. Communication avec les participants, post-mortem.
B. Dégradation locale de l'API p95
1. Hiérarchiser P0, activer le P2-throttle ;
2. Agrandir les répliques edge/API ;
3. Activer le cache uniquement pour les méthodes chaudes ;
4. Diagnostic des demandes lourdes, si nécessaire deny-rules.
C. Violation de la résidence
1. Bloc d'exportation transrégional immédiat ;
2. Redaction/inverse de l'exportation ;
3. Notification DPO/Conformité ;
4. Mise à jour des stratégies et des tests.
D. Pics de défaillance reorg/DA
1. Agrandir K/fenêtre de litige ;
2. Inclure « finalisation delayed » ;
3. Alerter les consommateurs ;
4. Compléter les rapports.
E. Chargement inégal des pôles
1. Mise à jour GeoDNS/Latency-LB ;
2. Équilibre quotas/prix ;
3. Trafic-shaping pour les affiliations/sources.
16) Chèque de mise en œuvre
1. Sélectionnez les régions/juridictions et les OSL cibles.
2. Concevoir la topologie (Hub-Spoke ou Active-Active), canaux/IX.
3. Partage des rôles : Edge/API/Compute/Data/Bridge/Compliance.
4. Configurer la résidence, les catalogues et les politiques d'exportation.
5. Activer QoS, file d'attente, cache et backpressure.
6. Augmenter l'observabilité et les dashboards Geo/Compliance/Perf/Cost.
7. Configurer le DR (RTO/RPO), l'exercice et le mode isolé.
8. Établir des métriques économiques (CTS, TPS_per_$) et un budget.
17) Glossaire
Geo-Hit Ratio est la proportion de demandes traitées par « leur » hub.
RPO/RTO - objectifs de perte de données/temps de récupération.
Hub-and-Spoke est un nœud central avec des clusters périphériques.
CRDT - Structures de données pour la réplication conflit-fri.
CTS per 1k ops est le coût de maintenance de 1000 opérations.
TPS_per_$ - bande passante pour un dollar d'infrastructure.
Résultat : les maisons régionales transforment un réseau mondial en un ensemble de domaines localement optimisés, complexes et durables. Avec des procédures de SLO, de résidence, de QoS et de DR claires, elles réduisent la latence et le coût, améliorent la fiabilité et garantissent l'échelle de l'écosystème sans perte de maniabilité.