Blog Interdata

DevOps et nouvelles pratiques : testons tôt et intelligemment !

Rédigé par Interdata | 27 oct. 2020 23:00:00

L’évolution de l’informatique a changé la façon de concevoir les applications : une des grandes avancées de ces dernières années est la démarche DevOps qui implique et responsabilise tous les collaborateurs dès la conception de l’application (design, test, développement, marketing, exploitation, sécurité, etc …) et cela tout au long du cycle de vie.

Dans une démarche agile les livraisons se font par itérations de manière à corriger en permanence la trajectoire du produit et coller au mieux aux exigences des utilisateurs. Les briques logicielles sont découpées en plus petites entités (containers, micro-services, lambda-fonctions, …) afin de gagner en agilité et découpler les dépendances entre les briques. De plus petites entités logicielles facilitent également l’automatisation du processus de fabrication, de test et de mise en production.

Dans l’industrie automobile, les coûts faramineux d’une chaîne de production défectueuse ont donné naissance à des méthodes de production comme le « lean manufactoring », l’approvisionnement juste-à-temps, le Kanban etc.

Dès les années 50, Toyota était précurseur dans la réorganisation du travail et des processus de fabrication et a très tôt vu l’intérêt d’interrompre la production dès la détection d’un souci plutôt que de laisser l’erreur se propager.

L’«andon» est un système d’alarme qui permet aux opérateurs de signaler un problème lors du montage d’une pièce en tirant sur un fil au-dessus de leur tête : un team leader pourra alors accourir pour
remédier au problème avant que la partie concernée de la chaîne ne s’arrête.

S’il n’a pas été possible de remédier au souci, les équipes sont tenues de chercher l’origine du problème
et remonter à la cause racine. Une erreur coûte tellement plus cher lorsqu’elle est détectée tardivement,
c’est bien connu.

Mieux vaut donc prévenir que guérir : ce constat universel ne s’applique pas uniquement à l’industrie automobile. Il incite également les informaticiens à repérer le plus tôt possible les éventuels problèmes en testant le plus tôt et souvent possible.

Le terme anglais de Shift Left est souvent employé pour caractériser le fait qu’on déplace à gauche (sur l’échelle du temps, en amont dans la chaîne de fabrication) les actions visant à garantir voire améliorer la qualité.

Que ce soit dans l’informatique ou dans l’industrie, il faut garder le leadership et une bonne réputation dans un monde fortement concurrentiel, d’autant plus que la notion de loyauté à une marque se perd dans les usages récents.

Les entreprises qui mettent en place une culture DevOps misent autant sur les personnes que sur les outils et méthodes ; responsabiliser tous les acteurs du début à la fin de la chaîne de production est primordial, et installer des outils de métrologie permet de mesurer la performance de
manière objective et incite les collaborateurs à adopter cette culture de l’amélioration continue.

Plus concrètement, vous placerez vos tests idéalement dans la chaîne d’intégration continue (CI, continuous integration) afin qu’ils soient effectués à chaque modification significative de code (build). L’ordonnanceur de la chaîne d’intégration déclenchera alors automatiquement des tests de différentes natures (couverture et qualité de code, non-régression fonctionnelle, tests de sécurité, test de charge etc).

Avec la forte concurrence des offres, une application lente ou instable représente un risque économique, c’est bien connu : les clients mécontents se tournent rapidement vers la concurrence.

Garder un œil sur les performances et la stabilité de ses applications devient donc un enjeu majeur, et c’est grâce à des outils d’APM (application performance monitoring) que l’on sait mesurer les indicateurs.

Associer des outils de métrologie aux outils de tests automatiques (notamment tests de charge) va donc amplifier les bienfaits de la démarche «Shift Left» évoquée.

Savoir mesurer tôt permet de s’assurer que seul un code fiable et performant fera son chemin jusqu’en production. Savoir mesurer tôt offre la possibilité d’avertir les développeurs rapidement d’éventuelles dérives, lorsqu’ils ont encore à l’esprit le code fraichement développé. Savoir mesurer tôt permet aux équipes d’infrastructure et développement un retour rapide sur l’impact d’un changement de configuration ou de code sur la performance, sur la scalabilité, sur la consommation de ressources.

Tous les outils modernes d’APM proposent la mise en place de tableaux de supervision pour suivre les indicateurs clés, et souvent il est également possible de récupérer ces indicateurs par des APIs. Il est alors possible de comparer des mesures avec celles prises lors de tests précédents, celles d’un test référence, celles constatées en production, et de signaler aux équipes des écarts jugés trop importants.

Grace aux outils APM de dernière génération (Dynatrace SaaS et Managed), Tenedis peut vous proposer d’aller encore plus loin ensemble pour automatiser la supervision des tests effectués en chaîne d’intégration : en effet, le moteur d’intelligence artificielle de Dynatrace permet d’apprendre le comportement de l’application lors des tests de charge consécutifs, et de signaler automatiquement des écarts constatés dès lors qu’un tir produirait des mesures déviantes.

Une petite astuce :

Débrailler la collecte APM (maintenance windows) en dehors des tirs de charges vous permettra de nourrir le moteur IA avec une charge consistante et l’aidera à « comprendre » le comportement de l’application pour mieux détecter les dérives. Autre astuce : vous pouvez associer par tags des noms d’équipes à des services dans Dynatrace et alerter uniquement ces équipes lorsque par exemple une api, une base de données, un micro-service particulier présente des soucis.

Le moteur d’intelligence artificielle fourni également ses états par API : dans un contexte de déploiement continu (CD, continuous deployment) cela peut permettre d’envisager une marche-arrière automatique si un souci est détecté après un déploiement récent, c’est un premier pas vers l’auto-remédiation.

Mettre en place du monitoring sur les deux environnements (hors production et production) a beaucoup d’avantages : vous partagerez une démarche de métrologie consistante entre l’environnement hors production et la production.

Finalement les critères de succès d’un test hors-production sont souvent les mêmes pour l’application en production, les transactions « métier » mesurées lors d’un test de charge sont les mêmes transactions « métier » dont les utilisateurs jugeront la performance et la disponibilité en production...

Cultiver cette démarche de tests fréquents accompagnés d’outils APM intelligents vous fera gagner en réactivité et en qualité, réduira les coûts, et permettra d’impliquer les équipes dans une démarche globale de performance...

Spécialiste de l’Observabilité de votre Système d’information, Tenedis peut vous accompagner dans la mise en place de cette démarche et ses outils en rencontrant un de nos experts.