Développement applicatif

Green IT et craftmanship, l’avenir de l’informatique

Publié le 12/07/2022 Par Gaël Dupire

L’écologie est une préoccupation majeure à l’heure actuelle. L’activité humaine de ces dernières décennies est en effet très liée aux émissions de CO2…

Green It image vectorielle

L’écologie est une préoccupation majeure à l’heure actuelle. L’activité humaine de ces dernières décennies est en effet très liée aux émissions de CO2, en témoigne la corrélation de 0,84 entre la croissance du GDP et les émissions de CO2 . Parmi les activités très consommatrices en énergie se trouvent celles liées à l’IT. Il est donc naturel que le secteur IT remette en cause ses pratiques afin d’entrer dans une démarche plus éco-responsable. Une évolution d’autant plus importante que certains usages, notamment liés aux données, à l’intelligence artificielle ou aux objets connectés, augmentent très significativement la consommation d’énergie nécessaire pour les faire fonctionner. C’est pourquoi l’association entre Green IT et craftsmanship représente l’avenir de l’informatique.

Définition du Green IT : qu’est-ce que le responsable numérique ?

Le green IT représente selon moi l’ensemble des pratiques qui visent à limiter l’empreinte carbone sans minimiser l’apport de fonctionnalités raisonnables. Par « fonctionnalité raisonnable » j’entends les fonctionnalités qui sont bénéfiques aux utilisateurs. Il s’agit à mon avis de quelque chose qui va au-delà du Green IT. Pour être qualifiée de raisonnable, une fonctionnalité doit apporter un bénéfice quantifiable aux utilisateurs sans dégrader l’utilité globale et, en particulier, le fonctionnement de la société. C’est une démarche utilitariste que j’assume pleinement, mais qui sort de la portée de cet article.

Dans cet article, je vais me concentrer sur la consommation en énergie des système IT. Je considère que c’est un bon estimateur des émissions de gaz à effet de serre et en particulier de CO2. Pour des données plus générales, vous pouvez consulter le site du shift project. C’est bien entendu directement dépendant des mix énergétiques des pays et des régions dans lesquels sont localisés les datacenters et les serveurs. L’enjeu est de proposer des pistes de réflexion sur l’utilisation des ressources IT et les possibles économies d’énergie.

À noter que les termes numériques responsables « Eco-Tic, informatique verte, écologique, ou éco-responsable » sont équivalents.

Pourquoi et comment faire du green IT ?

Les différents acteurs intervenants dans les processus ont leur responsabilité engagée vis-à-vis de ces challenges écologiques, des développeurs à la direction informatique, en passant par la maîtrise d’ouvrage, les Ops, etc. Sans une mobilisation globale de toute la chaîne, difficile d’avoir un impact sensible. Et pourtant, il est possible de réaliser nombre de petites actions à tous les niveaux pour inverser la tendance dans une direction plus soutenable.

Comment faire pour agir ? Quels sont les moyens à notre disposition afin d’avoir un impact positif ? Voilà les questions que nous nous sommes posées avec quelques collègues de Meritis sur l’éco-conception. En réponse, cet article met en avant quelques-unes des pistes que nous avons évoquées au fil de longues discussions. C’est un sujet complexe, pour lequel il n’existe pas de réponse unique tant il dépend des sensibilités des uns et des autres.

Pour faire simple, la démarche green IT consiste à faire attention à ce que l’on fait en prenant en compte la contrainte énergétique. En effet, dans le domaine IT, les émissions de gaz à effet de serre sont directement reliées à la consommation énergétique.

Combien de fois avez-vous entendu, « ce n’est pas grave, il suffit d’ajouter des CPU / de la RAM / des disques durs » ? Et combien de fois était-ce réellement utile ? Comme pour le refactoring, cette petite phrase a été un déclencheur pour moi. Peut-on faire autrement que d’ajouter des ressources ?

Pour répondre à cette dernière question, voici les quelques lignes directrices que je souhaite vous partager. Vous allez le constater, il s’agit de notions et de méthodes qui existent déjà. Je ne cherche donc pas à proposer quelque chose de nouveau, mais plutôt à attirer votre attention sur les bénéfices supplémentaires portés par ces méthodes.

Le choix du langage

Nous évoluons dans une tour de Babel informatique. Nous avons le choix entre de multiples langages, chacun étant dédié à un usage meilleur qu’un autre pour telle ou telle raison. Et si nous regardions tout cela sous le prisme du Green IT ? Je vous conseillerai alors, si vous ne le connaissez pas encore, la lecture de cet article, Energy Efficiency across Programming Languages.

J’ai appris l’existence de cet article via un post sur LinkedIn de Jean Marc Jancovici. Si vous le connaissez, vous savez qu’il va très loin dans ses conclusions. Bien que je ne les partage pas toutes, impossible de les ignorer purement et simplement.

Au vu de ce rapport, il est clair que le choix du langage a un impact direct sur la consommation d’énergie. Cependant, je ne dirais pas que la solution consiste à se passer des langages les plus consommateurs. Certains sont très bons pour tester et prototyper des idées. Prenons l’exemple de Python, langage de choix pour la data et l’IA. Il bénéficie de nombreuses librairies qui facilitent grandement le développement des idées. C’est également un langage extrêmement simple à manipuler et facile d’accès. Il permet à de nombreuses personnes, pas uniquement des développeurs, d’écrire du code, résolvant ainsi certains problèmes du quotidien.

Tous les langages permettent-ils le passage à l’échelle ?

La question est posée mais gardons en tète que nous partons du point de vue d’une frugalité énergétique. Ici, le passage à l’échelle désigne l’utilisation en production. En effet, les volumes de production sont sans commune mesure avec les volumes que l’on utilise en recherche et développement. Ainsi, les conséquences des langages les plus consommateurs sont rapidement démultipliées.

Le Python consomme en moyenne 76 fois plus que du code en C. Faut-il tout réécrire en C pour autant ? La réponse dépend du contexte et surtout des ressources qui peuvent le faire. Si on regarde les performances des langages comme Java ou C#, on obtient des performances énergétiques acceptables tout en conservant une facilité d’accès et de nombreux outils pour gérer les mises en production. De mon point de vue, les langages ayant un facteur de consommation énergétique inférieur à 10 sont acceptables dans une démarche Green IT.

Aux vu de ces résultats, et dans un contexte de manipulation des données, j’essaierais certainement le F#. C’est un langage que j’apprécie beaucoup et très facile d’accès également. Il permet ainsi d’accéder aux outils du .Net et des librairies d’IA dédiés. Il est également très bien adapté à Azure (et au cloud en général).

Le point essentiel est que nous avons le choix. Nous ne sommes pas obligés de rester dans les standards parce que telle est la norme depuis longtemps. La démarche green IT, si on souhaite l’appliquer, va forcément bousculer nos habitudes et transformer nos usages. Mais nous avons déjà à disposition les outils qui permettent cette transformation. Plus nous basculerons vers ces choix et plus de nouveaux outils adaptés apparaîtront. Il est même possible que certains outils optimisent leur performance énergétique. C’est peut-être d’ailleurs le cas du Python.

Software craftsmanship

La conception des logiciels est un autre point auquel il faut prêter attention. La consommation énergétique des systèmes informatiques est fortement affectée par les choix d’architecture que nous faisons. Le Software Craftsmanship insiste sur le point suivant :

Des logiciels opérationnels, mais aussi bien conçus

Avec une démarche Green IT, une bonne conception prend en compte la consommation énergétique, et ne fait pas, ou le moins possible, d’opérations inutiles. Les choix architecturaux sont alors essentiels, tout comme celui des algorithmes, des processus ou des protocoles de communication.

Une bonne conception vise la simplicité, ce qui n’est pas vraiment un principe révolutionnaire. Ici, ce principe prend une nouvelle dimension. Dans la communication entre services par exemple, le fait d’utiliser des protocoles les moins verbeux possibles minimise la consommation d’énergie et simplifie aussi la compréhension de ce que l’on fait en cas de problème.

L’efficacité des algorithmes est un facteur important également. Nous n’écrivons pas souvent des algorithmes, mais quand nous le faisons, ils occupent une place centrale dans les logiciels. Ils sont souvent au cœur de nos moteurs. En d’autres termes, ils travaillent en permanence. Le bon choix d’algorithme et la bonne implémentation peuvent réduire la complexité algorithmique, et donc le nombre d’opérations et finalement la consommation électrique.

Si nous n’écrivons pas d’algorithme, nous en utilisons pourtant régulièrement. Que ce soit via une opération de tri sur un conteneur ou une requête SQL, nous consommons des algorithmes. Encore faut-il consommer le bon et de la bonne façon. J’ai connu des personnes qui insistaient pour implémenter leur propre opération de tri en C#, sous prétexte que le Framework. Net n’avait pas une bonne implémentation. Pourtant, en se renseignant un peu, on peut constater qu’il s’agit d’une version de tri très efficace.

Il n’y a rien de nouveau. Il s’agit simplement de quelques principes classiques de conception que l’on oublie un peu trop souvent pour aller vite ou parce que l’on peut compenser l’efficacité algorithmique par du matériel. Voilà ce qu’on appelle le software craftsmanship et c’est une des raisons qui fait que j’apprécie cette pratique.

L’agilité, retour au manifeste

Sans parler de méthode agile, le manifeste agile est une bonne source d’inspiration pour des pratiques Green IT. Voici une citation qui me semble très importante :

« La simplicité – c’est-à-dire l’art de minimiser la quantité de travail inutile – est essentielle. »

Une autre façon de le dire serait de parler du principe YAGNI : « you ain’t gonna need it ». Il ne faut pas créer des features dont le besoin n’a pas été exprimé. C’est la façon la plus directe de créer de la valeur (en fournissant l’attendu) et sans créer des fonctionnalités potentiellement inutiles.

Certains d’entre vous se poseront la question de l’innovation dans ce contexte. La question est légitime. L’innovation par nature, c’est apporter une réponse nouvelle à un besoin qui n’est pas nécessairement exprimé (Facebook ?). Je pense que beaucoup de développeurs ont d’ailleurs déjà essayé de fournir une fonctionnalité révolutionnaire en production, censée changer l’usage des utilisateurs. Est-ce que ça a marché ? Peut-être une fois ou deux, mais systématiquement ? Et avez-vous coupé l’alimentation de ces fonctionnalités ?

Mon expérience me dit que de nombreux jobs récurrents en production permettent le fonctionnement de certaines de ces fonctionnalités en production. Et finalement, leur résultat n’est pas utilisé.

Minimiser la quantité de travail inutile, c’est aussi savoir se séparer des applications mortes. C’est un des biais les plus courants que l’on trouve en entreprise. On a du mal à se séparer des anciennes versions lors des migrations car elles représentent un backup en cas de problème. Cependant, le développement de la nouvelle version rend rapidement cette capacité de backup complètement obsolète. Finalement, on n’en aura jamais besoin, donc autant s’en séparer.

planet bien etre et protection, image vectorielle

Les bonnes pratiques de gestion des données : un autre regard sur le RGPD

L’efficacité des opérations des solutions IT est une partie du problème. La gestion de la donnée en est une autre. Il est inutile de stocker trop de données, Le stockage nécessite des disques durs qui constituent autant d’importants points de consommation d’énergie. Une bonne politique de gestion de la donnée est un élément essentiel de la démarche green IT.

Le RGPD apporte des solutions de politique de gestion de la donnée applicable dans le cadre de la éco-conception. Pour des raisons totalement différentes, le RGPD nous indique des règles de gestion plutôt saines. Conserver le nécessaire des données, tant à la récupération que lors des archivages, rejoint le principe YAGNI et une partie du manifeste Agile d’ailleurs. À l’inverse, il faut laisser de côté ce dont nous n’avons pas besoin.

Les politiques de rétention sont des points qui sont souvent assez peu traités. La principale raison repose souvent sur la faible valeur ajoutée pour le client. Cependant, au-delà de la démarche Green IT, cette pratique possède de réels bénéfices en termes de budget et d’efficacité des requêtes.

Définir des responsables du traitement peut aussi nous amener à mieux contrôler les différents segments d’intégration et de transformation des données. Il peut à la fois justifier les politiques de gestion de données et les algorithmes choisis pour les traitements.

Les différentes stratégies de développement des infrastructures

On pourrait résumer les enjeux de consommation énergétique aux infrastructures tant les chiffres donnent le vertige. Et si l’on veut se fixer des objectifs de développement durable, il est clair qu’une étude du champ des possibles est nécessaire. Pour cela, il nous faut des indicateurs afin de mesurer les effets de nos actions et comparer avec les solutions alternatives.

Power Usage Effectiveness (PUE)

Il s’agit d’un ratio développé par The green grid qui s’appuie sur le rapport entre l’énergie totale consommée par le datacenter, et l’énergie consommée par les équipements électroniques et informatiques.

Dans ce calcul, l’origine de l’électricité n’est pas prise en compte (gaz naturel, nucléaire ou renouvelable). Ce n’est pas une mesure qui permet de mesurer directement l’impact de l’empreinte carbone. Cependant, c’est un bon indicateur pour commencer. Si cet indicateur est mauvais, il y a peu de chance que le résultat sur les émissions de gaz à effet de serre soit différent.

Mutualisation des ressources d’infrastructure

De nombreuses entreprises ont fait le choix de détenir leur propre infrastructure, depuis les ordinateurs de bureau jusqu’aux serveurs de calcul et de données. Pourtant, une des réponses possibles à la consommation des infrastructures du numérique est la mutualisation des ressources. Pourquoi ? Parce que cette pratique peut générer des économies d’échelle via la virtualisation des serveurs. Les technologies de virtualisation permettent en effet de mieux utiliser les ressources physiques (et en particulier minimiser les équipements électroniques) tout en conservant la même puissance de calcul.

La mutualisation permet également d’accéder à du matériel de meilleure qualité et à des solutions de dernière génération. Je ne pense pas nécessairement au serveur. Ce qui consomme le plus dans les datacenters, c’est le refroidissement. Il existe beaucoup de solutions et beaucoup sont encore à venir.

Du cloud computing au green computing

On trouve déjà sur le marché des solutions d’infrastructure mutualisée : ce sont les offres de cloud. Les principaux fournisseurs de cloud sont très avancés dans le contrôle de la consommation énergétique. Ainsi, AWS, Azure et GCP, les trois principaux fournisseurs de cloud font de l’éco-conception de leurs datacenters et de la réduction des gaz à effet de serre un vrai argument commercial. Mais ce ne sont pas de simples mots. Il existe de nombreuses études sur internet qui mettent en avant l’efficience énergétique de leurs datacenters. Vous pouvez par exemple consulter cet article sur le web, cette étude réalisée par Paula Bajdor ou encore celle-ci menée par un groupe de chercheurs de l’université de Wollongong.

Le choix de migrer ou non sur le cloud est une décision structurante pour les systèmes d’information. Beaucoup de paramètres entrent en ligne de compte et l’informatique verte en est un nouveau. Cependant, je pense que les politiques environnementales internes des entreprises doivent prendre cette migration au sérieux. Il s’agit aujourd’hui d’un bon moyen de réduire son empreinte carbone.

D’ailleurs, l’impact environnemental est un argument qui devait également plaider pour le développement d’un acteur européen de cloud public. C’est un excellent moyen de faire fonctionner les acteurs de l’industrie qui développent des solutions IT durables. En effet, il existe toute une chaîne d’acteurs pour fournir les technologies nécessaires à l’atteinte des objectifs en termes d’empreinte carbone et de consommation énergétique. Il s’agit là pour moi d’un élément majeur de contrôle de la transition écologique et de notre futur, ou plutôt de celui des générations à venir.

Quelle démarche green IT pour les grandes entreprises françaises ?

Le green IT est avant tout un état d’esprit plus qu’une une façon de faire. J’ai présenté ici plusieurs notions et méthodes qui peuvent aider à atteindre des objectifs. Ce sont des moyens qui touchent essentiellement les services IT. Afin de s’inscrire dans la durée, il faut que cette démarche s’inscrive dans les valeurs des entreprises. Cette voie est selon moi la meilleure pour prendre place dans les stratégies car elle permet en particulier de garantir une stabilité de ces objectifs.

Un plan de transition vers l’informatique verte

Il faut définir les cibles et des objectifs quantifiables. Les cibles représentent à la fois l’ensemble des objectifs à atteindre (comme une migration vers le cloud par exemple), ainsi que les personnes à acculturer à cette démarche. Comme souvent dans ce genre de démarche, convaincre est un point déterminant pour la bonne mise en œuvre du projet.

Ensuite, il faut diffuser et acculturer les équipes au numérique responsable. Il s’agit de s’assurer que les objectifs sont bien partagés tout comme les moyens de les atteindre. Plus la démarche est claire et plus le projet a des chances d’emporter de l’adhésion, et donc de réussir.

Et enfin, il faut contrôler l’atteinte des objectifs. Pour cela, il est nécessaire de mettre en place des KPI permettant de mesurer le chemin parcouru et les gains obtenus. Il faut ensuite partager ces résultats avec l’entreprise pour que chacun prenne conscience du chemin parcouru. À cette fin, publier des pages dédiées sur l’intranet de l’entreprise, par exemple, est très utile.

Il s’agit ni plus ni moins d’une démarche de transformation de l’entreprise dans laquelle la notion de numérique responsable est au cœur de la démarche.

Un autre élément peut contribuer à la réussite de ces objectifs. Un peu comme pour le DevOps, il est possible de mettre en place des GreenOps. Il s’agit de personnes comprenant les objectifs fixés par l’entreprise. Ils ont également une bonne maîtrise des moyens de les atteindre. Ce dernier critère fait du personnel IT une cible de choix pour ce type de poste.

L’alliance entre le green IT et l’organisation du travail

Une meilleure gestion des ressources IT dans les phases de développement et d’exploitation est un point essentiel pour avoir un impact sensible sur l’empreinte carbone des entreprises. Dans cet article, je vous ai partagé quelques pratiques qui peuvent concourir à ces objectifs. Il est certain que ce n’est pas suffisant. La pandémie qui nous a frappés récemment nous a par exemple appris plusieurs choses importantes.

D’abord, pour ceux d’entre nous qui travaillent en utilisant principalement un ordinateur, de nombreux outils ont prouvé leur utilité. Ensuite, l’arrêt de nos déplacements en voiture sur une période sensible a eu des bénéfices visibles sur l’environnement. Une généralisation du télétravail pourrait aussi être une mesure écologique bénéfique. En revanche, il ne s’agit pas de ne plus aller sur son lieu de travail. L’aspect social du travail est un élément important pour tous et il ne faut pas le supprimer. Le plupart des personnes ayant eu la possibilité de conserver une part de télétravail l’ont saisie. Il est important que cet équilibre soit conservé.

Au mois de Mai 2022, il a fait plus de 50 degrés en Inde et on a dépassé les 30 degrés à Paris. En bref, l’été au mois de Mai. Si cet événement était occasionnel, on pourrait se poser la question de l’existence d’un réchauffement climatique. Mais il est aujourd’hui indéniable que des changements s’opèrent. Si on en croit les rapports du GIEC, il nous reste une (toute) petite marge de manœuvre, mais le temps presse. Le numérique responsable est une partie de la réponse, alors ne laissons pas notre chance passer.

Pas encore de commentaires

Publier un commentaire

Auteur

Gaël Dupire

Gaël a débuté sa carrière en tant que Software Consultant avant de devenir Senior Software Development Engineer à la Société Générale (SGCIB) puis chez Meritis il y a 10 ans.

Gaël est diplômé de l’UTC (Doctorat de Mathématiques appliquées).

Il est passionné par les maths et leur utilisation, Il adore coder, aussi bien en .Net, python, C++ ou Matlab.