L'ingénierie de la performance à l'horizon 2020 : ce qui va changer, et comment s'y adapter

Par :
Gilles Portier

lun, 05/03/2018 - 15:48

Comme le développement et l'exploitation des applications avant elle, l'ingénierie de la performance est elle aussi en train de se transformer.

La communauté des ingénieurs de la performance dite « traditionnelle » (c'est-à-dire les experts de LoadRunner, SilkPerformer, etc.) est actuellement traversée par une peur presque palpable quant aux changements inexorables qui se profilent : il devient clair que le bon vieux « centre d'excellence de la performance » est en train de disparaître. Et certains de ces ingénieurs craignent d'être laissés sur le carreau, faute de pouvoir suivre le rythme du DevOps. Nombreux sont ceux qui se demandent comment faire évoluer leur carrière, sur quelles technologies se mettre à jour, et quelles compétences développer.

Voici quelques conseils pour embrasser les évolutions récentes de l'ingénierie de la performance :

#1 - Apprenez un nouveau langage de script

Que ce soit en Python, Ruby, Go ou n'importe quel autre langage de script, il y a fort à parier que vous exécutez, encore aujourd'hui, certaines tâches manuellement. Choisissez un langage que vous ne connaissez pas vraiment, et trouvez un moyen d'automatiser les tâches fastidieuses, chronophages et sans valeur ajoutée.

#2 - Ne sous-estimez pas la puissance de l'APM

Il y a aujourd'hui un consensus autour de l'Application Performance Management, selon lequel l'ingénierie de la performance ne peut plus aujourd'hui se passer d'outils d'APM.

En effet, tout désormais est question de services, d'APIs, d'applications et d'utilisateurs finaux. Autant de composants sur lesquels les solutions d'APM modernes permettent d'avoir une visibilité totale.

Mais ne croyez pas que ces solutions soient complexes à installer et configurer, et nécessitent de savoir comment instrumenter vos applications. Cela a pu être vrai dans le passé, ce n'est plus le cas aujourd'hui.

#3 - Shift-Left : Intégrez la performance dans les processus d'intégration et de livraison continues

Vous avez sans doute déjà entendu l'expression « Shift-Left », sans vraiment savoir à quoi cela faisait référence. En voici une explication intéressante : il s'agit de fournir à vos développeurs des feedbacks de performance suffisamment rapides, fréquents et concrets pour qu'ils puissent les intégrer immédiatement à la ligne de code qu'ils sont en train d'écrire. Ce n'est qu'à cette condition que l'on peut réellement parler d'ingénierie de la performance - et non simplement de test à la fin d'un cycle de développement.

#4 - Shift-Right : Tirez parti du monitoring en production

« Shift-Right » : même combat ! Il s'agit ici de définir, de mettre en œuvre et tirer parti d'un monitoring en production. C'est aux ingénieurs de la performance de faire valoir leur expertise pour définir, tester et valider ce qui doit être monitoré, les tableaux de bord à utiliser et les alertes à mettre en place en production.

De plus, les données issues du monitoring en production permettent de définir des scénarios de tests beaucoup plus réalistes en préproduction. Par exemple : les transactions les plus exécutées, le chemin de navigation le plus emprunté, le type de navigateurs, de devices et de bandes passantes des utilisateurs, etc.

Le monitoring de la performance en environnement de production revêt ainsi deux aspects :

-       Au lieu de créer un environnement de test distinct, c'est sur le matériel de production que les tests seront réalisés - par exemple, en dehors de heures de pointe, ou sur des environnements temporaires dupliquant à l'identique l'infrastructure de production.

-       De plus en plus d'architectures applicatives permettent de tester la performance avec du trafic réel, en exposant une nouvelle fonctionnalité à une partie des utilisateurs réels. Lorsque cela est possible, les ingénieurs de la performance peuvent optimiser le déploiement et la configuration, ou analyser les problèmes de performance une fois que le nouveau code est directement déployé en production. Des tests grandeur nature, avec de vrais utilisateurs !

Dans tous les cas, il est essentiel d'avoir un monitoring en temps réel, full stack et prenant en compte l'utilisateur final. En cas de problème de performance, un processus d'optimisation doit être mis en production. Et de nombreuses étapes de ce processus peuvent aujourd'hui être automatisées. C'est le cas par exemple de l'auto-mitigation, l'auto-optimisation ou encore l'auto-réparation du système.

#5 - Familiarisez-vous avec les dernières technologies Cloud et de conteneurs

Si vous n'avez pas encore lancé de serveur dans le cloud ni déployé d'environnement de conteneurs, ajoutez-le dès maintenant sur votre to-do list ! Commencez par exemple par un tutoriel AWS pour apprendre comment souscrire gratuitement à un compte AWS, lancer vos premières instances EC2 et vous connecter à distance à des machines Linux.

#6 - Utilisez l'intelligence artificielle à votre avantageL'intelligence artificielle est l'un, sinon LE mot tendance de l'année ! Nombreux sont les éditeurs à se vanter de tirer parti de l'IA, voire de proposer la seule véritable solution d'IA du marché.

Peu importe qu'on l'appelle Intelligence artificielle, Machine Learning, ou simplement « capacité d'analyses rapides et automatiques de beaucoup de données, accessibles via REST ». Ce qui compte, c'est que l'ingénierie de la performance puisse tirer parti des dernières avancées en la matière. L'analyse des données de performances a toujours été extrêmement chronophage pour les ingénieurs. Or le volume de données ne cesse d'augmenter, aujourd'hui et plus encore dans les années à venir. La seule façon de passer ces données au crible, de trouver les modèles et les anomalies, c'est de faire appel à un moteur d'intelligence artificielle.

Demandez à votre fournisseur comment il se positionne en matière d'IA. Assurez-vous qu'il fournit un moyen non pas seulement d'analyser plus de données, mais aussi d'en comprendre les dépendances et les interrelations.

#7 - Ne considérez plus le NoOps comme un buzzword

Le NoOps est sans aucun doute la prochaine grosse révolution, après la livraison et l'exploitation continues.

NoOps, c'est tout ce qui concerne l'automatisation intelligente des opérations d'exploitation traditionnelles, notamment : le provisioning de ressources, les changements de configuration, les redémarrages, la gestion des pannes, etc.

Le changement semble inexorable, et il est nécessaire que les ingénieurs de la performance le mesurent, et surtout qu'ils prennent les bonnes initiatives, et négocient ainsi le meilleur virage pour leur carrière.

A propos de l'auteur

Gilles Portier
Senior consultant APM Dynatrace