L’approche intelligente du monitoring de production

Nous recevons beaucoup de questions à propos de notre collecte de statistiques Application Performance Management (APM) et de notre technologie d’analyse. Les gens veulent savoir spécifiquement comment nous captons autant d’informations détaillées tous en conservant des niveaux de surplus si bas. La réponse courte est que nos agents sont intelligents et savent, pour chaque transaction, quand capter chaque petit détail (complètement) et quand collecter uniquement les basiques. Utilisant une approche statistique, AppDynamics est capable de fournir le plus haut niveau de détail pour résoudre les problèmes dans les moments de haut trafic des applications.

AppDynamics, un docteur efficace

AppDynamics suit, référence et informe sur l’exécution de chaque transaction se déroulant dans votre application. Cependant, au contraire d’autres solutions APM qui ont débuté dans des environnements de développement, nos solutions ont été construites pour la production, ce qui requiert une approche plus intelligente pour capter les détails d’une transaction.

J’aimerais partager avec vous une histoire qui illustre la méthodologie basée sur les statistiques de AppDynamics et qui la compare avec l’approche de beaucoup de nos concurrents, celle de « capter le plus de détails possibles, qu’ils soient des problèmes ou non » (soit celle de nos agents sont trop vieux pour avoir une intelligence constructive).

Vous allez chez le Docteur AppDynamics pour des contrôles de santé réguliers. Il contrôle vos signaux vitaux, enregistre votre poids, mesure vos réflexes et compare chaque mesure effectuée avec de bonnes références. Quand vos statistiques sont proches des références, le docteur vous renvoie chez vous et passe au patient suivant sans retard. Lorsque que votre bilan santé s’éloigne des bonnes références, le docteur intelligent vous demande de faire plus de tests pour diagnostiquer le problème. Cette méthodologie minimise le fardeau imposé aux ressources à disposition et diagnostique, de manière réelle et efficace, tout problème que vous pourriez avoir.

Au contraire, vous allez chez le Docteur Ancien pour des contrôles de santé réguliers. Il contrôle vos signaux vitaux, enregistre votre poids, mesure vos réflexes et vous ordonne immédiatement d’effectuer d’autres tests de diagnostic même si vous êtes en parfaite santé. Il le fait pour chaque patient. Le système médical est désormais complètement débordé avec du travail supplémentaire qui n’était pas prévu. Ce fardeau ralentit le système entier, alors pour faire en sorte que les choses aillent plus vite, le Docteur Ancien décide de réduire les tests de diagnostic effectués sur chaque patient (même pour ceux qui ont de vrais problèmes). Maintenant les patients qui ont de vrais problèmes souffriront de manque de diagnostic dans la salle d’attente alors qu’ils ont besoin d’attention à ce moment-là. En plus, à cause de la grande quantité de tests de diagnostic et de données générées, les coûts du soin ont augmentés de manière inutile et excessive.

Est-ce que la méthodologie de Docteur Ancien fait sens quand de meilleures méthodes existent?

L’approche intelligente d’AppDynamics pour collecter des données et produire des diagnostics facilite le repérage des anomalies, grâce aux données fouillées de diagnostic fournies uniquement pour les transactions qui requièrent ce degré de détail ; il y a ainsi moins d’impact sur les ressources du système et peu de surplus dans le monitoring.

Suivi à 100% des Business transactions à tout moment

AppDynamics suit chaque « Business transaction » (BT) qui émane de vos applications. Il n’y a pas d’exception à cette règle. Nous apprenons et développons automatiquement des références dynamiques pour un temps de réponse de bout en bout, de même que le temps de réponse pour chaque composante dans le flux de transaction, et aussi des mesures critiques dans votre application.

png;base64d214b36b6e63ff55 png;base64e522c3286fc5ccc6

Nous notons chaque transaction en comparant le temps de réponse aux références auto-apprises. Quand nous déterminons qu’un BT a trop dévié de son comportement habituel (en utilisant un algorithme accordable), notre agent sait automatiquement collecter des détails complets pour votre dépannage. Cette méthodologie basée sur les statistiques permet à AppDynamics de détecter et d’alerter sur les problèmes depuis le départ pour qu’ils soient réglés avant d’avoir un impact majeur.

Bien entendu, il y a des moments où la capture d’une large palette de données pour chaque transaction est avantageuse – comme les développements en cours- et la solution APM de AppDynamics possède une autre caractéristique intelligente qui répond à ce besoin. Nous avons construit un simple bouton à un click pour activer l’enregistrement de données complètes dans tout le système. Le mode développeur est idéal pour les environnements en pré-production quand les ingénieurs définissent les profils et testent l’application. Le mode développeur va capturer un instantané de transaction pour chaque requête. En mode production, cela serait excessif et inutile. Cette méthode est même suffisamment intelligente pour savoir quand vous avez terminé de l’utiliser et s’arrêtera automatiquement quand elle sera laissée de côté ; ainsi votre système ne va pas connaître un bug si le volume des informations augmente.

png;base647b418e94c3825a79

Qui jette un œil à la production quand il n’y a pas de problème?

L’une des pires choses avec les anciennes solutions APM est le fait qu’elles collectent autant de données qu’elles peuvent, à tout moment. Cela provient à la base de l’outil APM qui ont débuté en tant qu’outil de profilage pour les développeurs qui ont eux été moulés pour travailler dans la production. Cette méthodologie est correcte pour des environnements de développement (nous l’effectuons en mode développement comme expliqué ci-dessus), mais elle échoue misérablement dans chaque scénario de fort volume comme les tests de chargement et la production. Pourquoi? Je suis heureux que vous posiez la question ;-).

Chaque outil moyen APM décent a construit des limiteurs pour éviter de causer des dommages et d’introduire trop de choses lorsqu’une application est en cours de fonctionnement. Quand vous collectez autant de données fouillées que possible sans aucune manière intelligente d’utiliser votre palette de données, vous provoquez des surcharges tout le temps. Le problème est que lorsque le chargement de votre application devient plus élevé, les problèmes vont certainement faire surface à ce moment-là, et c’est le moment où le surplus des anciens APM s’envole (à cause des quantités d’exécution de code et la récolte fouillée de données toujours en mode on). Les limiteurs entrent en jeu et réduisent la quantité de données récoltées ou détruisent la récolte de données. En langage simple, ceci veut dire que les outils des anciens APM ne peuvent différencier les bonnes des mauvaises transactions et vont fournir moins de données au moment où vous avez besoin de beaucoup de données. N’est-ce pas drôle la manière dont les équipes de marketing et de vente essaient de vendre cette technologie comme la meilleure jamais vue?

J’ai personnellement utilisé différents outils APM en production et je n’ai jamais eu besoin de regarder tous les détails quand il n’y avait pas de problème. J’étais trop occupé à effectuer mon travail et ne pouvais jeter un œil sur des données sans aucune importance juste pour le fun.

Intelligence proposée pour une évolutivité énorme

Tout le processus de récolte intelligente de données mentionnée ci-dessus requiert un petit nombre de traitements en plus pour déterminer quand il faut aller plus en profondeur et ce qu’il faut enregistrer. C’est le moment où les détails d’implémentation font vraiment une différence.

Chez AppDynamics, nous plaçons l’intellect là il est le plus approprié – au niveau de l’agent. C’est un simple changement de paradigme qui distribue la charge de travail directement à la base (où l’on ne le remarque même pas) plutôt que de la concentrer sur un seul point. Cette composition architecturale importante fait en sorte que le chargement sur application continue, le chargement sur le serveur de gestion reste faible.

En contraste avec les anciennes solutions APM, cantonner quelque intelligence que vous ayez sur le ou les serveurs centraux de monitoring provoque des demandes plus grandes en ressource et ainsi une infrastructure de monitoring qui requiert plus de serveurs et des niveaux plus importants d’attention et d’alimentation.

Monitoring Infrastructure Load Chart

Collecter, transmettre, stocker et analyser une grande quantité des données inutiles va de pair avec un coût total élevé de cycle de vie. Cela demande beaucoup de personnes, de serveurs et de stockage pour gérer correctement ces anciens outils APM dans un environnement d’entreprise. La plupart des vendeurs d’APM veulent également vous vendre leurs services onéreux de consultant uniquement pour gérer leurs solutions complexes. Les outils APM intelligents vous débarrassent d’un fardeau à la place d’en augmenter le poids comme le font les anciens outils APM.

Tous les outils de logiciel passent par des périodes de transition lorsque des améliorations sont faites et que les trous générationnels sont reconnus. Ce qui était au top autrefois devient dépassé à moins d’investir lourdement dans une modernisation. J’espère que ce coup d’œil détaillé sur les méthodologies vous aidera à décortiquer la masse de propagande de vente et de marketing qui se développe et à laquelle les personnes actives dans l’informatique sont sans cesse confrontées. Il est important de comprendre ce que des vendeurs de software font vraiment, mais il est encore plus important de comprendre comment ils le font car cela aura un impact majeur sur l’utilisation.