Finops.World
2V1

Identification des opportunités de refactoring

Rôle(s) Clé

Objectifs

Identifier les opportunités d'optimisation et présenter les business cases des scenarii de refactoring

Bénéfices

Améliorer l'efficacité IT par le refactoring partiel ou total de services

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.

4 thèmes d'optimisation applicative

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.

Voir la fiche précédente

Arrêt/Relance/ Destruction des ressources

ID 2O4

Voir la fiche suivante

Etudes des nouvelles technologies et solutions

ID 2V2

cross