Concevoir et développer une application se fait généralement en plusieurs phases: recueil des besoins du client, architecture logicielle/solution/infra/système, développement, test, homologation, mise en production, exploitation.
Pour chacune de ces différentes phases, plusieurs aspects sont évoqués: les fonctionnalités souhaitées, les langages, frameworks et technologies à utiliser, l’architecture des différents composants du système, l’infrastructure d’hébergement, le plan de test, les critères de validation de la recette, etc.
Mais un aspect est généralement absent de toutes ces discussions: les logs. Comment organiser les logs? Quelles informations y mettre? À quel niveau logguer quelle information?..
Dans la plupart des cas, l’importance des logs commence à se faire sentir après la mise en production, lors de la phase d’exploitation. C’est généralement après les premiers soucis en production qu’on commence à véritablement s’intéresser aux logs.
Car les logs sont cruciaux pour l’exploitation d’un système. Sans logs, impossible de savoir ce s’est passé dans quelle partie du système, pour quelle raison, à quel moment et à l’initiative de qui.
N’attendez pas la phase d’exploitation pour vous intéresser au logs
Lorsqu’arrive la phase d’exploitation, tout ou presque est déjà fait ou considéré comme tel. L’application est livrée et le budget est déjà dans le rouge. Et comme en plus tout changement coûte cher à ce stade, on essaie de faire le moins de changements possible. Ainsi, si les logs s’avèrent inadéquats, on fait avec. L’exploitation en pâtit. Cette situation a des implications conséquentes.
En effet, la phase d’exploitation est la plus longue dans le cycle de vie d’un système. C’est aussi la phase la plus importante d’un point de vue business, car c’est dans cette phase que les clients utilisent l’application. Disposer de logs avec des informations pertinentes pour investiguer un problème sur une application réduit le temps d’investigation, augmente les chances de faire le bon diagnostique, et donc d’apporter rapidement une solution au problème.
L’exploitation est la phase la plus coûteuse
En général, lorsqu’on cherche à estimer le coût d’un projet, on prend en compte toutes les étapes jusqu’à la mise en production du système. La phase d’exploitation n’est pas prise en compte dans le budget prévisionnel alloué au projet. Cependant, selon diverses études sur le coût global d’un logiciel, la phase d’exploitation est la plus coûteuse. Elle représenterait en moyenne 70% du coût total engendré par le logiciel. Un bon système de logs contribue à baisser considérablement le coût d’exploitation du système. Que ce soit pour le maintien en condition opérationnelle, l’investigation et la résolution des bugs, la supervision technique ou sécurité, la qualité des logs joue un rôle très important.
Conclusion
Les logs sont un aspect important mais très souvent délaissés car son importance se fait sentir tardivement dans le cycle de vie du logiciel. Cependant, un bon système de logs est un atout précieux. Les bienfaits d’un bon système de logs sont nombreux: comprendre ce qui se passe dans le système, détecter et corriger rapidement les problèmes, superviser le système. Tout cela augmente la satisfaction des utilisateurs, réduit les coûts d’exploitation, et augmente la sécurité globale du système.
Dans un prochain article, nous parlerons des caractéristiques d’une bonne implémentation des logs.
