La part des technologies de l'information dans les émissions mondiales de gaz à effet de serre est d'environ 4% déjà - et non seulement à cause de la tendance émergente d'intégrer l'IA générative dans de plus en plus de produits, mais ce chiffre devrait augmenter de manière significative dans les années à venir.
La communauté Green IT travaille sans relâche sur des moyens de réduire l’empreinte carbone des logiciels, des binaires exécutés localement aux clusters Kubernetes de pleine taille. Ce savoir peut être appliqué à la décarbonation des entreprises de logiciels ou, plus généralement, aux organisations où l'informatique est le principal moteur de création de valeur.
Qu'est-ce que le numérique responsable ?
Le numérique responsable vise à réduire l'empreinte carbone et les déchets électroniques grâce à un logiciel à faible émission de carbone et à une gestion durable des ressources. Cette dernière peut être réalisée grâce à des mesures telles que :
- Utiliser des produits reconditionnés,
- Utiliser les produits plus longtemps avant leur remplacement,
- Préférer des produits plus faciles à réparer et à recycler,
- Préférer des produits à faible consommation d'énergie
Cet article, cependant, se concentrera sur l'efficacité carbone et le fonctionnement des logiciels. En d'autres termes, nous souhaitons réduire les émissions carbone des logiciels par unité de calcul autant que possible.
Quels sont les avantages du numérique responsable ?
Les logiciels conçus dans une optique de durabilité réduiront les émissions de carbone et entraîneront d'importantes économies. Cela est particulièrement vrai si votre logiciel est utilisé dans le cloud, où la consommation de ressources est suivie et facturée avec précision.
Se concentrer sur la durabilité peut également conduire à de meilleures performances logicielles et, par conséquent, à des revenus plus élevés. Un site web léger, par exemple, se classe mieux en SEO (qui reste pertinent aujourd'hui, même avec la montée de l'IA générative), et les sites web qui se chargent rapidement sont connus pour avoir de meilleurs taux de conversion.
Mesurer les émissions des logiciels
Avant de commencer à optimiser l'efficacité du logiciel, vous devez d'abord mesurer son empreinte carbone. Sinon, vous ne pourrez pas évaluer correctement l'impact de vos efforts. Par conséquent, nous allons expliquer quelles options sont disponibles pour mesurer les émissions de logiciels.
Le logiciel émet indirectement du carbone par l'électricité consommée par le CPU, l'utilisation de la mémoire, et le transfert de données vers/depuis des unités de stockage comme les disques durs ou via le réseau. Chaque opération effectuée par le logiciel augmente donc la consommation d'électricité.
Une autre source d'émissions est la production de l'appareil (ou des appareils) sur lequel notre logiciel fonctionne. Ce qu'on appelle le carbone incorporé d'un appareil inclut l'emballage, le transport et le traitement à la fin de sa vie, comme l'élimination ou le recyclage.

Crédit : Plan A
Systèmes locaux
Pour les dispositifs locaux, comme un serveur physique ou un ordinateur de bureau, on peut mesurer directement la consommation en installant un wattmètre entre le dispositif et la prise.
En utilisant l'intensité carbone, c'est-à-dire la quantité d'équivalents carbone émise pour produire un kilowattheure d'électricité (généralement mesurée en gCO2eq/kWh) du réseau électrique local lors de l'exécution du logiciel, nous pouvons déduire les émissions de carbone.
Cette configuration peut toutefois être délicate, car il y a généralement de nombreuses tâches en arrière-plan en cours d'exécution sur un système, ce qui peut entraîner des écarts dans la mesure. Pour éliminer les erreurs de mesure, plusieurs essais avec la même configuration système et les mêmes opérations logicielles sont nécessaires.
Une approche plus simple consiste à utiliser Green Metrics Tools de Green Coding. Cet outil open-source mesure la consommation d'énergie des logiciels en utilisant des outils tels que l'interface Running Average Power Limit (RAPL) de certains CPU.
Pour de meilleurs résultats, un cluster dédié est nécessaire pour que le logiciel puisse être exécuté et mesuré de manière isolée. Une version SaaS hébergée est également disponible si vous ne souhaitez pas gérer le cluster.
Si votre application est conteneurisée avec Docker, envisagez d'utiliser l'outil GreenFrame. La configuration est plus simple car elle contient directement les données d'utilisation requises de Docker. Bien qu'il soit open-source, la version payante est nécessaire si vous souhaitez des informations détaillées.
Applications basées sur le cloud
Nous ne pouvons évidemment pas utiliser de moniteurs de puissance pour les applications fonctionnant dans le cloud. Nous devons nous appuyer sur les données que le fournisseur de cloud collecte.
De nombreux grands fournisseurs, notamment AWS, Google Cloud et Microsoft Azure, fournissent déjà des rapports sur l'empreinte carbone. Cependant, ces données ne sont pas disponibles dans un format standardisé, ce qui rend la comparaison plus difficile. Certains fournisseurs utilisent également des émissions basées sur le marché (émissions calculées qui tiennent compte des contrats d'achat d'électricité ou d'autres méthodes de compensation), ce qui est pratique pour des raisons de reporting. Cependant, pour optimiser les systèmes informatiques en faveur de l'efficacité carbone, les émissions basées sur la localisation, c'est-à-dire les émissions « réelles » causées sur le site du centre de données, sont plus pertinentes.
Il peut également y avoir un retard allant jusqu'à 3 mois jusqu'à ce que le fournisseur rassemble toutes les données de ses centres de données dans le monde entier et rende les émissions disponibles. C'est beaucoup trop long pour optimiser rapidement les charges de travail.
Outil d'empreinte carbone Cloud
Il y a de l'aide cependant : puisque les fournisseurs de cloud suivent chaque petite transaction pour nous facturer, nous pouvons utiliser ces données de précision pour estimer les émissions en fonction du service utilisé et de la durée d'utilisation. L'outil Cloud Carbon Footprint (CCF) réalise le gros du travail pour nous.
Il utilise les données d'utilisation du cloud qu'il reçoit via des API pour générer des estimations d'émissions précises. Ainsi, l'outil peut fournir des données presque en temps réel sur les émissions de votre compte AWS, Google Cloud ou Microsoft Azure, ce qui en fait l'outil parfait pour entamer votre parcours d'optimisation. De plus, il prend également en compte le carbone incorporé, réparti sur la phase d'utilisation typique du matériel sur lequel opèrent les services cloud.
Autres ressources
Les outils mentionnés ci-dessus valent effectivement la peine d'être envisagés pour votre configuration. Vous pouvez trouver d'autres idées sur l'une des nombreuses listes de liens, comme le Répertoire de logiciels verts de GitHub ou Awesome Green Software de la Green Software Foundation.
Comment réduire les émissions de logiciels
Une fois que vous pouvez mesurer quotidiennement les émissions de votre configuration cloud, il est enfin temps de commencer l'optimisation réelle. Pour maximiser vos résultats, nous commencerons par des recommandations d'actions nécessitant un effort relativement faible mais ayant un potentiel de réduction significatif sur vos émissions logicielles.
Niveau 1 - Infrastructure

Crédit : Getty
Avant d'optimiser votre code, vous devez vous assurer que votre infrastructure ne gaspille pas de ressources. Cela nécessite d'examiner attentivement chaque partie de votre infrastructure.
Si vous exploitez votre infrastructure dans le cloud, vous pouvez utiliser le service de facturation des fournisseurs pour identifier les principaux postes de coût comme points de départ. Voici quelques points typiques à rechercher.
Supprimer les ressources inutiles
Trouver et supprimer les serveurs et charges de travail inutiles est un moyen simple et efficace de réduire votre empreinte carbone. Avec le temps, les systèmes ont tendance à devenir encombrés. Les services sont remplacés mais pas immédiatement supprimés et finissent par être oubliés, ou des tâches récurrentes ne sont plus nécessaires mais continuent de s'exécuter sans être remarquées.
Il arrive même que des serveurs complets (qu'ils soient physiques ou virtuels) deviennent inutiles. Cependant, un serveur inactif consomme une quantité significative d'énergie car des composants comme la carte mère doivent encore être alimentés en électricité. C'est pourquoi ces serveurs superflus sont également appelés « Zombies » : ils ne font rien de productif mais drainent des ressources précieuses.
Il est relativement facile de déterminer si une ressource est toujours utilisée grâce aux journaux système et aux outils de surveillance. Cependant, nous devons veiller à ne pas provoquer d'effets secondaires. Cela peut être réalisé grâce aux « Tests de Cri ».
Si vous êtes certain qu'une ressource n'est plus utilisée, communiquez votre action et désactivez ou déconnectez (mais ne supprimez pas !) la ressource en question. Si quelqu'un crie que son système est affecté, vous pouvez rapidement la réactiver. Rappelez-vous que certains travaux sont récurrents, hebdomadaires ou même mensuels, donc la période doit être bien considérée, ne supprimez donc pas trop tôt.
Ajustez la taille de votre infrastructure
Les services cloud facilitent la mise à disposition de ressources à une échelle littéralement illimitée. Cela conduit souvent à un sur-approvisionnement : des tailles d'instances plus grandes que nécessaires sont choisies pour s'assurer que le système dispose de suffisamment de ressources de calcul.
Le processus d'optimisation des tailles d'instances est également appelé 'ajustement des tailles'. L'objectif est de trouver une taille d'instance qui permet une utilisation élevée sans atteindre ses limites. Cela est important car un serveur qui est seulement légèrement utilisé consomme déjà une quantité significative d'énergie, et fonctionner à un taux d'utilisation élevé ne consommera pas beaucoup plus. Cet effet quelque peu contre-intuitif est appelé 'Proportionalité Énergétique'.
Les fournisseurs de cloud comme AWS vous assistent même dans cette tâche en proposant des services tels que le 'Cost Optimisation Hub', qui recommande les instances qui sont surdimensionnées ou sous-dimensionnées en fonction de votre utilisation réelle.
Cependant, le logiciel que vous proposez en tant que service n'est probablement pas utilisé de manière égale tout au long de la journée. Il y aura des pics d'utilisation, ce qui rend difficile la détermination de la taille appropriée. Si ces pics ne se produisent que de manière sporadique et sont relativement courts, les 'instances élastiques' peuvent être utiles. Elles vous offrent une certaine quantité de “puissance supplémentaire”, c'est-à-dire que vous pouvez les utiliser à plus de 100 % pendant une courte période. Si l'utilisation varie considérablement au fil du temps, vous devez allouer les ressources de manière dynamique, ce que nous aborderons dans la section suivante.
Allouer des ressources de manière dynamique
Un avantage significatif du cloud est que les ressources peuvent être ajoutées ou supprimées automatiquement en fonction des besoins actuels. Ce processus d'allocation dynamique des ressources est également connu sous le nom de scalabilité automatique.
Au lieu de fournir une instance principale avec suffisamment de marge pour tous les pics attendus, qui est souvent sous-utilisée, la charge de travail peut être répartie sur plusieurs instances mineures. Grâce à l'autoscaling, proposé par tous les fournisseurs de cloud, des ressources supplémentaires peuvent être allouées automatiquement si la charge augmente. De même, elles peuvent être désactivées une fois qu'elles ne sont plus nécessaires.
Attention, cependant, l'autoscaling nécessite un ajustement précis et doit être revu régulièrement. Vous devriez établir des limites supérieures sensées. Sinon, des erreurs de configuration peuvent devenir coûteuses et compromettre vos économies d'émissions de carbone.
Utilisez des instances à la demande
Les instances Spot sont des capacités supplémentaires à court terme que le fournisseur de cloud ne peut pas vendre, elles sont donc proposées à un prix inférieur à celui des instances à la demande standard. Un inconvénient général est que ces instances ont généralement une durée de vie courte, et le fournisseur de cloud peut les retirer après un court délai de notification. Cependant, elles conviennent toujours bien aux charges de travail contrôlées pouvant être interrompues, comme le traitement des files d'attente de travaux.
Le bénéfice écologique découle de la proportionnalité énergétique, expliquée ci-dessus : Si vous utilisez des instances ponctuelles, vous pouvez mieux utiliser les machines virtuelles existantes au lieu de créer des machines supplémentaires, qui fonctionneront probablement uniquement à un taux d'utilisation spécifique.
Ramassez vos déchets
.avif)
Crédit : Unsplash
Les données au repos, stockées localement ou dans le cloud, constituent une autre source d'émissions qu'il convient de prendre en considération.
Le stockage cloud est exceptionnellement peu coûteux, il est donc tentant d'y sauvegarder des données et de les oublier. Cependant, ces données doivent toujours être stockées sur des disques physiques, qui doivent être produits, expédiés et hébergés dans des centres de données.
La meilleure option, bien sûr, est de ne pas stocker les données en premier lieu. Si cela ne peut pas être évité, vous pouvez utiliser la gestion de la conservation des journaux ou des fichiers des systèmes cloud, où vous pouvez configurer la suppression automatique des données après un certain temps. Pour les systèmes auto-hébergés, il est également possible, bien que cela demande un peu plus d'efforts, de supprimer automatiquement des données, comme des sauvegardes ou des journaux.
Soyez prudent avec 'Lift and Shift'
Si vous prévoyez de migrer des applications vers un environnement cloud, évitez le "Lift and Shift", c'est-à-dire le transfert direct de tous les composants sans redesign.
Il est souvent préférable d'utiliser des services cloud natifs que votre fournisseur propose. Par exemple, si votre application utilise un courtier de messages comme RabbitMQ, envisagez de passer à un service géré plutôt que d'héberger votre ou vos instance(s) de serveur.
Éteignez les environnements de développement lorsqu'ils ne sont pas nécessaires.
À côté de l'environnement de Production, il y a généralement d'autres environnements comme le Développement ou les Tests d'Acceptation Utilisateur, qui n'ont pas besoin de fonctionner le week-end ou la nuit, lorsque personne ne travaille dessus. Ils peuvent être automatiquement arrêtés ou remis en marche lorsque nécessaire.
Niveau 2 - Architecture
Jusqu'à présent, nous avons examiné les possibilités de réduire l'empreinte carbone de votre logiciel au niveau de l'infrastructure. Cela nécessite généralement peu ou pas de modifications du code. Le niveau suivant de difficulté consiste à optimiser la manière dont les composants logiciels interagissent entre eux.

Crédit : Unsplash
Utiliser des micro-services
Un petit service est plus facile à mettre à l'échelle qu'une application monolithique.
Si votre application contient des parties ou des modules dont l'utilisation peut varier considérablement au cours de la journée, envisagez de déplacer ces parties vers un service externe. De cette manière, vous n'aurez pas besoin de mettre à l'échelle tout le monolithe. Cela ne signifie pas qu'il est nécessaire de diviser l'intégralité de votre application en services.
Utilisez des fonctions sans serveur
Les fonctions sans serveur ne nécessitent pas de fournir un serveur dédié. Si nécessaire, le fournisseur de cloud exécutera le code sur son infrastructure. Cela leur permet d'utiliser leurs serveurs de manière équilibrée et ainsi de réduire les émissions (voir également “Ajustez la taille de votre infrastructure” dans le chapitre précédent).
Exploiter la mise en cache
L'opération de calcul la plus efficace peut être évitée.
Bien que la mise en cache ne soit souvent pas facile à mettre en œuvre, elle peut réduire de manière significative la consommation de ressources si elle est correctement configurée et installée.
Il existe de nombreuses façons d'implémenter la mise en cache : mise en cache en mémoire au niveau du code, mise en cache des réponses des points de terminaison API ou mise en cache par le navigateur. La mise en cache bénéficie généralement aux sites web et aux applications en les rendant plus rapides, ce que vos utilisateurs apprécieront. Cependant, la mise en cache nécessite de la mémoire supplémentaire, ce qui doit être pris en compte lors de son implémentation.
Réduire le transfert de données
Les réseaux de données consomment beaucoup d'énergie, il est donc crucial de réduire la quantité de données en transit autant que possible. Il existe de nombreuses façons d'y parvenir, comme choisir des formats de données avec les plus petites tailles de fichier ou éviter d'envoyer des données inutiles avec chaque requête API.
Une autre option est d'utiliser la compression. Bien que la compression et la décompression des données nécessitent de l'énergie, les algorithmes modernes sont hautement optimisés, et l'énergie économisée est supérieure à l'énergie dépensée.
Mettre en œuvre une architecture pilotée par des événements (EDA)
La mise en œuvre d'une architecture orientée événements (EDA) évite les demandes de mise à jour de statut inutiles entre les services. Au lieu de vérifier constamment les modifications (par exemple, Long Polling), le service sera informé par un push serveur qu'un événement, comme un changement de données, a eu lieu et qu'une action pourrait être nécessaire.
Optimisez votre pipeline CI/CD
L'intégration continue est une partie intégrante du cycle de vie du développement logiciel. C'est pourquoi le pipeline CI/CD est souvent utilisé intensivement tout au long de la journée. C'est la raison pour laquelle vous devriez également l'ajouter à votre suivi carbone.
Essayez de l'optimiser en maintenant le temps d'exécution des tests aussi bas que possible. Par exemple, utilisez davantage de cœurs CPU et exécutez les tests en parallèle si cela est possible. Réduire le nombre de dépendances de construction ou utiliser de petites images Docker (par exemple, basées sur Alpine Linux) peut encore réduire le temps d'exécution.
Choisissez les bons outils
Choisir le bon outil pour la tâche est toujours important, et il n'y a pas d'exception en numérique responsable. Par exemple, utiliser une base de données relationnelle pour la journalisation ou le caching gaspille des ressources étant donné que d'autres outils sont beaucoup mieux adaptés.
Lectures supplémentaires
Il convient de mentionner que de nombreux fournisseurs de cloud, tels que Google, Microsoft ou AWS, recommandent également d'exécuter les logiciels de manière optimale dans leurs clouds.
Niveau 3 - Code
Au niveau suivant, nous examinerons enfin le code réel de notre application logicielle.

Choisissez l'algorithme le plus efficace
La 'notation Big O' décrit comment le temps d'exécution ou les besoins en espace d'un algorithme augmentent à mesure que la taille des données d'entrée augmente. Cela permet aux développeurs de choisir l'algorithme le plus efficace pour un cas d'utilisation spécifique.
Optimiser les schémas de base de données et les requêtes
Les bases de données sont puissantes et hautement optimisées. Au niveau de l'architecture précédente, nous avons appris qu'elles nécessitent une configuration soignée pour fonctionner efficacement.
Il existe souvent un vaste potentiel d'améliorations de performance au niveau du code, dont nous considérons que les schémas de bases de données et les requêtes font partie. Particulièrement pour les bases de données relationnelles comme MySQL ou Postgres, il est important d'enregistrer les requêtes lentes et de les analyser à l'aide d'outils intégrés comme l'instruction EXPLAIN pour obtenir des informations précieuses sur les points à optimiser dans les requêtes.
Un autre aspect souvent négligé est l'utilisation des index de table, qui peut réduire de manière drastique le temps d'exécution des requêtes, en particulier sur de grandes tables.
Les couches d'abstraction comme les ORM réduisent généralement le temps de développement, mais déconnectent les développeurs de la base de données sous-jacente.
S'accorder sur les budgets de performance
Ajoutez des considérations de performance à vos critères d'acceptation pour privilégier l'efficience du code.
Un budget de performance définit certaines limites en fonction du cas d'utilisation. Par exemple, il représente le temps de chargement maximum d'un site web ou la taille totale de tous les actifs téléchargés. Les budgets de performance peuvent être intégrés dans votre pipeline d'intégration continue et vous aident à détecter rapidement les régressions de performance.
Exploiter le profilage du code
Le profilage vous aidera à identifier les fonctions à long terme dans votre code.
Résoudre ces goulets d'étranglement peut réduire considérablement le temps d'exécution et ainsi augmenter l'efficacité de votre logiciel. Des solutions commerciales permettent même de profiler votre application en environnement de production.
Utilisez le code tiers avec prudence.
Diverss paquets ou bibliothèques tierces existent pour résoudre pratiquement tous les problèmes. Cependant, de nombreux paquets sont devenus de plus en plus riches en fonctionnalités au fil du temps, ce qui entraîne une exécution du code plus lente et des tailles de fichiers plus importantes.
C'est pourquoi le package le plus populaire, ou celui que vous connaissez le mieux, n'est pas nécessairement le plus efficace. Si vous souhaitez utiliser un package tiers, recherchez des alternatives plus durables, comme un profileur de code ou d'autres outils de mesure des performances.
Préférez la fonctionnalité native
Particulièrement pour des langages de programmation comme Python, Javascript ou PHP, qui ne sont pas compilés mais interprétés, ilvaut la peine de vérifier s'il existe un moyen intégré de résoudre un problème avant d'utiliser un package tiers ou de concevoir votre propre solution.
Ces fonctions natives ne sont peut-être pas aussi faciles à utiliser que leurs homologues, mais elles offrent généralement des performances inégalées et peuvent aider à résoudre des problèmes de performance. Vous réduisez également la dépendance au code externe.
Nettoyez votre code
Avec le temps, les logiciels s'encombrent et prennent un poids inutile. Le code obsolète doit être supprimé dès qu'il devient désuet. Moins de code signifie généralement de meilleures performances, mais cela permet également de gagner du temps dans le pipeline CI/CD grâce à moins de tests et à des vérifications de la qualité du code plus rapides. Supprimer les packages inutiles réduit la quantité de données téléchargées à chaque mise à jour ou lors du déploiement du code.
Niveau 4 - Sensibilisation au carbone
Bien qu'il ait sa place dans le chapitre 'Niveau Deux - Architecture', le concept de 'Carbon-Aware Computing' est encore très jeune et en pleine évolution, nous souhaitons donc lui accorder un peu plus d'espace.

Crédit : Getty
Comprendre la sensibilisation au carbone
Pendant la phase de transition des combustibles fossiles vers les énergies renouvelables, l'intensité carbone (c'est-à-dire la « saleté » de l'électricité utilisée) varie en fonction de la disponibilité des sources d'énergie propres.
Dans certains pays, la production d'énergies renouvelables est parfois limitée en raison d'une demande insuffisante, et le réseau électrique n'est pas encore capable de distribuer l'énergie de manière uniforme à travers le pays.
Jusqu'à ce qu'une capacité de stockage suffisante soit disponible, et probablement même au-delà, l'idée fondamentale de la 'Conscience Carbone' est d'utiliser de l'énergie verte lorsque cela est possible et de réduire la demande lorsque l'intensité carbone est élevée.
Les sources de données, telles qu'ElectricityMaps ou WattTime, nous informent sur l'intensité carbone actuelle dans de nombreux pays. Les deux services proposent des API Web par lesquelles les informations peuvent être récupérées. D'autres services sont spécifiques à certaines régions, comme Energy Charts pour l'Allemagne ou Carbon Intensity pour le Royaume-Uni.
Comment pouvons-nous tirer parti de ces informations ? La Green Software Foundation, par exemple, décrit plusieurs approches pour réduire les émissions de carbone, que nous aborderons dans les sections suivantes.
Façonner les attentes des clients
Le terme 'modelage de la demande' peut sembler contre-intuitif au premier abord, mais comment pourrions-nous modeler la demande de nos clients ? Cependant, par demande, la Green Software Foundation fait référence à la demande d'électricité plutôt qu'à la demande de produits.
Transférer les charges de travail vers l'avenir
Si l'intensité carbone actuelle est élevée, il est probable que l'électricité redevienne plus verte dans quelques heures, en fonction des conditions météorologiques, car moins de centrales thermiques à combustibles fossiles devront combler le vide.
Mais comment savons-nous quand davantage d'énergie renouvelable sera de nouveau disponible ?
Heureusement, tous les services mentionnés ci-dessus offrent des prévisions d'intensité carbone pour les prochaines 12 heures, voire plus. Cela est possible en utilisant différents types d'informations, telles que les prévisions météorologiques ou le prix du lendemain sur les marchés de l'énergie.
Si l'électricité est actuellement polluée, nous pourrions être en mesure de reporter les charges de travail jusqu'à ce que nous sachions qu'elle est à nouveau plus verte. Cette approche s'appelle le décalage temporel. Un problème majeur pourrait être de trouver des tâches concrètes qui peuvent être retardées. Nous discuterons de ce problème dans le prochain chapitre.
Utilisez des emplacements plus écologiques
Un rapide coup d'œil à la carte de l'intensité carbone du monde nous montre que certains pays disposent d'une électricité nettement plus verte que d'autres pour diverses raisons. Comme nous opérons des logiciels dans le cloud, il est facile d'utiliser des centres de données dans le monde entier et de bénéficier de leurs émissions de carbone réduites.
Cette approche s'appelle 'déplacement spatial' et elle est relativement simple à mettre en œuvre, mais elle présente également quelques défis. Tout d'abord, si chacun exécutait son logiciel dans la région la plus écologique, cela dépasserait rapidement les capacités disponibles, ce qui en fait une solution non holistique.
Deuxièmement, les régions plus éloignées ont un coût : les données doivent simplement parcourir de plus longues distances, ce qui augmente les émissions et les latences, ce qui pourrait rendre les utilisateurs insatisfaits. Souvent, ces régions écologiques sont plus coûteuses que d'autres.
Le transfert spatial peut réduire considérablement les émissions, mais ce n'est pas l'approche idéale pour tous les problèmes.
Les cas d'utilisation pourraient inclure des charges de travail intensives en calcul, telles que l'entraînement de modèles linguistiques de grande taille.
Connaître les problèmes liés à la sensibilisation au carbone
Le concept de Sensibilisation au Carbone n'est pas la solution miracle pour rendre votre logiciel plus écologique, car il présente quelques défis.
Tout d'abord, s'il est appliqué de manière non réglementée à grande échelle, cela pourrait avoir des effets imprévisibles sur la stabilité du réseau électrique.
Un autre défi est l'acceptation par les utilisateurs : ils sont habitués à ce que leurs actions soient exécutées de manière directe et immédiate. Accepteront-ils d'attendre quelques heures jusqu'à ce que le mélange énergétique redevienne plus vert ? Nous examinerons ce problème plus en détail dans le chapitre suivant.
Niveau 5 - Conception de produits
Avec le dernier niveau, nous quittons le domaine de la technologie pour plonger dans celui de la conception de produits et de l'expérience utilisateur. Comme dans la plupart, voire dans toutes les industries, nous ne pouvons pas espérer lutter contre le changement climatique uniquement par l'utilisation de la technologie. Il est également nécessaire de changer notre manière d'utiliser les produits.
L'exemple du chapitre précédent concernant la réduction de la qualité de streaming des vidéos durant les périodes de forte intensité carbone est déjà un exemple de Design de Produit Durable. Bien que l'impact de cette mesure puisse être significatif, nous l'avons classée au niveau 5, car elle nécessite une coordination extensive avec d'autres départements et parties prenantes.

Crédit : Getty
Informez vos utilisateurs
Des mesures comme la réduction du débit de streaming vidéo ne devraient pas être prises sans informer les utilisateurs et d'autres parties prenantes importantes. Sinon, vous vous retrouverez avec des clients mécontents de la faible qualité vidéo et des employés du support technique mal informés qui ne peuvent que transmettre les rapports de bogues aux équipes d'ingénierie.
Informer les utilisateurs peut être combiné avec la sensibilisation et la compréhension. Par exemple, vous pouvez afficher l'intensité carbone actuelle dans votre application en signalant les moments de forte intensité carbone.
Donnez-leur un choix
Vos clients devraient être en mesure de s'engager activement (ou de se désengager) dans des mesures de réduction des émissions de carbone, tout comme ils en ont l'habitude, par exemple avec leurs machines à laver, où ils peuvent sélectionner un mode éco qui prend plus de temps mais économise de l'énergie. Est-il acceptable que les utilisateurs de votre logiciel attendent que des tâches spécifiques soient exécutées lorsqu'ils savent que cela permettrait de réduire les émissions ?
Mais gardez à l'esprit : ce n'est pas utile si les clients quittent parce que les restrictions sont trop rigides. Parfois, il est nécessaire d'accomplir le travail le plus rapidement possible, même si cela entraîne des émissions de carbone plus élevées.
Conception pour la durabilité
Concevoir votre produit en tenant compte de la durabilité peut réduire significativement les émissions de carbone. Par exemple, le tableau de bord des données doit-il toujours être à jour et nécessiter des requêtes de base de données constantes ? Ou l'utilisateur accepterait-il des données qui peuvent avoir quelques minutes de retard, mais qui permettent au backend de mettre en cache les requêtes et ainsi d'économiser des ressources ?
D'autres aspects, tels que l'utilisation de modèles de conception reconnus et l'évitement de modèles trompeurs, sont expliqués dans la section Expérience Utilisateur des Directives de Durabilité Web (WSG) 1.0. À ce stade, l'ingénierie logicielle verte s'intègre également dans des domaines tels que l'accessibilité ou l'éthique, qui dépassent le cadre de cet article mais qui demeurent néanmoins essentiels à considérer.
Définir une stratégie
.avif)
Crédit : Unsplash
Maintenant que nous disposons des connaissances et des outils nécessaires pour réduire les émissions de carbone liées aux logiciels, nous devons définir une stratégie pour l'appliquer à votre organisation. À ce stade, nous supposons que la direction a déjà donné son accord pour introduire des mesures de numérique responsable, c'est-à-dire que vous avez l'adhésion.
Un bon point de départ consisterait à analyser les données sur les émissions et les coûts afin d'identifier les domaines de votre infrastructure qui présentent le potentiel le plus significatif de réduction des coûts et des émissions de carbone. Une fois que quelques objectifs auront été formulés, ceux-ci pourront être intégrés dans un plan de projet.
Les KPI potentiels du projet pourraient être les émissions totales de carbone et les coûts d'infrastructure par semaine. S'ils sont suivis sur une période plus longue, ils montrent rapidement des progrès.
Si vous suivez les heures de travail sur le projet, vous pouvez calculer le ROI à la fin du projet.
Gardez-le en marche

Crédit : Unsplash
Cependant, un seul projet de numérique responsable ne suffit pas. Une fois les premiers gains de carbone réalisés, il est essentiel de ne pas s'arrêter, mais de maintenir l'élan. Étant donné que le paysage informatique typique est en constante évolution, un suivi et une analyse constants sont nécessaires pour identifier d'autres potentiels de réduction et, tout aussi important, pour éviter une augmentation des émissions de carbone, par exemple, à cause de problèmes de configuration ou tout simplement d'employés peu conscients.
Une mesure simples serait d'ajouter les indicateurs de performance (KPI) liés au numérique responsable au reporting de gestion habituel. Cela permet également de garder la durabilité à l'esprit des décideurs.
Points à retenir : Comment décarboner votre informatique
Cet article explique comment réduire l'empreinte carbone des logiciels, les rendant ainsi plus efficaces en carbone. Tout d'abord, mesurez les émissions de votre configuration logicielle.
Une fois que vous disposez de chiffres d'émission fiables, vous pouvez les réduire en agissant à plusieurs niveaux :
Les niveaux sont classés par la difficulté de mise en œuvre et le potentiel d'économies de carbone attendu afin de vous donner une première orientation. Par exemple, de nombreuses actions de niveau 1 sont relativement faciles à mettre en œuvre tout en ayant de fortes chances d'atteindre des réductions significatives des émissions.
Enfin, pour appliquer les mesures de numérique responsable à votre application, vous devez définir une stratégie pour les mettre en œuvre. Cela pourrait être aussi simple qu'un plan de projet basique, où vous définissez des résultats concrets et rendez le processus transparent à travers des indicateurs clés de performance (KPI).
Une fois que vous avez terminé votre premier projet, le processus doit recommencer car le numérique responsable n’est pas un projet ponctuel, mais un changement de mentalité et d’opérations.
Commencez dès aujourd'hui le parcours de décarbonation de votre entreprise.Réservez une démonstration pour découvrir le meilleur des solutions de durabilité.