Aller au contenu principal

Systèmes distribués (L3)

Progression du module

#Systèmes distribués

Distribuer, c’est accepter la latence, les pannes et l’incertitude des horloges. On gagne en disponibilité et en élasticité, mais il faut composer avec des canaux non fiables et des nœuds hétérogènes. Le métier consiste à choisir des garanties adaptées au produit: cohérence forte où il le faut, cohérence éventuelle ailleurs, et des mécanismes de détection et de récupération proportionnés aux risques. Le théorème CAP rappelle qu’en présence de partitions réseau, on ne peut simultanément garantir cohérence forte et disponibilité; la question devient donc « où placer le curseur ».

Trois idées structurent le cours: l’ordonnancement logique des événements pour raisonner sans horloge parfaite, la réplication pour tolérer les pannes, et le consensus pour prendre des décisions cohérentes malgré les défaillances. On y ajoute le partitionnement et l’observabilité pour passer à l’échelle sans perdre la main. Le fil rouge est pragmatique: minimiser la coordination sans sacrifier les invariants qui comptent pour l’utilisateur.

#Triangle CAP — intuition interactive

CAP
État: C+P (disponibilité dégradée)

#Panorama des mécanismes

Horloges logiques
Lamport/Vecteurs pour raisonner sans temps global
Réplication
Disponibilité locale ; convergence
Consensus
Décisions ordonnées malgré les pannes
Partitionnement
Scalabilité par fragments
Observabilité
Logs, métriques, traces pour diagnostiquer
Idempotence et retries

Les appels peuvent être rejoués (timeouts, rebalancements). Concevez des opérations idempotentes et munies d’identifiants de déduplication pour éviter les effets de bord.

#Quiz

En présence de partitions réseau, quel couple ne peut pas être garanti simultanément ?
En présence de partitions réseau, quel couple ne peut pas être garanti simultanément ?

Sections