Notre plus grande gloire n’est point de tomber, mais de savoir nous relever chaque fois que nous tombons.

Confucius

Nom

Concevoir pour la résilience

Déclaration

Chaque ressource utilisée au sein d’un service doit être hautement disponible. Lorsqu’un service utilise un autre service, il doit considérer que ce service peut se trouver en défaut.

Raisonnement

  • Augmenter la disponibilité des services.
  • Maintenir le système réactif, même si certaines ressources mineures ne sont pas disponibles.

Implications

  • Observer l’état opérationnel du service (voir Observer).
  • Certains services de plate-forme, comme le service d’authentification ou le service de stockage des données, doivent être déployés pour être hautement disponibles.
  • Prévoir un traitement de secours pour tout appel à un service ou une ressource externe :
    • Gérer le dépassement des limites de temps (timeout) afin d’éviter des appels qui durent pour toujours.
    • Prévoir, si possible, des valeurs par défaut raisonnables ou des résultats en cache afin d’atténuer les effets d’un appel sur un service externe défaillant.

Exemples

Mauvais

Le service Transfert du patient appelle le service Gestion du patient pour récupérer une donnée sur le patient. Le service Gestion du patient ne répond pas pendant 10 minutes, car il subit une surcharge de trafic. Le service Transfert du patient attend 10 minutes tout en empêchant l’utilisateur de continuer son travail et échoue avec une erreur technique. Les données déjà saisies par l’utilisateur sont perdues.

Bon

Le service Prise de notes médicales appelle, en arrière-plan, le service de stockage distant pour persister les données saisies. Le personnel soignant qui saisit les données médicales sur son appareil mobile est dans une zone de l’hôpital sans couverture réseau. Le service Prise de notes médicales détecte le manque de connectivité et enregistre localement les données dans un espace sécurisé. Il prévient également l’utilisateur de revenir dans une zone avec couverture pour que les données soient transmises automatiquement et l’informe quand cela est fait.