Comment mettre l'IA au service de votre ingénierie des performances dès maintenant

Si vous avez récemment assisté à un webinaire sur l’intelligence artificielle (IA) et l’apprentissage automatique (ML), vous avez probablement entendu dire qu’ils balayent le monde, et peut-être avez-vous entendu dire que nous pourrons simplement pointer le logiciel vers un site Web. tout cela grâce à la magie de l’IA. Comme pour la plupart des promesses de logiciels, un peu de scepticisme sain va très loin. Pourtant, des questions demeurent : existe-t-il des applications de l’IA / ML ayant des implications sur l’ingénierie des performances ? Certains d’entre eux sont-ils utilisés dans la nature avec succès ? Et si oui, quels sont-ils et comment peuvent-ils être reproduits dans notre coin de pays ? Voici six façons dont l’IA et le ML modifient l’ingénierie des performances, présentées comme des questions auxquelles l’IA et le ML peuvent aider à répondre.

Où vont nos performances en production ?

La quantité de données dans les journaux de production peut être écrasante. Même dans l’ensemble, cela peut prêter à confusion; un résultat d’API n’est tout simplement pas la même chose qu’un fichier image ou un autre élément de contenu statique. Cela signifie que la mesure du temps moyen de traitement des demandes pourrait être trompeuse. Une liste de retards par service peut signifier quelque chose pour un responsable informatique, mais pas grand-chose. Le temps médian est probablement plus informatif. Et l’argument fait rage, mais un regard sur les performances de production d’aujourd’hui est-il aussi précieux que de savoir où nous allons ? L’application la plus simple du ML consiste à utiliser des sources de données pour prédire les tendances. Les tendances aident les dirigeants à dire si une situation est sous contrôle, s’améliore ou s’aggrave – et à quelle vitesse elle s’améliore ou s’aggrave. Un graphique ML pourrait prédire les problèmes de performance, permettant à l’équipe de prendre des mesures correctives. Et comme l’a dit Benjamin Franklin, une once de prévention vaut une livre de remède et il est peut-être possible de tester le correctif avant de le déployer en production. Être capable de vérifier un correctif est formidable, mais pouvoir le faire avant d’avoir un impact sur un seul utilisateur en direct est encore mieux.

Que font nos utilisateurs ?

Historiquement, une grande partie des tests de performance a été une supposition. Les testeurs devinent ce que les utilisateurs vont faire, parfois informés par un journal. Si le journal est organisé de manière particulièrement utile, le testeur peut être en mesure d’écrire un script Ruby pour déterminer quelles actions se produisent le plus, à quelle fréquence ou combien de temps elles prennent. La création de suffisamment de ces outils peut prendre beaucoup de temps pour avoir une image complète de ce qui se passe ou, plus probablement, de ce qui s’est passé hier. Et au fur et à mesure que de nouvelles fonctionnalités et de nouvelles API avec de nouvelles URL sont ajoutées, ces outils deviennent obsolètes.Les outils des moteurs de recherche distribués basculent lors de l’utilisation du ML non supervisé. Vous jetez tous vos journaux dans un lecteur réseau partagé, l’outil ML les indexe, puis vous pouvez effectuer une recherche en utilisant quelque chose de proche de l’anglais. L’outil de traitement du langage naturel (PNL) essaie ensuite de comprendre ce que vous voulez dire et de vous donner la réponse.J’ai utilisé ce type d’outils pour trouver les erreurs spécifiques qui se produisent aux clients en production, mais aussi pour savoir combien fois qu’une activité particulière se produit au cours d’une période donnée. Les ingénieurs de performance peuvent poser les questions d’aujourd’hui en utilisant quelque chose de similaire à un moteur de recherche Google, peut-être avec quelques touches spéciales.La prochaine étape au-delà d’un moteur de recherche est un outil ML, peut-être aidé par quelques mots-clés ou regroupements, pour parcourir les journaux. C’est peut-être à l’horizon.

Comment créer des données réalistes ?

Les outils de performance classiques permettent au testeur d’effectuer certaines opérations via l’interface utilisateur, par exemple, se connecter, effectuer une recherche de produit, cliquer sur le produit, ajouter au panier, se déconnecter. L’outil enregistrera les paquets, puis les lira.Mais la prochaine fois que l’outil s’exécutera, de nombreux détails insignifiants dans les paquets pourraient être différents. L’ID utilisateur, l’ID de session, les codes de sécurité, l’ID de produit, les ID de cache et tous les codes uniques ou codes basés sur l’horodatage devront changer pour avoir une vraie simulation. Gil Kedem, chef de produit de la famille d’outils LoadRunner chez Micro Focus, a expliqué que la dernière génération d’outils de test de charge peut déduire un sens dans ces champs changeants et modifier les valeurs qui sont renvoyées pour qu’elles correspondent à celles qui sont envoyées, tout comme un navigateur pourrait.

Que signifient nos données ?

Les testeurs de performance expérimentés font plus que regarder les moyennes et les moyens; ils regardent les pourcentages. Les 10% de performance les plus mauvais, par exemple, pourraient être causés par un bogue dans le système qui crée une condition qui fonctionne toujours lentement. Une façon de le comprendre est de créer un histogramme, une carte de la distribution ou de la vitesse des performances de la fonctionnalité, de la fonction ou du système. Une autre consiste à déterminer si la lenteur des performances se produit pendant le chargement, par exemple, ou au point de transition, lorsque le système tente d’ajouter de la capacité avec des serveurs cloud supplémentaires qui ne sont pas encore en ligne. beurre de l’analyse des performances, il peut souvent être extrêmement difficile à faire. Le ML non structuré pourrait relier les points entre le temps, l’utilisation, la fréquence et les performances pour aider à répondre à ces questions. Plus immédiatement, Kedem prévoit des produits qui peuvent aider à filtrer ces cas rares et lents, afin que nous puissions décider s’il s’agit de bruit ou de quelque chose qui mérite une attention particulière.

Avons-nous vraiment résolu le problème ?

Le ML non structuré peut déterminer quelles étaient les conditions de production qui ont provoqué un échec. Avec cela en main, les ingénieurs en capacité et en performances peuvent créer des scénarios de test qui reproduisent le scénario. Exécutez le nouveau code sous le scénario pour le voir passer, oui, mais si vous le souhaitez, vous pouvez également exécuter l’ancienne version du code sous le scénario pour le voir échouer. Ce genre de test à deux facteurs démontre qu’un changement résout en fait les problèmes qu’il a été conçu pour résoudre.J’étais sceptique à ce sujet, mais Andreas Grabner, un activiste DevOps chez Dynatrace, me dit qu’il voit ce genre de fonctionnalités intégrées dans le test de performance. et des outils d’analyse. Membre actif de la communauté de la performance, Grabner est probablement mieux connu pour le « roadshow de test de performance » qu’il a effectué avant le COVID dans une douzaine de villes, en exécutant des analyses de test de performance devant un public. Sans rien dans ses manches, il a promis une capacité et un système exploitables. insights dans quelques heures, en supposant qu’il reçoive une invitation et les autorisations appropriées.

Notre système est-il résilient en cas de défaillance des sous-systèmes ?

Beaucoup d’entre nous connaissent Chaos Monkey, l’outil Netflix qui supprime intentionnellement les instances de production, étant donné que chaque système doit être redondant. En effet, la redondance doit être redondante. Ainsi, si un système est abaissé, il ne devrait y avoir aucun impact sur les performances du système. En surveillant les performances lorsque les tests sont en cours d’exécution, la direction peut déterminer si la redondance fait défaut. La panne qui en résulte peut durer cinq secondes, mais elle donne aux ingénieurs de Netflix les informations dont ils ont besoin pour résoudre le problème, de sorte que lorsque ce sous-système tombe vraiment en panne, il aura la redondance pour permettre au trafic de circuler. les abaisser est sans doute un type d’IA. Pourtant, lorsque la plupart d’entre nous disent « AI », nous voulons dire plus qu’une déclaration « si »; nous voulons dire la capacité d’apprendre. En remarquant ce qui échoue et ce qui fonctionne, Chaos Monkey peut proposer des stratégies plus complexes pour casser les choses, une sorte de véritable IA qui a la capacité d’améliorer l’expérience client aujourd’hui.

Qu’est-ce qui vient ensuite

J’ai essayé de me concentrer sur les endroits où le ML et l’IA sont réellement utilisés. Cela conduit à deux questions : qu’est-ce que j’ai manqué ? Et quelle est la prochaine étape ? Parlez-moi sur Twitter. Continue d’apprendre