Devenons les architectes d'un monde plus propre et plus vert
Le nuage a un
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.
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.
Il existe en gros 3 approches :
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.
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
Si vous visitez
Nous pouvons l'accrocher à des API comme
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" } ]
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.
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 à
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.
Écrit par Asim Hussain, directeur exécutif et président, Green Software Foundation