[Post IT] Machine learning : Rendez les opérations plus efficaces

Le Machine Learning est aujourd’hui omniprésent : Les grandes entreprises l’utilisent pour améliorer le service rendu à leurs utilisateurs (suggestions de produits, détection d’opportunités, amélioration de la navigation des sites web, résultats de recherche plus pertinents et taillés spécifiquement pour un utilisateur …) et ainsi augmenter leurs résultats.

Cette démocratisation du Machine Learning fait que son usage s’est également grandement simplifié grâce à la mise en place d’outils de plus en plus simples à utiliser et performants.

Cette facilité d’utilisation contribue à son tour à l’explosion des cas d’usage du Machine Learning.

On comprendra donc que l’utilisation du Machine Learning est aujourd’hui uniquement limité par l’imagination, et que cela explique un usage croissant dans le monde de l’IT.

Qu’est ce que le Machine Learning ?

Type d’algorithmes

Le machine learning peut être considéré comme une partie de l’intelligence artificielle. Sans rentrer dans trop de détails, il existe plusieurs catégories d’algorithmes de Machine Learning.

Ils peuvent être soit supervisés, soit non-supervisés :

  • Supervisés : La phase d’apprentissage de l’algorithme se fait sur un jeu de données qui ont été analysées par un humain (ex : une ligne de log correspond à un incident ou pas, un e-mail est un spam ou pas, etc) et on attend que, une fois l’apprentissage terminé, l’algorithme soit capable de faire cette analyse sur de nouvelles données
  • Non-supervisés : La phase d’apprentissage se fait sur un jeu de données « brutes » sans l’intervention d’un humain

On peut ensuite les classer selon leur fonction. Voici quelques exemples qui ont du sens dans un contexte IT/Ops :

  • Régression : Détermination de tendances
  • Classification : Regroupement (au sein de classes prédéfinies) de données présentant des similarités
  • Clustering : Regroupement de données présentant des similarités au sein de classes qui seront déterminées par l’algorithme en fonction de seuils
  • Détection d’anomalies : Identification des données qui semblent présenter des caractéristiques différentes des autres données du même jeu de données
Machine Learning : Exemple de Clustering
Un exemple de clustering

 

Les Toolkits qui vont vous faciliter la vie

Signe de la démocratisation du Machine Learning, de nombreux toolkits prêts à l’emploi sont aujourd’hui disponibles. Ils rendent l’utilisation du Machine Learning de plus en plus facile en masquant les complexités d’implémentation des algorithmes.

Les quatre projets opensource suivants sont suffisamment populaires pour mériter une mention spéciale :

Mettre en place du Machine Learning revient donc à identifier les données, choisir ce que l’on veut en extraire et par quel type d’algorithme, puis utiliser les fonctions offertes par un tel toolkit pour procéder à l’implémentation.

S’il est donc toujours utile de comprendre les grands principes de fonctionnement du Machine Learning, il n’est en revanche plus réellement nécessaire de savoir implémenter l’algorithme lui-même.

 

OPS V2.0

Quelles données peut-on utiliser ?
On peut envisager de soumettre tout type de données à un algorithme de Machine Learning. Dans un contexte IT, on peut notamment considérer :

  • Les logs systèmes et applicatives
  • Les données de métrologie
  • Les données de la CMDB
  • Les tickets de support ou d’incident

La complexité reviendra à rendre ces données utilisables par l’algorithme de Machine Learning, et notamment d’en extraire les caractéristiques utiles (on parle de « features »). Voici quelques exemples de caractéristiques :

  • Une ligne de log pourra contenir un niveau de criticité, un équipement, un horodatage
  • Un ticket d’incident pourra contenir des champs analysables, des mots-clés, etc
  • Les éléments de la CMDB auront un type (serveur, réseau, client, etc), un emplacement (DataCenter, salle technique, …) etc

ML 2

Que peut-on attendre du Machine Learning ?

Dès lors qu’on a un parc de machines suffisamment important, le volume d’informations généré devient impossible à analyser manuellement. Logs, mesures des sondes, métriques en tout genre : le flux d’information se déverse constamment.

Si on prend l’exemple des logs, on opte souvent, à défaut de mieux, à la mise en place de recherche par motifs (« patterns »). Si un motif est reconnu, une alerte sera remontée. Pour les sondes, on mettra en place un seuil statique, par exemple « si valeur > X% alors remonter alerte ».

Le problème de cette approche est qu’on ne sera alerté que dans les cas qui ont déjà été identifiés. En outre, mettre des seuils statiques et absolus ne reflète pas la réalité de la production où les seuils de normalité peuvent dépendre beaucoup de paramètres (heure, mois, etc).

Le Machine Learning, dans un contexte IT, peut permettre de faire beaucoup mieux avec ces données, et sans demander plus de travail au staff IT.

Réduction du temps d’intervention (MTTI) et approche plus proactive.

Le Machine Learning permet d’avoir une vision de la normalité. Prenons par exemple un monitoring « standard » de la consommation CPU : Celui-ci sera programmé pour lever une alerte si on atteint une moyenne supérieure à 80% sur les 5 dernières minutes par exemple.

Ce monitoring ne donnera pas d’alerte si nous sommes en période creuse et que nous avons 40% alors qu’on devrait normalement en avoir 10. Un algorithme de Machine Learning (dont les « features » auront toutefois été choisies soigneusement) permettra de détecter cette anomalie.

Ou encore, on peut imaginer que l’algorithme analyse systématiquement, a posteriori, les logs produits dans un certain intervalle de temps avant un incident. Le Machine Learning permettra alors d’identifier lesquels sont prédictifs, permettant alors d’anticiper, encore une fois, un incident.

On comprend que le monitoring prend une nouvelle dimension, permettant de devancer certains incidents pour apporter les correctifs nécessaires et ainsi les éviter.

Réduction du temps de résolution (MTTR) des incidents.

Même si dans un monde idéal on souhaiterait anticiper et éviter tous les incidents, en pratique cela a peu de chance d’être réalisable.

En revanche le Machine Learning peut aider à résoudre les incidents plus vite. Lorsqu’on aura un nouvel incident, on peut utiliser le Machine Learning pour enrichir automatiquement un ticket d’incident avec une liste des incidents similaires déjà rencontrés, permettant ainsi à un administrateur de s’inspirer des résolutions passées.

Une fois l’incident résolu, si l’administrateur documente un champ de son ticket avec la résolution appliquée, celle-ci pourra être suggérée quand un prochain cas se présentera.

Si l’administrateur donne un feedback sur la qualité de la résolution suggérée par l’algorithme pourra améliorer la pertinence de ses suggestions.

Le Machine Learning pourrait ainsi permettre de restaurer le service au plus vite, et aussi à améliorer la productivité des administrateurs.

Amélioration du Problem Management.

Le Problem Management, au sens ITIL, consiste à identifier et éradiquer la cause commune à un ou plusieurs incidents.

Le Machine Learning peut permettre de grouper ensemble (« Clustering ») les incidents ayant des similarités, permettant ainsi de voir si des plans d’actions peuvent être mis en place pour fiabiliser le service, de manière globale.

On peut appliquer la même démarche aux demandes de service afin de voir comment automatiser les plus fréquentes.

Ici aussi, en évitant le travail répétitif, on va libérer du temps aux administrateurs en leur permettant de se concentrer sur des tâches ayant plus de valeur ajoutée.

ML 3

Futur nombre d’incidents grâce au machine learning ?

Gestion du Capacity Planning

Le Machine Learning peut permettre de découvrir des tendances d’utilisation de ressources, et ainsi de faire des projections permettant d’anticiper à quel moment il sera pertinent d’ajouter de la capacité (CPU / RAM / Disque / …) afin d’éviter l’incident.

Le choix des caractéristiques (« features ») sur lequel on va faire opérer le Machine Learning va être important. Par exemple, si on y intègre le mois, on pourra avoir des seuils qui prendront en compte les aspects saisonniers d’une activité.

Pour conclure …

Il n’y a aucun doute que le Machine Learning a beaucoup à apporter aux opérations et à l’amélioration des services IT, surtout sur des parcs informatiques de taille importante.

Plusieurs produits utilisant ces techniques sont déjà sur le marché. A titre d’exemple uniquement :

Il est également tout à fait possible, mais au prix d’un certain effort, d’implémenter tout ou partie de ce type de solutions soi-même, à l’aide de solutions de bigdata tels que Hadoop, couplé à des solutions de stream processing et de Machine Learning tel que Spark / Spark-MLlib.

Entre les produits clé en main et la solution maison, il est également possible de s’appuyer sur les services bigdata dans le cloud, proposés par AMAZON AWS, Microsoft Azure, ou IBM Bluemix.

Le Machine Learning appliqué à l’IT ne relève donc pas de la fiction mais bien d’une réalité qui se met en place. A la clé, des services IT plus fiables, et des gains de productivité importants pour les opérations qui auront alors la possibilité de se concentrer sur des tâches à plus forte valeur ajoutée.

Laisser un commentaire