paint-brush
Notre code nuit à la planète, nous avons besoin de modèles de conception sensibles au carbonepar@gsf
55,068 lectures
55,068 lectures

Notre code nuit à la planète, nous avons besoin de modèles de conception sensibles au carbone

Trop long; Pour lire

Comment l'API Carbon Aware peut nous aider à mesurer et à répondre à l'intensité carbone de l'électricité (gCO2/kWh) pour réduire la quantité d'émissions de carbone générées par le logiciel.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Notre code nuit à la planète, nous avons besoin de modèles de conception sensibles au carbone
Green Software Foundation (GSF) HackerNoon profile picture


Devenons les architectes d'un monde plus propre et plus vert


Le nuage a un plus grande empreinte carbone que l'industrie du transport aérien. Avec la demande croissante de logiciels pour stimuler le commerce et l'industrie, il est de plus en plus urgent de collecter et de stocker des données, de l'informatique en nuage et de l'IA pour s'approvisionner en électricité à partir de sources d'énergie plus vertes et générer beaucoup moins d'émissions de carbone.


En déplaçant la consommation d'électricité vers des moments et des endroits où l'électricité est la plus propre, la programmation peut atténuer le changement climatique et assurer un avenir plus propre et plus sûr pour nous et les générations futures. C'est le Carbon Aware Computing, et il a le potentiel de faire du développement de logiciels une force essentielle dans l'atténuation du changement climatique en nous aidant à choisir et à optimiser l'énergie sans carbone avec un code respectueux du climat.


Informatique sensible au carbone 101

Il n'y a pas beaucoup d'exemples d'informatique sensible au carbone - c'est pourquoi des événements comme __ Carbon Hack 22 __ sont importants pour le crowdsourcing de nouvelles idées et l'accélération de l'innovation dans la programmation logicielle pour créer des applications qui sont à la fois soucieuses du climat et sensibles à l'énergie .

La Green Software Foundation __ présente la __sensibilisation au carbone comme l'idée d'en faire plus lorsque plus d'énergie provient de sources «propres» à faible émission de carbone et d'en faire moins lorsque plus d'énergie provient de sources «sales» à forte émission de carbone. En tant que développeurs, nous pouvons le faire en mesurant et en répondant à l'intensité carbone de l'électricité (gCO2/kWh), ce qui peut aider à créer du code pour réduire la quantité d'émissions de carbone générées par les logiciels.

Approches et application du calcul du carbone


Il existe en gros 3 approches :


  1. Déplacement d'emplacement : exécuter notre logiciel dans un endroit plus propre ; l'approvisionnement en électricité d'une région où il y a un plus grand approvisionnement en énergie propre (par exemple, éolienne, solaire, eau) que d'autres.



2. Time Shifting : Exécution de notre logiciel à un moment plus propre ; lorsque de l'énergie propre est générée par le vent, l'eau ou l'énergie solaire.


  1. Formulation de la demande : exécuter notre logiciel pour qu'il en fasse plus lorsque l'électricité est propre et moins lorsqu'elle est sale.



La création d'applications sensibles au carbone est difficile, malgré diverses sources de données, en partie parce que certaines de ces sources sont difficiles à naviguer. La API open source Carbon Aware , un projet du groupe de travail Open Source de la Green Software Foundation, facilite les choses. Cette API nous aide à identifier, analyser et prédire l'intensité carbone (à quel point l'électricité est verte ou sale) de notre application à un moment donné et à un endroit donné et à créer un code qui permet à notre logiciel d'extraire de l'énergie propre en fonction de l'emplacement, de fonctionner quand le vent souffle ou permettent aux systèmes de suivre les rayons du soleil.

L'API est extrêmement simple.


Si vous visitez https://grnsft.org/hack22/api vous verrez l'interface Web comme suit :


Nous pouvons l'accrocher à des API comme Temps de watt et Cartes d'électricité , ou à nos propres ensembles de données. Pendant toute la durée du Carbon Hack 22 (maintenant jusqu'au 10 novembre 2022), l'API Carbon Aware sera connecté à une source de données WattTime pour les développeurs à utiliser.


Time Shifting : Quel est le meilleur moment pour exécuter mon logiciel ?


Lors du décalage temporel, vous pouvez utiliser le point de terminaison API /emissions/bylocations/best , en lui fournissant l'emplacement qui vous intéresse dans le champ d' emplacement . Actuellement, les noms d'emplacement sont mappés aux noms de région Azure. Vous devez également fournir la fenêtre de temps pendant laquelle vous pouvez déplacer le travail. L'heure de début doit être saisie dans le champ time et la fin dans le champ toTime . Les dates fournies doivent être au format ISO 8601.

Vous pouvez directement demander des données à l'API via une requête Curl comme ceci :


 curl -X 'GET' \ 'https://carbon-aware-api.azurewebsites.net/emissions/bylocations/best?location=uksouth&time=2022-10-08T00%3A00%2B01%3A00&toTime=2022-10-08T23%3A59%2B01%3A00' \ -H 'accept: application/json'


Ou même juste une requête HTTP GET normale dans le navigateur .


En sortie, vous recevrez un tableau d'objets JSON, avec le nom de la région WattTime pour l'emplacement, l'heure des données, l'indice d'intensité carbone et la durée pendant laquelle ces données sont valides (WattTime fournit des données à des intervalles de 5 minutes). Ces données seront les notes de carbone les plus basses pour l'emplacement demandé. Cette requête examine les données d'une seule fenêtre de 24 heures. Par conséquent, pour obtenir un résultat précis, vous pouvez demander des données sur plusieurs jours (par exemple, en examinant le point de terminaison /emissions/bylocations ) et vérifier s'il ne s'agit pas d'un seul. temps de baisse de l'intensité carbone !

 [ { "location": "UK", "time": "2022-10-08T00:45:00+00:00", "rating": 351.98767912, "duration": "00:05:00" }, { "location": "UK", "time": "2022-10-08T00:40:00+00:00", "rating": 351.98767912, "duration": "00:05:00" }, { "location": "UK", "time": "2022-10-08T00:35:00+00:00", "rating": 351.98767912, "duration": "00:05:00" } ]


Changement d'emplacement : quel est le meilleur emplacement pour exécuter mon logiciel ?


Lorsque vous changez d'emplacement, vous pouvez utiliser le même point de terminaison qu'auparavant ( /emissions/bylocations/best ), mais pour cette fois, indiquez plusieurs emplacements qui vous intéressent et une seule heure pendant laquelle vous recherchez. L'exemple de requête ci-dessous contient plusieurs emplacements, en prenant en compte uksouth, eastus et francecentral . Vous pouvez lui fournir une fenêtre de temps (similaire au décalage temporel) ou un seul point de temps à la place, en remplissant les champs time et toTime .

Vous pouvez directement demander des données à l'API via une requête Curl comme ceci :

 curl -X 'GET' \ 'https://carbon-aware-api.azurewebsites.net/emissions/bylocations/best?location=uksouth&location=eastus&location=francecentral&time=2022-10-08T09%3A00%2B01%3A00' \ -H 'accept: application/json'


Ou même juste une requête HTTP GET normale dans le navigateur .


En sortie, vous recevrez le même format de réponse, avec les emplacements ayant la plus faible intensité de carbone, ainsi que l'heure de cette lecture, la valeur réelle de l'intensité de carbone et la durée pendant laquelle ces données sont valides.

 [  {    "location": "FR",    "time": "2022-10-08T08:00:00+00:00",    "rating": 242.21832558,    "duration": "00:05:00"  } ]


Formulation de la demande : comment ajuster le comportement des utilisateurs ?


Pour implémenter la mise en forme de la demande, utilisez une combinaison des requêtes ci-dessus et d'autres pour déterminer la meilleure façon d'ajuster le comportement de votre application.

Imagine ça!


Imaginez si vous effectuiez encore ces travaux de formation ML énergivores... mais seulement lorsque le réseau électrique qui les alimente fonctionnait avec des énergies renouvelables. Imaginez si votre machine à laver ne fonctionnait qu'au moment où votre réseau local était entièrement éolien. Imaginez que vous vouliez exécuter votre pipeline CI simultanément chaque jour, mais que vous vous assuriez qu'il ne fonctionne que dans une zone de disponibilité (pays) actuellement alimentée en énergie verte. Dans tous ces cas, vous consommeriez toujours autant d'énergie qu'avant, mais vous généreriez beaucoup moins d'émissions de gaz à effet de serre.


Que vous interrogez l'API Carbon Aware, que vous l'exécutiez dans un conteneur local ou en tant qu'outil de ligne de commande (CLI), vous pouvez utiliser les modèles de développement piloté par les événements pour connecter les événements de votre application aux déclencheurs du réseau électrique. Votre propre réseau local ou un réseau plus vert et distant.


En fonction de vos cas d'utilisation, vous pouvez autoriser l'intégralité d'un appareil, d'une tâche informatique ou d'une application à fonctionner exclusivement avec de l'énergie renouvelable, soit en ne fonctionnant que lorsque le réseau local est vert, soit en fonctionnant uniquement à partir de zones actuellement alimentées en énergie verte.

Au lieu d'être des mécaniciens qui maintiennent le moteur des émissions numériques en marche, soyons les ingénieurs qui aident à le ralentir tout en contribuant peut-être même à la reconstruction.


L'informatique sensible au carbone est la prochaine frontière de l'ingénierie logicielle durable. Certains des décideurs les plus influents de l'industrie souhaitent réduire les émissions de carbone des logiciels et montrer qu'en prêtant leurs ressources et en versant des prix importants à Carbon Hack 22 . Des acteurs clés comme Accenture, Avanade, Boston Consulting Group, Globant, Goldman Sachs, Intel Corporation, Thoughtworks, UBS et VMWare ont leurs meilleurs et plus brillants participants en matière de technologie durable et contribuent collectivement à hauteur de 100 000 USD en capital.


C'est maintenant aussi le travail des ingénieurs en logiciel de construire des solutions moins nocives pour l'homme et la planète. L'informatique sensible au carbone est la manière dont les générations actuelles et futures d'ingénieurs en logiciel peuvent aider à atteindre cet objectif. Découvrez l'API Carbon Aware et participer au Carbon Hack pour rejoindre près de 350 hackers et 70 innovations dans l'identification et la résolution des barrières aux logiciels qui réduisent l'intensité carbone de l'électricité.


Écrit par Asim Hussain, directeur exécutif et président, Green Software Foundation