Hello !
Suite à ce précédent article je vais aujourd’hui évoquer la gestion des erreurs et la tolérance aux pannes.
Cet article est une “réponse” aux questions soulevées ici !
Gestion des logs et monitoring
Le monitoring et la gestion des logs sont intégrés a Azure Service Fabric grâce à deux composants Azure :
- Windows Application Diagnostics
- Application Insights
Ces deux modules doivent être activés à la création du cluster Azure Service Fabric et configuré dans la solution Visual Studio.
WAD permet de :
- Détecter et diagnostiquer les problèmes d’infrastructure
- Détecter les problèmes liés à votre application
- Comprendre la consommation des ressources
- Faire le suivi du niveau de performance des applications, des services et de l’infrastructure
Pour cela WAD collecte des « journaux » :
- Evènements de la plateforme ASF
- Intégrité et charge des clusters
- Monitoring et utilisation du Reverse proxy
- Compteur de performance
- Evènement des applications
Application Insights quant à lui permet de :
- Profiler nos applications
- Analyser l’utilisation des services
- Obtenir des métriques en temps réel : voir https://docs.microsoft.com/fr-fr/azure/application-insights/app-insights-metrics-explorer
- Obtenir une pile d’exception en cas de crash
- Tracer les appels réseaux. Il est alors possible grâce à Metrics Explorer de mettre en forme ces données dans des graphiques personnalisés.
AI nous offre également un langage de requête, inspiré de LinQ (Analytics pour Application Insights) pour extraire les données qui nous intéresse et les présenter sous forme de graphiques par exemple.
Insight analyse :
- Les exceptions dans un services :
- Consultations de pages et performances de chargement.
- Nombre de sessions et d’utilisateurs.
- Les appels services, temps de réponse et taux d’échec.
- Compteurs de performances des serveurs Windows ou Linux, par exemple le processeur, la mémoire et l’utilisation du réseau.
- Diagnostics d’hébergement Azure.
- Journaux de suivi des diagnostics des applications : pour pouvoir mettre en corrélation les événements de suivi avec les demandes.
- Mesures et événements personnalisés (à implémenter dans le code source)
- Permet d’envoyer des alertes en cas de télémétrie anormale :
Insight est un outil complet et très puissant que nous aurions tort de ne pas utiliser avec Service Fabric de même qu’avec une Web App d’ailleurs 🙂
Gestion des pannes et résilience
Dans cet article nous avions identifié ces besoins :
- Détecter quand un service est off pour que le client ne tente pas de le joindre inutilement.
- Auto guérison des services : le cloud favorise la gestion de ce besoin par la mise en œuvre de :
- Scalabilité horizontale : duplication automatique des composants logiciels.
- Scalabilité verticale : augmentation de la puissance de la plateforme hôte (CPU / RAM / espace disque).
Azure Service Fabric répond à ce besoin car la plateforme tente d’apporter la plus grande fiabilité possible à notre application en nous proposant nativement :
- Scalabilité automatique suivant des règles de charge
- Load balancer pour répartir la charge
- Redémarrage des services automatique
- Outils de monitoring et de diagnostics pour analyser les problèmes
Mais nous détaillerons ces points précisément lors de la mise en oeuvre concrète de cette solution PAAS !