Décarbonisez votre informatique grâce à l'ingénierie logicielle durable

Décarbonisez votre informatique grâce à l'ingénierie logicielle durable

🛠️ Cette page est en cours de traduction en français.
🛠️ Cette page est actuellement en cours de traduction en allemand.
Votre logiciel contribue-t-il silencieusement aux émissions mondiales ? Découvrez comment l'ingénierie durable peut transformer l'informatique en une force d'action pour le climat.
Veuillez accepter les cookies de marketing pour accéder à la fonctionnalité de lecture audio.
4 février 2025

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 méthodes pour réduire l’empreinte carbone des logiciels, des exécutables locaux aux clusters Kubernetes de grande taille. Ce savoir peut être appliqué à la décarbonation des entreprises de logiciels ou, de manière plus générale, aux organisations où les technologies de l’information sont le principal moteur de la création de valeur.

Qu'est-ce que le numérique responsable ?

Définition

Numérique responsable (green information technology) : Mise en œuvre d'un informatique durable sur le plan environnemental en réduisant la consommation d'énergie, en minimisant les déchets électroniques et en optimisant le cycle de vie des équipements informatiques pour réduire l'impact environnemental.

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 le développement durable peut également conduire à une meilleure performance des logiciels et, par conséquent, à des revenus plus élevés. Un site web léger, par exemple, se classe mieux en SEO (ce qui reste pertinent aujourd'hui, même avec l'essor de l'IA générative), et les sites web à chargement rapide 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 être en mesure de mesurer son empreinte carbone. Sinon, vous ne pourrez pas évaluer correctement l'impact de vos efforts. Par conséquent, nous expliquerons quelles options sont disponibles pour mesurer les émissions des logiciels.

Le logiciel émet indirectement du carbone par le biais de l'électricité consommée par le CPU, de l'utilisation de la mémoire et du transfert de données vers/depuis des supports de stockage tels que les disques durs ou via le réseau. Chaque opération provoquée par le logiciel augmente donc la consommation d'électricité.

Une autre source d'émissions est la production du ou des appareils sur lesquels notre logiciel fonctionne. Ce carbone dit incarné d'un appareil comprend l'emballage, le transport et le traitement en fin de vie, comme l'élimination ou le recyclage.

Systèmes locaux

Pour les appareils locaux, comme un serveur physique ou un ordinateur de bureau, on peut mesurer directement la consommation en installant un wattmètre entre l'appareil et la prise. En utilisant l'intensité carbone, c'est-à-dire la quantité d'équivalents carbone libérée 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, cependant, peut être délicate, car il y a généralement de nombreuses tâches en arrière-plan s'exécutant sur un système, ce qui peut entraîner des écarts dans la mesure. Éliminer les erreurs de mesure nécessite plusieurs essais en utilisant la même configuration de système et les mêmes opérations logicielles.

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 processeurs. Pour obtenir les meilleurs résultats, un cluster dédié est nécessaire où le logiciel peut ê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 leur comparaison plus difficile. Certains fournisseurs utilisent également des émissions basées sur le marché (émissions calculées qui prennent en compte des accords d'achat d'énergie ou d'autres méthodes de compensation), ce qui est pratique pour des raisons de reporting. Pourtant, pour optimiser les systèmes informatiques en vue d'une efficacité carbone, les émissions basées sur la localisation, c'est-à-dire les émissions « réelles » générées sur le site du centre de données, sont plus pertinentes.

Il peut également y avoir un délai de jusqu'à 3 mois avant que le fournisseur ne collecte toutes les données de ses centres de données à travers le monde et ne rende les émissions disponibles. C'est beaucoup trop long pour optimiser les charges de travail rapidement.

Outil d'empreinte carbone Cloud

Il y a de l'aide, cependant : comme les fournisseurs de cloud suivent chaque petite transaction pour nous facturer, nous pouvons utiliser ces données détaillées pour estimer les émissions en fonction du service utilisé et de la durée d'utilisation. L'outil Cloud Carbon Footprint (CCF) fait 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

Avant d’optimiser votre code, vous devez vous assurer que votre infrastructure ne gaspille pas de ressources. Cela nécessite d’examiner de près 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. Au fil du temps, les systèmes tendent à devenir encombrés. Les services sont remplacés mais ne sont 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. Pourtant, un serveur inactif consomme une quantité importante d'énergie, car des composants comme la carte mère doivent toujours être alimentés en électricité. C'est pourquoi ces serveurs superflus sont également appelés « Zombies » : ils n'effectuent aucune tâche productive mais drainent des ressources précieuses.

En utilisant des journaux système et des outils de surveillance, il est relativement facile de déterminer si une ressource est toujours utilisée. Cependant, nous devons faire attention à ne pas provoquer d'effets secondaires. Cela peut être réalisé grâce aux soi-disant « Tests de Cri ». Si vous êtes sûr qu’une ressource n’est plus utilisée, communiquez votre action et désactivez ou déconnectez (mais ne supprimez pas !) la ressource concernée. Si quelqu'un crie que son système est affecté, vous pouvez rapidement la réactiver. N'oubliez pas que certains travaux sont récurrents chaque semaine ou même chaque mois, donc la période doit être prise en compte, ne la supprimez donc pas trop tôt.

Ajustez la taille de votre infrastructure

Les services cloud facilitent la mise à disposition de ressources à l'échelle de presque n'importe quelle taille. Cela conduit souvent à une surprovisionnement : des tailles d'instance 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é « Rightsizing ». L'objectif est de trouver une taille d'instance qui conduit à 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 le faire 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 et proposent des services tels que le Cost Optimisation Hub, qui recommande lesquelles des instances sont sur- ou sous-provisionné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 uniforme tout au long de la journée. Il y aura des pics d'utilisation, rendant difficile la détermination de la taille adéquate. Si ces pics ne se produisent que sporadiquement 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 fortement dans le 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 des 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 autoscaling.

Au lieu de fournir une instance principale avec un tampon suffisant pour tous les pics attendus, qui est souvent inactive, la charge de travail peut être répartie sur plusieurs instances secondaires. Grâce à l'autoscaling, que tous les fournisseurs de cloud proposent, 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 de réserve à court terme que un fournisseur de cloud ne peut pas vendre, c'est pourquoi elles sont proposées à un prix inférieur à celui des instances à la demande régulières. Un inconvénient général est que ces instances sont généralement éphémères et que le fournisseur de cloud peut les supprimer après un court délai de préavis. 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

Les données au repos, les données stockées localement ou dans le cloud, constituent une autre source d'émissions à prendre en compte. Le stockage dans le cloud est exceptionnellement bon marché, il est donc tentant d'y enregistrer 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 de 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 une période spécifique. 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.

Faites attention au terme « Lift and Shift ».

Si vous envisagez de migrer des applications vers un environnement cloud, évitez le « Lift and Shift », c'est-à-dire le transfert direct de tous les composants sans redéveloppement. Il est souvent préférable d'utiliser les services cloud natifs proposés par votre fournisseur. 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 vos instances de serveur.

Éteindre les environnements de développement lorsqu'ils ne sont pas nécessaires.

À côté de l'environnement de Production, il existe généralement d'autres environnements comme le Développement ou les Tests d'Acceptation Utilisateur, qui n'ont pas besoin de fonctionner pendant le week-end ou la nuit lorsque personne ne travaille dessus. Ils peuvent être automatiquement arrêtés ou rallumés lorsque cela est 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 du logiciel interagissent entre eux.

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'avez pas besoin de mettre à l'échelle l'ensemble du monolithe. Cela ne signifie pas qu'il est nécessaire de diviser toute votre application en services.

Utilisez des fonctions sans serveur

Les fonctions sans serveur ne nécessitent pas que vous fournissiez 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 aussi « Redimensionnez 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 soit souvent difficile à mettre en œuvre, elle peut réduire considérablement la consommation de ressources si elle est correctement configurée. 

Il existe de nombreuses façons d'implémenter la mise en cache : la mise en cache en mémoire au niveau du code, la mise en cache des réponses des points de terminaison API ou la mise en cache dans 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 une 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 essentiel de réduire autant que possible la quantité de données en transit. Il existe de nombreuses façons d'y parvenir, comme choisir des formats de données avec les tailles de fichiers les plus petites ou éviter d'envoyer des données inutiles avec chaque requête API.

Une autre option consiste à 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 pourquoi vous devriez également l'ajouter à votre suivi des émissions de 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 soigneuse pour fonctionner efficacement.

Il existe souvent un vaste potentiel d'amélioration des performances au niveau du code, auquel nous considérons que les schémas de base de données et les requêtes appartiennent. En particulier pour les bases de données relationnelles comme MySQL ou Postgres, il est important d'enregistrer les requêtes lentes et de les analyser avec des outils intégrés tels que l'instruction EXPLAIN pour obtenir des insights précieux sur les points à optimiser dans les requêtes.

Un autre aspect souvent négligé est l'utilisation des index de table, qui peut considérablement réduire 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 afin de prioriser l'efficacité 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 aider à détecter rapidement les régressions de performance.

Exploiter le profilage du code

Le profilage vous aidera à identifier les fonctions de longue durée 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 vous permettent même de profiler votre application dans des environnements de production. 

Utilisez le code de tiers avec précaution.

Diverses bibliothèques ou packages tiers existent pour résoudre pratiquement tous les problèmes. Cependant, de nombreux packages 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 les langages de programmation comme Python, Javascript ou PHP, qui ne sont pas compilés mais interprétés, il est judicieux de vérifier s'il existe une solution intégrée à 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

Au fil du temps, le logiciel accumule du désordre et prend du poids inutile. Le code obsolète doit être supprimé dès qu'il n'est plus à jour. Moins de code signifie généralement de meilleures performances, mais cela vous fait également gagner du temps dans le pipeline CI/CD grâce à moins de tests et à des vérifications de qualité de code plus rapides. La suppression des packages inutiles réduit la quantité de données téléchargées à chaque mise à jour ou lorsque le code est déployé.

Niveau 4 - Sensibilisation au carbone

Bien qu'il puisse s'intégrer dans le chapitre Niveau Deux—Architecture, le concept d'informatique consciente du carbone est encore très jeune et en pleine évolution, nous souhaitons donc lui accorder un peu plus d'espace.

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 aussi au-delà de ce point, l'idée fondamentale de la Sensibilisation au Carbone est d'utiliser de l'énergie verte lorsqu'elle est disponible 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 cette information ? 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 demand shaping peut sembler contre-intuitif au premier abord, mais comment pourrions-nous façonner la demande de nos clients ? Pourtant, par demand, la Green Software Foundation fait référence à la demande d'électricité plutôt qu'à la demande de produits.

Les entreprises qui diffusent des données, comme de la vidéo ou de l'audio, pourraient, par exemple, réduire la qualité par défaut avec laquelle le contenu est livré lorsque l'intensité carbone est élevée. 

Transférer les charges de travail vers l'avenir

Si l'intensité carbonique actuelle est élevée, il est fort probable que l'électricité redevienne plus verte dans quelques heures, en fonction des conditions météorologiques, car moins de centrales à combustibles fossiles doivent combler le manque. 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écalage spatial et est relativement facile à mettre en œuvre, mais elle présente également certains défis. Tout d'abord, si tout le monde faisait fonctionner son logiciel dans la région la plus écologique, elle dépasserait rapidement les capacités disponibles, donc ce n'est pas une solution globale. 

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 décalage spatial peut réduire significativement 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, comme l'entraînement de grands modèles de langage.

Connaître les problèmes liés à la sensibilisation au carbone.

Le concept de la sensibilisation au carbone n'est pas la solution miracle pour verdir votre logiciel, car il présente quelques défis. Tout d'abord, s'il est appliqué de manière non régulé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 pendant les périodes de forte intensité carbone constitue 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 importante avec d'autres départements et parties prenantes.

Informez vos utilisateurs

Des mesures telles que la réduction du débit de transmission 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 se plaignant de la mauvaise qualité vidéo et des employés du service d'assistance non informés qui ne peuvent que faire remonter les rapports de bogue 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 pouvoir choisir activement (ou se désinscrire) des mesures d'économie 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 qui économise de l'énergie. Est-il acceptable que vos utilisateurs de logiciels 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é du Web (WSG) 1.0. À ce stade, l'ingénierie logicielle verte s'entremêle également avec des domaines tels que l'accessibilité ou l'éthique, qui dépassent le cadre de cet article mais qu'il est néanmoins essentiel de prendre en compte.

Définir une stratégie

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

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 :

Niveau Action
Niveau 1 Évitez l'utilisation inutile des ressources
Niveau 2 Utilisez une architecture logicielle éco-efficiente
Niveau 3 Optimiser les performances logicielles
Niveau 4 Envisager l'ingénierie logicielle consciente du carbone
Niveau 5 Concevez votre produit de manière écologique.

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é.

Nos experts en développement durable

Mettez votre entreprise sur la voie du net-zéro.

Nos experts en développement durable trouveront la solution idéale pour vous.
La durabilité est un océan profond et vaste à naviguer. Utilisez mes connaissances et mon intelligence pour apprendre de manière exponentielle et trouver les bonnes ressources pour étayer votre argumentation.