Partager via


Implémenter des applications résilientes

Conseil / Astuce

Ce contenu est un extrait du livre électronique 'Architecture des microservices .NET pour les applications .NET conteneurisées', disponible sur .NET Docs ou en tant que PDF téléchargeable gratuitement, lisible hors ligne.

Architecture de microservices .NET pour les applications .NET conteneurisées - vignette de couverture du livre électronique.

Vos applications cloud et vos microservices doivent accepter et gérer les défaillances partielles qui surviendront inévitablement. Vous devez concevoir votre application pour qu’elle soit résiliente à ces défaillances partielles.

La résilience est la capacité à récupérer après des défaillances et à continuer de fonctionner. Il ne s’agit pas d’éviter les échecs, mais d’accepter le fait que les échecs se produisent et de répondre à eux de manière à éviter les temps d’arrêt ou la perte de données. L’objectif de résilience est de renvoyer l’application à un état entièrement opérationnel après une défaillance.

Il est assez difficile de concevoir et de déployer une application basée sur des microservices. Toutefois, vous devez également maintenir l’exécution de votre application dans un environnement où un certain type d’échec est certain. Par conséquent, votre application doit être résiliente. Il doit être conçu pour faire face à des défaillances partielles, telles que des pannes réseau ou des nœuds ou des machines virtuelles qui se bloquent dans le cloud. Même les microservices (conteneurs) déplacés vers un autre nœud au sein d’un cluster peuvent entraîner des défaillances courtes intermittentes au sein de l’application.

Les nombreux composants individuels de votre application doivent également incorporer des fonctionnalités de suivi de la santé. En suivant les instructions de ce chapitre, vous pouvez créer une application qui peut fonctionner en douceur malgré un temps d’arrêt temporaire ou des hiccups normaux qui se produisent dans des déploiements complexes et basés sur le cloud.

Importante

eShopOnContainer avait utilisé la bibliothèque Polly pour implémenter la résilience à l’aide de clients typés jusqu’à la version 3.0.0. À compter de la version 3.0.0, la résilience des appels HTTP est implémentée à l’aide d’un maillage Linkerd, qui gère les nouvelles tentatives de manière transparente et configurable au sein d’un cluster Kubernetes, sans avoir à gérer ces préoccupations dans le code.

La bibliothèque Polly est toujours utilisée pour ajouter la résilience aux connexions de base de données, spécialement lors du démarrage des services.

Avertissement

Tous les exemples de code et images de cette section étaient valides avant d’utiliser Linkerd et ne sont pas mis à jour pour refléter le code réel actuel. Ils ont donc du sens dans le contexte de cette section.