Au commencement, était l’IA …
Depuis le milieu des années 1930 avec l’invention de la célèbre machine de Turing, l’informatique passe progressivement d’un paradigme de calcul « par règles » vers une logique de calcul « par approximation statistique » plus agile et généralisable. Ce passage vers le software 2.0 ne fut pas que semé de réussite et dû malheureusement connaitre quelques désillusions. La première fut la publication du Lighthill Report en 1973, qui affichait son scepticisme profond concernant l’utilité pratique de l’IA. A la fin des années 90, l’IA avait retrouvé des couleurs grâce notamment à la défaite du champion d’échecs Garry Kasparov face à Deep Blue, le supercalculateur d’IBM en 1996-1997. Cependant, au début des années 2000, les investissements dans l’IA connurent un ralentissement profond, car le coût du développement et de la maintenance des systèmes de calcul « par règles » ne permettait pas aux projets industriels de générer un ROI intéressant.
Le « deep learning », système par approximation statistique, a commencé à être déployé au début du 21e siècle notamment dans le secteur financier pour traiter les chèques automatiquement avec la technologie OCR (optical character recognition). Puis, son application dans le domaine de la reconnaissance vocale connut un essor au début des années 2010. Depuis, le deep learning est utilisé de plus en plus souvent, grâce notamment à sa performance prédictive et à sa capacité à démontrer un retour sur investissement attractif sur les projets où il est utilisé.
Les domaines d’application de l’IA en entreprise
L’IA est aujourd’hui appliquée dans 4 domaines majeurs. Le premier est ce que l’on appelle le traitement du langage naturel (NLP). C’est un cas d’application quotidien et le plus courant avec notamment des logiciels anti-spam, traducteurs ou chatbots. Vient ensuite la reconnaissance d’images. Cette famille d’IA est notamment au cœur des technologies utilisées par les véhicules autonomes. Il y a ensuite la robotique, au service de l’industrie qui a révolutionné les chaînes d’assemblage et a transformé des secteurs comme celui de l’automobile.
Et enfin, le machine learning ; l’un des piliers fondamentaux de l’IA. Dans le domaine de l’AI Ops, c’est la méthode la plus utilisée pour automatiser la gestion des infrastructures, des réseaux et des applications. Grâce au machine learning, les DSI peuvent maintenant analyser de grandes quantités de données afin d’identifier les risques de sous-performance, de comprendre les causes racines de ces problèmes, voire même de définir les stratégies de remédiation adaptées lorsque des incidents se produisent.
Le défi de la complexité, l’opportunité des datas
Réduire la complexité représente un objectif majeur pour la plupart des DSI, car elle permet de réduire le TCO (coût total de possession) et d’augmenter l’agilité opérationnelle des DSI. Mais maitriser la complexité est un vœu pieux à l’ère digitale accélérée. On constate que la plupart des datacenters exploitent des éléments d’infrastructure fabriqués par différents fournisseurs. Cette infrastructure échange des données en utilisant de nombreux réseaux et des protocoles de communication variés. Des systèmes d’exploitation hétérogènes sont typiquement exploités. Et de nombreux langages de programmation, bases de données et standards sont obligés de coexister. De surcroit, on constate une forte réduction de la durée des cycles de vie des technologies, ce qui ne fait qu’aggraver le phénomène de la complexité. Par exemple, depuis quelques années les microservices ont la faveur des développeurs, ce qui impacte tout le paysage de l’informatique – des infrastructures, OS et architectures applicatives utilisés.
Tout cet écosystème génère un volume colossal de données. Un serveur produit quelques 3 000 évènements par jour, et un datacenter moyen héberge environ 10 000 serveurs ! On comprend vite le défi du DSI ; comment analyser 30 millions d’évènements par jour ! Heureusement, ces événements contiennent des informations très utiles et nécessaires pour la maintenance d’un bon état de fonctionnement des systèmes. Mais comment les exploiter ?
Le machine learning permet d’automatiser l’analyse de volumes impressionnants de données. Un exemple simple et très utile consiste à catégoriser les logs d’événements générés, puis de contrôler l’évolution de la taille de chaque famille dans le temps. Un autre exemple d’approche consiste à estimer les corrélations entre les différents événements, pour construire des algorithmes prédictifs du niveau de performance future d’un serveur en fonction de métriques observables à un instant « t ».
Avec les réseaux neuronaux, on peut modéliser l’interaction de nombreuses variables avec un niveau de précision très élevé. Grâce à ces modèles, les DSI peuvent réduire l’indisponibilité de leurs applications par 2 ou 3, en déployant des stratégies de maintenance préventive ultra-ciblées, et en optimisant le MTTI/MTTR lorsqu’un incident se produit. L’impact financier de ses gains de performance opérationnelle est considérable.
Réussir le déploiement de l’AI Ops
Déployer des capabilités AI Ops nécessite l’intégration d’un écosystème couvrant 6 domaines fonctionnels clé :- Agents ; pour capter les métriques sur chaque item de configuration monitoré, de l’infrastructure aux applications.
- Parseurs ; pour standardiser les données en provenance des systèmes hétérogènes et les rendre comparables
- Bases de données ; SQL et surtout NOSQL, permettant l’indexation des données et la construction de schémas relationnels selon les besoins ad hoc des opérateurs
- Modules analytiques ; pour construire les algorithmes de machine learning, de préférence avec des outils open source du type KERAS ou TensorFlow.
- Visualisation ; des données et restitution des rapports aux principaux intéressés
- API REST ; à la sortie, afin que les systèmes en aval puissent exploiter les prédictions et recommandations pour automatiser les actions de remédiation
Pour réussir le déploiement d’AI Ops, trois leçons sont à retenir. La première est que le « service modelling » est l’une des étapes fondamentales à maîtriser en amont car la visibilité des dépendances entre les infrastructures, les réseaux, les OS, les middlewares et les applications est critique pour automatiser l’analyse de la performance et l’identification des causes racines des incidents. La deuxième est de travailler sur la qualité et la complétude des datas ; de la CMDB, aux traçages exhaustifs des threads & spans de microservices. On peut dire avec certitude que la qualité de l’input conditionne la qualité de l’output. Enfin … la troisième est qu’il est préférable d’éviter des logiques « Big bang » au profit d’approches plus agiles, au coup par coup et focalisées sur les douleurs opérationnelles réels, où l’on peut mesurer les gains à l’issu de chaque projet AI Ops.
Par Vladimir Dragic, Directeur Stratégie Digitale chez BMC Software France