Cloud

Optimiser les coûts d’une application déployée dans le Cloud

Share this post:

La réalité d’utilisation d’une application développée dans le Cloud amène à faire des optimisations, voire à prendre de nouvelles directions pour des raisons d’alignement métier ou d’optimisation financière.

Retour sur les origines et les objectifs du FinOps

Pour certaines organisations utilisatrices de services Cloud, la rapidité et la facilité de provisionner des services ont parfois donné lieu à des dérives et les coûts engendrés n’ont été mis en évidence qu’au moment de la réception de la facture du fournisseur.

  • Ressources provisionnées en quelques secondes à des fins de tests ponctuels, laissées actives, oubliées.
  • Surdimensionnements.
  • Exécution sans surveillance.
  • Conception non optimale.

La nécessité de mettre sous contrôle l’usage et la consommation des services Cloud s’est alors imposée. Le terme FinOps apparut alors comme étant le modèle opérationnel pour une utilisation efficace du Cloud. Il s’agit d’une combinaison de systèmes, de meilleures pratiques et de culture pour

  • Comprendre et communiquer les coûts.
  • Développer une culture de gestion/optimisation des coûts IT.
  • Prendre des décisions en temps réel.
  • Assurer, de façon proactive, l’utilisation des services de la manière la plus efficace.

Aujourd’hui, il ne s’agit plus de coût mais de Valeur obtenue par chaque unité de coût.

Un changement culturel

La pratique FinOps implique différentes organisations au sein de l’entreprise (Finance, Métier, Informatique) afin de maitriser les coûts du Cloud et d’en tirer les avantages. Chacun a son rôle à jouer, de la direction à l’ingénieur débutant. Il ne s’agit pas d’une évaluation ponctuelle ou d’un projet annuel mais bien d’une réflexion itérative sur la valeur apportée par rapport à la dépense engagée.

Ce changement culturel passe par plus de transparence et la communication des coûts aux équipes.

Comme abordés précédemment dans l’article « Maîtrise des coûts du Cloud dès la phase de conception », une phase initiale permet de définir le socle et d’adresser

  • Indicateurs de performance et les moyens de les suivre.
  • Contractualisation de modes de tarification alignés sur l’utilisation prévue.
  • Définition et communication de guides des meilleures pratiques.

Une fois ces activités réalisées et l’application mise à disposition des utilisateurs, vient le moment de vérité. Quel est le coût réel du Cloud et comment l’améliorer ?

Suivi des coûts et des usages

Le suivi de l’usage des ressources et l’optimisation de leurs coûts est une activité périodique, à inscrire dans le temps : Qui crée les ressources ? Quels composants sont coûteux ? Pourquoi ? Quelle est la valeur liée à cette dépense ?

Repenser l’Architecture en fonction de l’usage

Historiquement, le dimensionnement des infrastructures incluait un pourcentage conséquent de capacité de traitement pour les périodes de pic et « au cas où … ».

Désormais, le Cloud permet de sélectionner des configurations alignées avec le besoin réel de performance et de résilience grâce à la possibilité d’étendre automatiquement la capacité en fonction de l’usage, à la hausse ou à la baisse.

L’architecture d’une application doit donc être revue régulièrement pour aligner sa conception en fonction du niveau de sollicitation et de l’impact des nouvelles fonctionnalités développées. Son adaptation est d’autant plus aisée que l’application est conçue à base de microservices, chacun de ceux-ci pouvant évoluer à son rythme, indépendamment les uns des autres.

Certains ajustements « classiques » portant sur la capacité de calcul, la définition de politiques de rétention associées à des classes de stockage, … peuvent être rapidement réalisés.  D’autres, sur des applications microservice, conçues sur des services natifs Cloud, ne peut se faire sans une connaissance fonctionnelle et technique de l’application.
Des raccourcis trop hâtifs pourraient mettre en péril la stabilité ou la performance de la solution. Il est nécessaire dans cette phase d’analyse d’organiser des échanges entre architecte applicatif, architecte technique et développeurs, pour définir la meilleure stratégie d’optimisation.
Un grand volume d’appels sur un service ne posera aucun problème de scalabilité sur une architecture élastique mais l’analyse du cas d’usage amènera différentes pistes d’optimisations des coûts engendrés. A titre d’exemple :

  • Mise en cache de certaines données pour améliorer les performances et diminuer le nombre d’appels faits sur d’autres microservices et leurs coûts associés.
  • Définition de contrat de services (nombre d’appels en parallèle, nombre d’appels sur une durée de temps, …) pour lisser la charge et optimiser les configurations des systèmes sous-jacents.
  • Changement du modèle de souscription d’un service.
  • Révision du modèle d’intégration API/fichier.

Certaines améliorations seront même contre-intuitives. Pour diminuer le coût de certains services, il s’avèrera plus avantageux d’augmenter le nombre de ressources provisionnées du fait du mode de facturation !

Les services Cloud proposés étant en constante évolution, le suivi des dernières annonces faites par votre fournisseur Cloud est une bonne pratique. Il est courant de voir les nouvelles versions d’un service offrir un ratio coût / performance plus avantageux ou des nouvelles fonctions permettant de simplifier les implémentations.

Sécurisation de l’usage

Le modèle «  pay as you go » nécessite de mettre en œuvre des quotas de consommation pour  se protéger des négligences d’utilisation ou de surconsommations accidentelles.
Ceci sera couplé à des alertes en fonction d’atteinte de certains seuils de consommation.

Agilité et automatisation

Au-delà de l’adaptation automatique des ressources à la charge de travail, on peut facilement optimiser les coûts en implémentant des règles d’arrêt/relance automatiques de certains environnements, tel que ceux de qualification ou formation.

Poussée à son extrême, l’automatisation supprime la notion d’environnement et le cycle de vie applicatif devient un processus continu (Continuous Delivery), constitué de phases dans lesquelles le code développé subit un ensemble de traitements (compilation, analyse, packaging, tests) pour arriver jusqu’à la production.

GreenOps

Dernièrement, l’intégration des préoccupations écologiques vient s’additionner aux impératifs d’optimisation financière des ressources Cloud.

Pour atteindre les ambitions de l’Accord de Paris de 2015, les entreprises ont pris des engagements de réduction des émissions carbone. En parallèle, l’usage croissant des plateformes et services Cloud, a poussé les entreprises à développer des méthodes de calcul de l’empreinte écologique et des mécanismes de décarbonation des ressources Cloud.

Le GreenOps se propose de fournir un ensemble de bonnes pratiques méthodologiques, à intégrer aux pratiques FinOps, avec pour objectifs :

  • D’évaluer l’effort à fournir pour mesurer cet impact
  • De mettre en œuvre une infrastructure Cloud performante et durable.

Des actions concrètes d’éco-conception peuvent être réalisées, tant au niveau de l’infrastructure qu’au niveau applicatif avec, à titre d’exemple, des pratiques de Green Coding cherchant à minimiser les traitements nécessaires au sein d’une application pour obtenir un résultat donné.

Il est donc possible de réaliser un effort continu axé sur la réduction d’énergie et l’efficacité de tous les types de charges de travail. Les grands acteurs du Cloud se sont d’ailleurs équipés pour répondre à cette demande.

Les entreprises vont alors chercher à calculer de manière prédictive la disponibilité des ressources Cloud existantes ainsi que la consommation réelle de ces mêmes ressources, impliquant un redimensionnement prédictif et la désactivation des ressources lorsqu’elles ne sont pas utilisées.

En conclusion de cette série d’articles, le Cloud permet de faire des économies dès lors que son adoption est accompagnée d’un changement des organisations et des pratiques, certains parleront d’ « état d’esprit ».

 

Executive Architect - AWS Technical Leader, IBM Consulting

More Cloud stories
14 juin 2024

Gestion de l’obsolescence logicielle : véritable enjeu pour la DSI et le business

Dans le paysage numérique actuel, les applications logicielles sont le pilier des entreprises modernes. Cependant, avec l’évolution rapide de la technologie, l’obsolescence logicielle est devenue un défi majeur pour les organisations. Les logiciels obsolètes peuvent entraîner des vulnérabilités de sécurité, des crashes système et une productivité réduite, affectant ainsi la performance commerciale et la compétitivité. […]

Continue reading

12 juin 2024

Simplifier les déclarations liées à la CSRD grâce aux nouvelles fonctionnalités d’IBM®Envizi™

IBM a le plaisir d’annoncer la prise en compte de la directive européenne (CSRD) dans le module « sustainability reporting manager » d’IBM® Envizi™. Cette considération aidera les entreprises à répondre aux exigences de reporting de la directive européenne (CSRD). La CSRD impose aux entreprises de fournir des informations et des indicateurs définis via les […]

Continue reading

12 juin 2024

Comment bien préparer la migration d’un parc applicatif dans le cloud avec IBM Consulting (2/2) ?

Dans notre article « Comment bien préparer la migration d’un parc applicatif dans le cloud avec IBM Consulting (1/2) ? », nous avons présenté les différentes étapes du pré-assessment technique qui consiste à analyser l’ensemble des applications du patrimoine applicatif. Dans cette seconde partie, nous allons détailler l’assessment technique à réaliser pour chacune des applications.   Phase […]

Continue reading