Si vous êtes tombé sur cette page en pensant que vous allez devenir riche grâce à un plan pour devenir riche rapidement, je suis désolé de vous décevoir. Cet article parlera plutôt de la façon de réduire vos factures de cloud d'un million de dollars. En faisant cela, vous aurez essentiellement généré un million de dollars de revenus supplémentaires – que vous pourrez dépenser en achetant mon cours en ligne sur la façon de devenir riche avec AWS ( lien vers le cours ici ).
Le coût du cloud est souvent négligé et non pris en compte au début des projets des entreprises. L'enquête HashiCorp 2021 a révélé que près de 40 % des entreprises ont dépensé trop d'argent en coûts cloud en 2021 [ 1 ]. En 2023, presque toutes les entreprises (94 %) ont admis qu'elles gaspillaient de l'argent sur le cloud [ 1 ] et au moins 30 % des coûts du cloud ont été gaspillés [ 2 ]. Les dépenses cloud s'élevaient à près de 500 milliards de dollars en 2022 — nous parlons donc de 150 milliards de dollars gaspillés par an !!
Il s’agit non seulement d’une préoccupation en termes de revenus manqués, mais également de mauvaises pratiques en matière de durabilité. 150 milliards de dollars d’énergie gaspillée !
Ces résultats concernent aussi bien les grandes entreprises que les plus petites, de la maturité cloud élevée à la maturité cloud faible. Il fait référence à AWS, mais les mêmes principes peuvent être appliqués à tout autre fournisseur de cloud. Ainsi, si une partie de votre travail se déroule dans le cloud, cet article est fait pour vous.
Je parle du point de vue d'un ingénieur de données, mais les mêmes apprentissages peuvent être appliqués à d'autres pratiques d'ingénierie logicielle.
Allons-y.
Ce type de facture cloud est généralement réservé aux très grandes entreprises qui opèrent à l'échelle mondiale avec des millions de clients.
Pour vous donner une idée, une facture cloud d'un million de dollars peut résulter d'un travail Spark ETL traitant environ 1,5 To par heure, 24 heures sur 24, 7 jours sur 7, 365 jours par an. Un autre exemple pourrait être une application qui reçoit des milliards de requêtes par jour en provenance de plusieurs endroits dans le monde.
Dans une grande entreprise, il existe des centaines d'applications de cette taille, ce qui donne lieu à des contrats d'un milliard de dollars avec des fournisseurs de cloud. Par exemple, Airbnb s'était engagé à dépenser 1,2 milliard de dollars en ressources cloud sur cinq ans fin 2019 [3 ].
Chez Expedia, nous avons réduit les coûts d'un ETL de traitement de données qui coûtait 1,1 million de dollars par an à seulement 100 000 dollars par an grâce à la mise en œuvre de pratiques d'optimisation. Cela représente une réduction des coûts de 91 % !!
Toutes les entreprises ne disposent pas d'applications d'une telle taille, mais imaginez réduire vos coûts cloud de 90 % juste pour une seule application ou pour l'ensemble de votre entreprise.
Allez chercher une liste de vos applications les plus coûteuses et remettez en question vos hypothèses de conception .
Toutes ces questions renvoient à la question la plus importante : comment va être utilisée l’application ? Quelle est la valeur commerciale de son existence ? Comment l’application nous aide-t-elle à atteindre un objectif donné ?
Bien entendu, toutes ces réponses sont bien souvent floues au début d’un projet ; mais c'est pourquoi la conception doit toujours être un processus itératif, permettant aux changements de se produire de la manière la plus transparente possible. Les ingénieurs doivent s'adapter à l'évolution et au changement, en alignant le développement des applications sur l'impact.
La deuxième étape consiste à doter l’application des bonnes ressources et de l’adapter à la bonne infrastructure.
En tant qu'ingénieur, soyez conscient de la manière dont les coûts du cloud sont calculés. Par exemple, AWS propose des instances ponctuelles dans lesquelles vous pouvez enchérir sur le prix du cluster. Ceci est particulièrement utile si vous disposez d'applications flexibles et tolérantes aux pannes. Utilisez-les si vous le pouvez — AWS revendique jusqu'à 90 % de réduction des coûts [ 4 ].
Voici d’autres considérations que vous voudrez peut-être aborder :
L'utilisation des instances AWS Graviton présente peu ou pas d'inconvénients. AWS a investi massivement dans la création des processeurs les plus rentables. Vous pouvez obtenir jusqu'à 40 % de réduction des dépenses cloud en passant simplement d'un processeur Intel à un processeur ARM [ 10 ].
Le seul inconvénient est que votre application doit être compatible avec les processeurs ARM sur lesquels Graviton s'exécute. Si vous utilisez un service géré tel que RDS ou OpenSearch, le changement ne présente aucune complication : AWS s'occupe du système d'exploitation sous-jacent et de la compatibilité des applications. Si vous créez votre propre application, vous devrez peut-être recompiler le package en fonction du langage que vous utilisez : Java et les autres langages ne nécessitent aucune modification, tandis que Python nécessite une certaine attention.
Enfin, n'oubliez pas de continuer à surveiller vos coûts pour détecter les pics et les surprises inattendus. Le coût au jour 0 de votre application sera différent du coût au jour 170. Assurez-vous de suivre les changements et de comprendre pourquoi le changement se produit : s'agit-il d'un cumul des coûts de stockage s3 ou s'agit-il simplement d'un événement ponctuel ? pointe?
Mettez en place les alertes et guides opérationnels nécessaires !
Il est important de mettre en œuvre des balises de répartition des coûts pour suivre les dépenses par département, projet ou environnement. Évitez le risque de créer un marécage de données dont le coût est introuvable ou nécessite un long voyage entre différents systèmes de journalisation. Il devrait être simple et rapide de revenir au coût d'une application donnée.
Où que vous travailliez, il est difficile d’équilibrer la fourniture de nouvelles fonctionnalités avec l’optimisation des fonctionnalités actuelles. Qui n’a pas subi de pression pour proposer de nouvelles fonctionnalités originales à la vitesse de la lumière.
Cependant, il est essentiel que les ingénieurs et les managers prennent des décisions délibérées et proactives concernant leurs projets en cours, en gérant efficacement les risques et les opportunités.