Supervision fonctionnelle ou technique d’une application

De plus en plus souvent nous cherchons à superviser l’exécution du code des applications que nous développons pour apporter un éclairage fonctionnel ou technique sur le fonctionnement du SI.
C’est généralement le domaine de prédilection des solutions APM.
La plupart d’entre elles couvrent ces champs d’application. Mais la tentation est grande pour les DSI d’essayer de faire des économies de coûts de licence en intégrant diverses métriques dans les applications et pensant se substituer ainsi aux solutions spécialisées jugées onéreuses ou sans une réelle valeur ajoutée.
Penser faire des économies en développant soi même un système de supervision est, me semble t-il, un leurre. Les frais induits par la conception, la maintenance, et l’évolution du système de supervision (incluant le développement, la mise en place de l’infrastructure, et la maintenance de l’ensemble) ne peuvent pas être inférieurs aux coût de licence et de support d’une solution spécialisée, déployée sur un model SaaS. Par ailleurs ces solutions « maison » ne peuvent pas non plus atteindre le niveau de maturité des solutions commerciales. Les délais de mise en oeuvre ne sont pas non plus comparables.
Quant aux solutions APM Open source, elles restent pour le moment immatures, introduisent souvent un couplage fort entre les applications et la solution mise en oeuvre et couvrent partiellement les besoins de supervision.
Donc sous l’impulsion d’une direction ou d’un ESN (ayant trouvé un sujet juteux), il arrive parfois que des développeurs ou des architectes, qui n’ont pas été suffisamment confrontés à cette exigence, envisagent le déploiement d’un système de supervision ad hoc et le développement du dispositif de collecte des métriques.
Si c’est le chemin sinueux que vous empruntez, sachez que développer la collecte des métriques est une erreur… Il existe depuis des années des librairies Java sur étagères et open source qui implémentent déjà ce type de fonctionnalités. Parmi les ressources disponibles on trouve notamment les projets Dropwizard metrics et Micrometer.
Ces librairies permettent non seulement de créer des métriques de divers type (valeur instantanée, compteur, débit,…) et d’y ajouter des dimensions (des axes d’analyse) mais également de pousser ces informations vers une destination qui pourrait être une brique d’observalité 😉 (composée par exemple de Telegraf(collecteur), Infludb(BD time series), Graphana(console de supervision), Prometeus(mécanisme de gestion des alertes)) ou plus simplement un fichier.
Il est de votre responsabilité de définir l’objectif de cette supervision intégrée aux applications. Il peut être de fournir à des gestionnaires d’applications des indicateurs de suivi du fonctionnement et/ou de l’utilisation du SI, et des indicateurs techniques aux personnes en charge du suivi technique des applications et des plateformes.
Mais ne vous y trompez pas, si votre objectif est également de pouvoir diagnostiquer des problèmes de performance applicative avec précision afin de limiter la période d’instabilité vous ne serez pas au bout de vos peines. Vous ne pourrez pas substituer une solution ad hoc à un APM dont l’une des valeurs ajoutées consiste justement à apporter de l’aide dans le diagnostic des problèmes de performance.

Et vous dites nous ce que vous mettriez en place… N’hésitez pas à partagez votre expérience sur ce sujet.

http://www.jperf.com

Publicités

A propos jlerbsc

founder of JavaPerf Consulting Http://www.jperf.com
Cet article, publié dans performance, est tagué . Ajoutez ce permalien à vos favoris.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s