Utiliser l'IA générative pour la résolution des problèmes et la fiabilité des logiciels
25 juillet 2023 par Dotan Horovits
Dans le paysage numérique actuel, en évolution rapide, il est crucial de maintenir vos services opérationnels et performants, en particulier pour les services basés sur le cloud et en ligne, pour rester compétitif. Les problèmes de temps d'arrêt ou de latence peuvent faire fuir les clients, surtout lorsqu'il suffit d'un clic pour passer à une solution SaaS concurrente. Les équipes DevOps et d'ingénierie de fiabilité des sites (SRE) sont confrontées au défi constant de minimiser le temps moyen de résolution (MTTR) lorsqu'elles traitent des erreurs et des problèmes. Aussi précieux que soient les moteurs de recherche comme Google, la quantité d'informations disponibles peut rendre la recherche des bonnes solutions une tâche fastidieuse. Et s’il existait un moyen d’automatiser et de rationaliser ce processus, rendant ainsi les enquêtes sur les erreurs plus intelligentes, ciblées et efficaces ?
Cet article vous guidera tout au long du processus de résolution des erreurs, depuis la première ligne de journal obscure jusqu'à l'identification du problème qui s'y cache. Nous résoudrons le problème en utilisant plusieurs tactiques, conduisant finalement à l'utilisation de l'IA générative pour réduire le MTTR et fournir des recommandations informatiques précises. Ce parcours comprend des mesures et des principes utiles qui peuvent être appliqués par les équipes DevOps et explore le potentiel d'application de l'IA générative.
Imaginez ceci : une ligne de journal apparaît avec un message d'erreur obscur, et le premier réflexe est de rechercher ce message sur Google pour des solutions potentielles. Après tout, quelqu’un d’autre a dû rencontrer un problème similaire, n’est-ce pas ? Cependant, l’abondance des ressources et des résultats de recherche peut être écrasante. Les résultats de recherche sont souvent affichés en fonction de la pertinence du site Web, pas nécessairement de la pertinence de l'erreur elle-même. Par conséquent, un temps précieux est perdu à parcourir d’innombrables résultats de recherche, ce qui entraîne un temps plus long pour comprendre et corriger l’erreur. Pour les équipes DevOps et SRE chargées de maintenir la stabilité du système, la réduction du MTTR est un indicateur de performance clé (KPI) crucial. Cela soulève la question suivante : comment pouvons-nous tirer parti de l'automatisation et de l'intelligence artificielle pour améliorer le processus de recherche et accélérer la résolution des erreurs ?
Dans la première tentative de notre organisation pour relever ce défi, nous nous sommes concentrés sur l'exploitation des techniques de crowdsourcing pour obtenir des résultats plus pertinents que la recherche Google par force brute. De plus, nous souhaitions automatiser le processus et l'exécuter hors ligne afin que lorsqu'un incident survient, nous puissions offrir des informations utiles plutôt que de lancer la recherche lorsque le système est en panne ou fonctionne mal.
L'approche comprend une phase hors ligne et une phase en ligne. La phase hors ligne impliquait l'analyse de tous nos journaux ingérés et l'identification des modèles de journaux courants. Cela nous a également permis de compter la fréquence à laquelle ce schéma s'est produit dans notre système et sa prévalence. Ensuite, nous avons exploré des forums technologiques pertinents tels que StackOverflow, Google Groups et Bing Groups pour trouver un discours pertinent autour de ces modèles de journaux qui pourraient offrir des solutions pertinentes. L'étape suivante consistait à classer les résultats de la recherche par pertinence et à sélectionner les cinq liens les plus pertinents.
La phase hors ligne a abouti à une bibliothèque de modèles de journaux connus et, pour chacun d'eux, un aperçu cognitif contenant ces liens, ainsi que des informations supplémentaires telles que le niveau de gravité, le nombre de fois que ce modèle s'est produit dans les journaux, la date de première occurrence. et des balises supplémentaires des technologies, outils et domaines impliqués.
La phase en ligne se déroule en temps réel à mesure que de nouveaux journaux arrivent. Lors de l'ingestion du journal, il est automatiquement comparé à tous les modèles connus ; s'il en correspond à un, il obtient l'aperçu cognitif de ce modèle. Cela signifie que dès que le journal problématique arrive, l'ingénieur DevOps a déjà ciblé et classé les résultats de recherche et le contexte à partir desquels commencer, ce qui accélère le processus d'enquête.
Après avoir réfléchi à notre approche initiale, nous avons eu une révélation. Les grands modèles de langage (LLM) comme ChatGPT avaient déjà exploré le Web et absorbé une grande quantité d'informations. Alors, pourquoi ne pas exploiter leurs capacités et leur demander directement des informations ? L’idée était simple : laisser l’IA « lire les messages » pour nous et nous fournir des recommandations. Nous avons commencé par formuler des questions spécifiques telles que « Quelles pourraient être les erreurs possibles ? » et est même allé plus loin en demandant des mesures d'enquête plus approfondies. Cependant, la mise en œuvre de cette approche apparemment simple comportait son lot de défis. Nous devions exécuter un prétraitement avant de demander à l'IA générative, ainsi qu'un post-traitement sur les réponses qu'elle renvoyait, pour obtenir ce que nous attendions. Voyons ce que ce processus implique.