nachhaltige software

Durabilité numérique – quel rapport avec le développement logiciel ?

Portrait Elena
de Elena Höppner Content MarketingPublié le 07/07/2022

Volumes de données croissants, code plus complexe, capacités de stockage plus élevées : le dernier article a montré que, avec la consommation croissante de CO2 dans l'économie numérique, la durabilité numérique devient un thème toujours plus pertinent. Mais qu'est-ce exactement que la durabilité numérique et quels facteurs y jouent un rôle ? Dans quelle mesure un logiciel peut-il seulement être durable ? Pour mieux comprendre ce domaine, nous avons interrogé notre développeur backend Carlo, qui s'est notamment penché sur ce sujet dans le cadre de ses études d'informatique.

Durabilité numérique – un terme, plusieurs significations ?

Comme nous l'avons déjà constaté dans le dernier article, la durabilité numérique consiste fondamentalement à produire en ménageant les ressources, à utiliser les capacités efficacement et à ne pas vivre au-dessus de ses besoins ni de ceux des générations futures. Notre développeur Carlo a pour nous une définition un peu plus précise : «La durabilité numérique consiste à concevoir et à construire des logiciels et des systèmes de manière à ce qu'ils soient respectueux de l'environnement, économes en énergie et utilisables sur le long terme.»

Cela sonne bien, mais comment le mettre en œuvre dans le développement et l'utilisation de logiciels ?

Naturellement, il n'existe pas ici – comme pour la plupart des sujets de ce type – un facteur unique qui changerait tout : c'est un processus continu qui englobe différents domaines. Nous les avons rassemblés :

  1. Tous les facteurs liés à l'utilisation du logiciel : cela va de l'emploi d'électricité verte à l'optimisation du refroidissement, jusqu'à la valorisation de la chaleur.

  2. L'efficacité avec laquelle le logiciel est écrit est déterminante : la complexité de son code source ou le langage de programmation utilisé.

  3. L'interaction entre matériel et logiciel : dans quelle mesure le logiciel est-il bien exploité sur le matériel correspondant et quelle est donc l'efficacité du taux de charge du matériel ?

Regardons cela de plus près.

Utilisation efficace de l'énergie – électricité verte, refroidissement et optimisation de la chaleur

Un logiciel a besoin d'énergie – c'est un fait établi que nous ne pouvons pas changer. Mais ce sur quoi nous avons une influence, c'est l'origine de l'électricité utilisée pour notre logiciel. L'emploi d'électricité verte, c'est-à-dire issue de sources renouvelables, est nettement plus respectueux de l'environnement et contribue ainsi à un logiciel plus durable. Par ailleurs, l'utilisation de logiciels sur les serveurs génère beaucoup de chaleur, si bien qu'une gestion durable de celle-ci est également un point important.

Les centres de calcul disposent ici d'avantages décisifs, car les bâtiments peuvent par exemple être construits de manière à ce que les fluides de refroidissement comme l'air ou l'eau soient acheminés de façon optimale et que le refroidissement s'effectue très efficacement. Il existe en outre des concepts permettant d'utiliser la chaleur produite pour chauffer des quartiers d'habitation – ce qui est bien sûr extrêmement efficace.

Un logiciel durable est un logiciel écrit efficacement

Au-delà de l'électricité verte et de l'optimisation de la chaleur et du refroidissement, une part essentielle tient à la manière dont le logiciel est programmé – à quoi ressemble son code source. Un logiciel écrit efficacement, c'est un code source maintenu aussi simple que possible, ce qui améliore les performances et donc la durabilité du fonctionnement.

Carlo nous explique à ce sujet : «Un code source complexe signifie toujours davantage de coûts de développement et de maintenance, parce qu'il est plus difficile à lire et qu'il faut donc plus de temps pour s'y retrouver. Il comporte aussi davantage de problèmes complexes qu'on ne voit même pas, mais qui consomment quand même de l'énergie alors que ce ne serait pas nécessaire. Cela veut dire qu'il faut garder le code source aussi simple que possible.»

Carlo nous parle en même temps des difficultés liées à la création de logiciels efficaces et durables :

«Écrire un logiciel efficace demande du travail ; écrire un logiciel économe demande du travail. Cela concerne toute l'architecture du logiciel. Nous avons aujourd'hui des volumes de données toujours plus importants, nous voulons collecter et traiter toujours plus de données. Tous les processus doivent être plus optimisés, plus efficaces, afin de contrer la consommation d'énergie liée à ces volumes croissants.» 

Programmer un logiciel plus efficacement coûte donc d'abord du temps et de l'argent, mais c'est judicieux à long terme pour réduire coûts, charge de travail et consommation d'énergie.

Dans ce contexte, le choix du langage de programmation est également très intéressant pour le bilan énergétique du logiciel : une étude d'Accenture a montré que le langage choisi peut réduire la consommation d'énergie d'un logiciel jusqu'à 50 pour cent ! Cela montre qu'il reste dans certains domaines une belle marge de progression.

Matériel et logiciel – tout est question de charge optimisée

Pour finir, à ne pas oublier : l'interaction entre logiciel et matériel. Ce qui est déterminant, c'est l'efficacité avec laquelle le matériel est sollicité par le logiciel qui y est installé, afin de gaspiller le moins de puissance possible.

Carlo explique à ce sujet : «Le matériel et le logiciel sont étroitement liés. Sur le serveur, donc sur le matériel, se trouve un nombre défini de ressources, qu'il s'agisse de la mémoire vive ou du nombre de cœurs de processeur. Il s'agit alors d'y ajuster le logiciel aussi efficacement que possible, de sorte que les ressources ne soient pas gaspillées mais utilisées au mieux. L'objectif est qu'un maximum de logiciels tournent sur le matériel sans se gêner mutuellement en s'accaparant les ressources des uns et des autres.»

Une charge aussi élevée que possible du matériel est donc hautement pertinente du point de vue de la durabilité. Des estimations de 2015 concluaient par exemple que jusqu'à 30 pour cent des serveurs dans les centres de calcul tournent à vide, sans fournir de prestation. La comparaison des deux modèles cloud privé et cloud public est intéressante dans ce contexte : alors que dans le cloud privé seules les données d'une seule entreprise sont stockées et traitées, dans le cloud public ce sont les processus de plusieurs entreprises qui s'exécutent. Comme les ressources peuvent ainsi être partagées dans un cloud public, une charge bien plus efficace y est possible que dans un cloud privé.

Carlo nous explique : «Si j'ai un serveur ici ou si j'utilise un cloud privé, il devient extrêmement difficile pour moi d'exploiter pleinement les ressources disponibles sur ce serveur. Cela signifie qu'elles tournent à vide, sont disponibles, sont réservées, ne servent à rien d'autre – et voilà, elles ne sont effectivement utilisées pour rien d'autre. Dans le cloud public, en revanche, on bénéficie souvent déjà d'optimisations du fournisseur cloud, de sorte qu'il est défini ce qui va sur quel serveur, afin d'en exploiter le plus possible.» 

Beaucoup d'aperçus passionnants du champ de la durabilité numérique – merci à Carlo pour cette interview !