Comment on assure la performance de nos applications par le monitoring

8 février 2021 5 min. |

_21_11_GSoft_blogMonitoring_prode_1200px X 627px

Partager
cet article

Author

La pratique du DevOps est souvent représentée à l’aide d’un cycle de vie de quelques étapes.  Parmi ces étapes, le monitoring y figure pour une raison bien évidente ; c’est ce qui nous permet de mesurer et d’évaluer la performance, la stabilité et l’utilisation de notre application.  D’autant plus, le contexte actuel de développement d’applications en mode distribuées et composées de micro-services justifie davantage l’importance du monitoring.

Pour une compagnie de développement logiciel comme GSoft, l’étape initiale de création (le code) est souvent mise de l’avant car c’est notre force principale, notre dada comme on dit.  Par contre, comment est-ce qu’on s’assure que le code que nous produisons fonctionne bien en production, c’est-à-dire, entre les mains de nos clients?

L’erreur est humaine

Dans ses débuts, notre équipe de développement du produit ShareGate: Apricot a vécu une situation que plusieurs d’entre nous connaissent : le fameux problème qui survient seulement en production. L’application connaissait des problèmes de performance et causait des ralentissements dans son fonctionnement. Malgré les fortes têtes sur le dossier c’était difficile, voire impossible de reproduire les particularités de l’environnement de production et bien comprendre ce qui se passait.

Prise de conscience

Cette situation un peu embarrassante a suscité une prise de conscience : il nous fallait plus de visibilité.  Afin de mieux disséquer le problème et isoler le coupable, nous avons ajouté de l’instrumentation à des endroits stratégique dans notre code.  Cette instrumentation nous a permis d’avoir du monitoring au niveau de la performance et déterminer les potentiels goulots d’étranglement.

Un autre aspect de l’application qui se devait d’être mieux surveillé était la santé de l’infrastructure.  Nous n’avions aucun système pour nous avertir si les ressources utilisées étaient surchargées et potentiellement partie du problème de performance.

Les résultats initiaux de notre implémentation de monitoring ont été très prometteurs. Ils nous ont permis de mettre le doigt sur le bobo rapidement et aussi de prendre des décisions beaucoup plus éclairées sur le type d’infrastructure requis pour le type d’application que nous développons.  C’était aussi le début de la prise de conscience ;   nous devons absolument avoir une meilleure vision long terme sur nos besoins de monitoring.

_21_11_GSoft_blogMonitoring_prode_760px X --

Nos pratiques d’aujourd’hui

Une leçon importante que nous avons apprise avec le temps est que récolter de l’information, c’est facile.  Bien la comprendre et l’analyser, c’est une autre paire de manches! Afin de s’aider, nous avons mis de l’effort à enrichir le contexte de notre monitoring, c’est-à-dire, corréler notre information avec autre chose telle que les logs de notre application et d’autres types de métriques.

Un autre aspect intéressant du monitoring que nous avons pu apercevoir est que sa valeur a eu une portée bien plus large que les équipes de développements et opérationnelles.  Par exemple, les gestionnaires arrivent plus facilement à déterminer la performance du produit à l’aide de données de disponibilités (SLA) et temps de réponse en cas d’incident.

Partager cet article

Ce que nous retenons

« Data is cheap. Data is king ».

Le monitoring est plus accessible qu’on le croit.  De multiples outils existent pour récolter de l’information puis valider et assurer la valeur qu’on livre à nos clients.


Commencer simple et mesurer.

Dans les débuts d’un produit, il faut éviter la sur-ingénierie, mais plutôt opter pour la simplicité et implémenter le monitoring dès que possible.  Ceci permet de mieux justifier nos investissements à l’aide de données tangibles. Bonus ; on facilite la maintenance et la charge opérationnelle de notre produit dès ses débuts.

Un dernier mot

Dans un monde de micro-services et d’applications distribuées, la simplicité du développement est souvent au détriment de l’opérationnel.  

Dans ce monde, le monitoring est d’autant un outil à considérer!

Partager ceci

Curieux de rejoindre nos équipes de développement ?