Mode dégradé

Le mode dégradé (ou degraded mode) est un état de fonctionnement minimal et contrôlé d’un système, activé lorsqu’une partie de ses composants ou de ses dépendances devient indisponible, lente ou défaillante.

Plutôt que de s’arrêter complètement, le système continue de rendre un service réduit mais utile, en désactivant les fonctionnalités non essentielles et en préservant les fonctions critiques.

Pourquoi c’est important

  • Continuité de service : l’utilisateur peut continuer à travailler, même si certaines fonctions sont limitées.
  • Résilience : le système résiste à la panne d’un composant sans s’effondrer.
  • Expérience utilisateur : un service partiel est préférable à une indisponibilité totale.
  • Sécurité : en cas d’attaque ou de faille, on peut désactiver une fonction compromise sans tout arrêter.
  • Réduction de l’impact : on limite les conséquences d’une panne sur l’activité.

Comment ça se manifeste concrètement

Le mode dégradé peut prendre plusieurs formes :

  • Fonctionnalités désactivées : certaines options ne sont plus disponibles (ex : recherche avancée, export, paiement en ligne).
  • Données non actualisées : le système affiche des informations en cache plutôt que des données en temps réel.
  • Traitement différé : les actions sont mises en file d’attente et exécutées plus tard, quand le service redevient disponible.
  • Interface simplifiée : l’interface passe en mode texte ou en version allégée.
  • Message d’information : l’utilisateur est prévenu que le service est en mode dégradé et que certaines fonctions sont momentanément indisponibles.
  • Basculement automatique : le système détecte la panne et active automatiquement le mode dégradé (circuit breaker, fallback).

Exemples concrets

  • Site e-commerce : le catalogue reste consultable, mais le paiement est temporairement désactivé.
  • Chatbot : le service de recherche en ligne est indisponible, le modèle répond uniquement à partir de ses connaissances internes (avec un avertissement).
  • Application bancaire : les consultations de solde restent possibles, mais les virements sont suspendus.
  • Service cloud : une zone de disponibilité tombe, le trafic est redirigé vers une autre zone avec des performances réduites.

Bonnes pratiques de conception

  • Identifier les fonctions critiques : ce qui doit absolument rester disponible.
  • Prévoir des mécanismes de repli : cache, file d’attente, service secondaire, dégradation progressive.
  • Informer l’utilisateur : un message clair sur l’état du service et les fonctions disponibles.
  • Automatiser la détection : surveiller les indicateurs (latence, taux d’erreur) pour déclencher le mode dégradé.
  • Prévoir la sortie : définir les conditions de retour au mode nominal.
  • Tester : simuler des pannes pour vérifier que le mode dégradé fonctionne réellement.

Ce que le mode dégradé n’est pas

  • Ce n’est pas un arrêt total : le système continue de fonctionner, partiellement.
  • Ce n’est pas une solution définitive : c’est un état temporaire, en attendant le rétablissement.
  • Ce n’est pas une improvisation : il doit être conçu, testé et documenté à l’avance.
  • Ce n’est pas une excuse pour négliger la qualité : les fonctions maintenues doivent rester fiables.

Analogie

Le mode dégradé, c’est comme un train qui continue de rouler avec un moteur en moins. Il avance plus lentement, certaines voitures sont fermées, mais il vous emmène quand même à destination. Vous êtes prévenu par annonce : « En raison d’un incident technique, le train circule en mode dégradé, certains services à bord sont indisponibles. » Le voyage continue, mais dans des conditions réduites. Une fois le moteur réparé, le train reprend son fonctionnement normal.

À retenir

Le mode dégradé est une stratégie de résilience qui permet à un système de continuer à rendre un service minimal malgré une panne partielle. Il repose sur l’identification des fonctions critiques, la prévision de mécanismes de repli, l’information de l’utilisateur et la préparation de la sortie de crise. C’est un pilier de la conception de systèmes robustes, particulièrement important pour les services en ligne, les applications critiques et les systèmes d’IA connectés à des dépendances externes.

Les contenus de définition restent publics. Les ressources (outils, grilles, supports) liées à cette fiche sont disponibles dans l’espace membre.