En novembre 2022, la Green Software Foundation a organisé son premier hackathon, « Carbon Hack 2022 », dans le but de soutenir des projets logiciels dont l’objectif est de réduire les émissions de carbone. J’ai participé à ce hackathon avec le projet Carbon Optimized Process Scheduler avec mes collègues Kamlesh Kshirsagar et Mayur Andulkar, dans lequel nous avons développé une API pour optimiser la planification des tâches afin de réduire les émissions de carbone, et nous avons remporté le prix du projet « Most Insightful ».
Dans cet article, je vais résumer les concepts clés du « logiciel vert » et expliquer comment les ingénieurs en logiciel peuvent aider à réduire les émissions de carbone. Je parlerai également du hackathon de la Green Software Foundation, Carbon Hack, et de ses gagnants.
Qu’est-ce qu’un « logiciel vert » ?
Selon cette recherche de Malmodin et Lundén (2018), le secteur mondial des TIC est responsable de 1,4 % des émissions de carbone et de 4 % de la consommation d’électricité. Dans un autre article, on estime que les émissions du secteur des TIC en 2020 se situaient entre 1,8 % et 2,8 % des émissions mondiales de gaz à effet de serre. Même si ces estimations comportent une certaine incertitude, elles donnent une idée raisonnable de l’impact du secteur des TIC.
La Green Software Foundation définit le « logiciel vert » comme un nouveau domaine qui combine la science du climat, le matériel, les logiciels, les marchés de l’électricité et la conception de centres de données pour créer un logiciel économe en carbone qui émet le moins de carbone possible. Les logiciels verts se concentrent sur trois domaines cruciaux pour y parvenir : l’efficacité du matériel, la sensibilisation au carbone et l’efficacité énergétique.
Les praticiens du logiciel vert doivent être conscients de ces six points clés :
- Efficacité Carbone : Émet le moins de carbone
- Efficacité énergétique : Utiliser le moins d’énergie
- Sensibilisation au carbone : Viser à utiliser des sources d’électricité « plus propres » lorsque cela est possible
- Efficacité matérielle : Utiliser le moins de carbone incorporé
- La mesure: Vous ne pouvez pas vous améliorer dans quelque chose que vous ne mesurez pas
- Engagements climat : Comprendre le mécanisme de réduction du carbone
Que pouvons-nous faire en tant qu’ingénieurs logiciels ?
La lutte contre le réchauffement climatique et le changement climatique nous concerne tous, et puisque nous pouvons le faire en changeant notre code, nous pourrions commencer par lire les conseils d’Ismael Velasco, expert dans ce domaine. Ces principes sont extraits de sa présentation au Code For All Summit 2022 :
1. Vert par défaut
- Nous devrions déplacer nos applications vers un fournisseur ou une zone de cloud plus écologique.
Cet article rassemble trois principaux fournisseurs de cloud. Google Cloud a fait correspondre 100% de sa consommation d’électricité avec des achats d’énergie renouvelable depuis 2017 et s’est récemment engagé à décarboner complètement son approvisionnement en électricité d’ici 2030. Azur est 100 % neutre en carbone depuis 2012, ce qui signifie qu’ils éliminent autant de carbone chaque année qu’ils en émettent, soit en éliminant du carbone, soit en réduisant les émissions de carbone. AWS achète et retire des attributs environnementaux tels que des crédits d’énergie renouvelable et des garanties d’origine pour couvrir l’énergie non renouvelable utilisée dans des régions spécifiques. De plus, seule une poignée de leurs centres de données ont atteint la neutralité carbone grâce aux compensations.
- Assurez-vous que la zone de disponibilité où votre application est hébergée est verte
Cela peut être vérifié sur le site Web de la Green Web Foundation.
- Les transferts de données doivent être facultatifs, minimes et envoyés une seule fois
Empêchez les transferts de données inutiles. Supprimez les informations inutiles (vidéos, polices spéciales, JavaScript et CSS inutilisés). Optimisez les médias et minimisez les actifs.
- Réduisez les chargements de pages et la consommation de données grâce aux solutions de mise en cache ciblées des techniciens de service
- Utiliser un réseau de diffusion de contenu (CDN)
- Vous pouvez gérer toutes les requêtes des serveurs qui utilisent actuellement des énergies renouvelables grâce à Cloudfront
- Réduisez le nombre de requêtes HTTP et d’échanges de données dans vos conceptions d’API
- Suivez l’impact environnemental de votre application
Commencez rapidement et simplement, puis augmentez progressivement la complexité.
2. Conception en mode vert
- Les utilisateurs ont la possibilité de réduire les fonctionnalités pour moins d’énergie en utilisant la conception en mode vert. Vidéos audio uniquement, transcription audio uniquement
- Application Web en cache uniquement
- Zéro publicités/trackers
- Images facultatives : cliquer pour afficher, images en niveaux de gris
Le mode vert est une façon de concevoir un logiciel qui donne la priorité à l’extension de la durée de vie de l’appareil et à l’inclusion numérique plutôt qu’à une dégradation gracieuse. Pour y parvenir, il suggère de concevoir une compatibilité ascendante maximale avec les systèmes d’exploitation et les API Web, ainsi que d’offrir des versions minimales de CSS.
3. Partenariats verts
Nous devrions réfléchir à trois questions:
- De quelles connaissances manquons-nous ?
- Quels sont les réseaux manquants ?
- Que pouvons-nous proposer aux partenaires ?
Qu’est-ce que la Green Software Foundation ?
Accenture, GitHub, Microsoft et ThoughtWorks ont lancé la Green Software Foundation avec la Linux Foundation pour mettre l’accent du génie logiciel sur la durabilité. La Green Software Foundation est une organisation à but non lucratif créée sous la Linux Foundation dans le but de créer un écosystème fiable d’individus, de normes, d’outils et de « meilleures pratiques en matière de logiciels verts ». Il se concentre sur la réduction des émissions de carbone dont les logiciels sont responsables et sur la réduction des effets néfastes des logiciels sur l’environnement. De plus, il a été créé pour ceux qui travaillent dans l’industrie du logiciel et a pour objectif de leur fournir des informations sur ce qu’ils peuvent faire pour réduire les émissions de logiciels dont leur travail dans l’industrie du logiciel est responsable.
Carbon Hack 2022
Carbon Hack 2022 a eu lieu pour la première fois entre le 13 octobre et le 10 novembre 2022 et a été soutenu par les organisations membres du GSF Accenture, Avanade, Intel, Thoughtworks, Globant, Goldman Sachs, UBS, BCG et VMware. L’objectif de Carbon Hack était de créer des projets logiciels sensibles au carbone à l’aide du SDK GSF Carbon Aware, qui comporte deux parties, une API hébergée et une bibliothèque client disponible pour 40 langues. Le hackathon a réuni 395 participants et 51 projets qualifiés du monde entier.
Un logiciel sensible au carbone fait référence au moment où une application est exécutée à différents moments ou dans des régions où l’électricité est générée à partir de sources plus vertes, comme l’éolien et le solaire, car cela peut réduire son empreinte carbone. Lorsque l’électricité est propre, les logiciels sensibles au carbone travaillent plus fort ; quand l’électricité est sale, ça marche moins. En incluant des fonctionnalités sensibles au carbone dans une application, nous pouvons partiellement compenser notre empreinte carbone et réduire les émissions de gaz à effet de serre.
Gagnants du Carbon Hack 2022
La cagnotte totale de 100 000 $ US a été répartie entre les trois premiers gagnants et les gagnants de 4 catégories :
Lowcarb est un plugin qui permet une planification sensible au carbone des tâches de formation sur des clients répartis géographiquement pour le célèbre framework d’apprentissage fédéré Flower. Les résultats de ce plugin ont affiché 13% d’émissions de carbone en moins sans aucun impact négatif.
Ce cadre d’optimisation énergétique ajuste la limite de puissance du GPU et peut être intégré à n’importe quel travail de formation DNN. Le cas d’utilisation de Zeus a montré une réduction de 24 % des émissions de carbone et seulement une diminution de 3 % du temps d’apprentissage.
Circa est une bibliothèque légère – écrite en C – qui peut être installée à partir d’une version en utilisant une procédure de configuration et de création d’instructions d’installation. Il choisit le moment le plus efficace pour exécuter un programme dans une fenêtre de temps prédéterminée et contient également une commande de script simple qui attend l’énergie avec la plus faible densité de carbone sur une période de temps spécifiée.
Une bibliothèque qui fournit un ensemble de primitives de base pour créer des interfaces utilisateur sensibles au carbone pour toute application React ; à l’avenir, les développeurs aimeraient également proposer des versions pour d’autres frameworks populaires. Les développeurs ont prédit que les émissions mensuelles de Facebook seraient réduites de 1 800 tonnes métriques d’émissions brutes de CO2 s’ils utilisaient SUI Headless en réduisant d’un dixième de gramme de CO2e chaque visite tout en dégradant progressivement son interface utilisateur. Ceci est comparable au carburant utilisé par 24 camions-citernes ou à la consommation énergétique annuelle de 350 maisons.
Plug-in de planification implémenté pour Kubernetes. Pour déployer une planification sensible au carbone sur des clusters Kubernetes connectés géographiquement, les auteurs ont développé une politique de planification basée sur les statistiques d’émissions marginales de carbone obtenues à partir du SDK Carbon-aware.
Divulgation : C’était mon équipe Carbon Hack ! Afin de réduire les émissions de carbone, nous avons développé un service API avec une application d’interface utilisateur qui optimise la planification des tâches. Le problème a été modélisé à l’aide d’une programmation linéaire à nombres entiers mixtes et résolu à l’aide de Open Source Solver.
S’il était possible d’optimiser des centaines de processus industriels à haute énergie, les émissions de carbone pourraient être réduites jusqu’à 2 millions de tonnes par an.
Un exemple de scénario du secteur informatique montre comment déplacer le travail de seulement trois heures peut réduire les émissions de CO2 de près de 18,5 %. Cela se traduit par une économie d’environ 300 000 tonnes de CO2 par an lorsqu’il est appliqué à un million de processus informatiques.
83% des émissions de carbone sur le web proviennent des requêtes API. Cette équipe a développé un proxy inverse – une application qui se trouve devant les applications back-end et transmet les demandes des clients à ces applications – pour maximiser la quantité d’énergie propre nécessaire pour répondre aux demandes d’API (également accessible dans NPM).
Jetez un œil à tous les projets de Carbon Hack 2022 ici.
Conclusion
L’effort collectif et la coopération interdisciplinaire entre les industries et au sein de l’ingénierie sont vraiment importants pour atteindre les objectifs climatiques mondiaux, et nous pouvons commencer par ces deux cours que la Linux Foundation et Microsoft proposent concernant les logiciels verts et l’ingénierie logicielle durable. Aussi, nous pouvons commencer à débattre avec nos collègues sur la façon de réduire les émissions de carbone produites par nos applications. De plus, nous pourrions suivre les personnes sur leurs comptes de médias sociaux qui ont des connaissances sur ce sujet ; Je recommanderais les articles d’Ismael Velasco pour commencer.
Concernant cet article, si nous parvenons à écrire nos codes plus écologiquement, nos projets logiciels seront plus robustes, fiables, plus rapides et résistants à la marque. Les applications logicielles durables ne contribueront pas seulement à réduire notre empreinte carbone grâce à nos applications…