Prédiction de pannes applicatives grâce au Machine Learning

Prédiction de pannes applicatives grâce au Machine Learning

Voici un projet réalisé au sein de l’équipe MonitorIT d’Edifixio par Houda une de nos stagiaire, dans le cadre d’un stage de fin d’études.

MonitorIT est la solution d’Edifixio pour orchestrer le monitoring proactif des équipes DevOps. MonitorIT permet de réunir toutes les personnes ayant un intérêt au bon fonctionnement du projet en une seule et même équipe. Son but premier est d’aider à diffuser et organiser la culture Devops au sein de votre organisation.
 

Le monitoring proactif se base entre autres sur les valeurs en temps réel des sondes fonctionnelles et techniques des applications monitorées. L’équipe DevOps se base sur ses valeurs pour anticiper d’éventuels problèmes de l’application.
 
Le sujet de stage était d’enrichir l’application avec des prédictions sur les sondes des projets, afin d’aider au mieux les équipes DevOps dans leur tâche de monitoring proactif. L’objectif est d’explorer les capacités d’apprentissage automatique afin de prédire l’état des sondes applicatives dans le but d’anticiper les pannes des applications monitorées.

Stack technique
 

L’application MonitorIT s'exécute en Java sur un serveur d’application Apache TomEE pour la partie backend. La partie Front est réalisée en React Native.

 

Le service Amazon Sagemaker a été déployé et configuré afin de mettre en place un algorithme de Deep Learning de séries temporelles pour évaluer les valeurs des sondes applicatives à 1 heure, 1 jour, 1 semaine.

La mise en place de l’algorithme de Machine Learning s'est effectuée en deux étapes:
 

  • Une première étape permettant de générer le modèle: Les données de sondes, archivée sur Open Distro, sont récupérées par SageMaker, afin d’être utilisées comme données d'entraînement et de tests sur l’algorithme DeepAR et de générer un modèle de données qui est ensuite déployé sur un EndPoint.
  • La seconde étape a consisté à intégrer l’appel au EndPoint du modèle d'entraînement à partir du backend de l’application MonitorIT. Le EndPoint prend en paramètre les dernières données des sondes applicatives ainsi que la prédiction souhaitée (1 hour, 1 jour, 1 semaine) et génère les valeurs prédictives des sondes.

 

Résultats:

L’application MonitorIT a été enrichie des valeurs de prédictions des sondes ce qui fournit aux équipes DevOps des inputs additionnels dans l’évaluation de l’état de leur application. Chaque équipe a maintenant à sa disposition l’état des sondes en temps réel ainsi que dans l’heure, le jour et la semaine à venir.

Prochaines étapes :

Les toutes prochaines étapes de développement du produit prévoient d’améliorer les prédictions générées en fournissant plus de données de training et en ajustant l’algorithme de prédiction.

 

 

N’hésitez pas à télécharger l’application MonitorIT.

Rendez-vous sur : https://monitorit.edifixio.com
 

AppStore
GooglePlay