Identification des opportunités de refactoring
Rôle(s) Clé
Objectifs
Bénéfices
La priorisation des investigations peut commencer dès lors qu'on a un reporting en place sur la consommation des applications. Lorsqu'il ne s'agit pas de simples optimisations de l'infrastructure ou du code pour régler une sur-consommation, on peut se lancer dans une étude plus poussée d'opportunités de refactoring. En se basant par exemple sur :
- Les nouveaux services disponibles chez le ou les fournisseurs Cloud
- Les nouvelles technologies disponibles (et pertinentes) sur le marché
- La proposition de plusieurs scenarii de refactoring, partiel ou total. (On peut par exemple décider de se concentrer exclusivement sur la gestion du "message queuing", ou sur le partage des données)
Ensuite, il faut être capable de présenter les opportunités de refactoring sous forme de business case (même high-level), pour cela on présentera :
- Les coûts estimés de la mise en œuvre
- Les gains mensuels attendus par rapport aux coûts actuels
- Le retour sur investissement et le point d’équilibre
- Et les autres bénéfices attendus que ce soit en terme de performance technique, de flexibilité, de fiabilité, de gestion de la dette technique, etc.
Cette vision business case est importante car on peut être tenté de ré-écrire une application pour se rendre compte finalement que le "payback" est de plus d’un an… Mais peut-être aussi que les autres bénéfices attendus justifient totalement cet investissement !
Optimiser le code des applications
Il ne faut pas oublier qu'en optimisant le code applicatif, on réduit l'utilisation de l'infrastructure sous-jacente.
Optimisation du code
La factorisation du code, le caching et même le choix du langage de programmation peuvent impacter drastiquement le temps d’exécution.
Choix des librairies
Qu’il s’agisse de convertir des images ou de parser des expressions régulières ou des fichiers JSON, le choix d’une librairie plutôt qu’une autre peut diviser par 20 le temps d’exécution.
Parallélisation
Vectoriser le code et paralléliser au maximum les opérations permet des économies d’échelle sur l’exécution.
Compression
Choisir le bon format de compression des données peut avoir un impact significatif sur les volumes stockés. Il faut savoir faire le compromis entre temps d’exécution et coût de stockage en fonction des fonctions des besoins.