paint-brush
我们的代码正在危害地球,我们需要碳感知设计模式经过@gsf
55,040 讀數
55,040 讀數

我们的代码正在危害地球,我们需要碳感知设计模式

太長; 讀書

Carbon Aware API 如何帮助我们测量和响应电力的碳强度 (gCO2/kWh),以减少通过软件产生的碳排放量。

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - 我们的代码正在危害地球,我们需要碳感知设计模式
Green Software Foundation (GSF) HackerNoon profile picture


让我们成为更清洁、更绿色世界的建筑师


云有一个更大的碳足迹比航空业。随着对推动商业和工业的软件需求的不断增长,数据收集和存储、云计算和人工智能从更绿色的能源中获取电力并显着减少碳排放变得更加紧迫。


通过将电力消耗转移到电力最清洁的时间和地点,编程可以缓解气候变化,并确保我们和子孙后代拥有更清洁、更安全的未来。这就是 Carbon Aware Computing,它有可能通过帮助我们选择和优化具有气候意识代码的无碳能源,使软件开发成为减缓气候变化的关键力量。


碳感知计算 101

碳感知计算的例子并不多——这就是为什么像 __ Carbon Hack 22 __这样的活动在众包新想法和加速软件编程创新以构建具有气候意识和能源响应的应用程序方面具有重要意义.

绿色软件基金会 __讨论了__carbon 意识,即当更多能源来自低碳“清洁”资源时做得更多,而当更多能源来自高碳“肮脏”资源时做得更少。作为开发人员,我们可以通过测量和响应电力的碳强度 (gCO2/kWh) 来做到这一点,这有助于创建代码以减少通过软件产生的碳排放量。

碳计算方法与应用


大致有3种方法:


  1. 位置转移:在更清洁的位置运行我们的软件;从比其他地区提供更多清洁能源(例如风能、太阳能、水)的地区采购电力。



2. Time Shifting:在更干净的时间运行我们的软件;当风能、水能或太阳能产生清洁能源时。


  1. 需求塑造:运行我们的软件,以便在电力清洁时做得更多,而在电力不干净时做得更少。



尽管有各种数据源,但构建碳感知应用程序具有挑战性,部分原因是其中一些数据源难以导航。这开源碳感知 API ,绿色软件基金会的开源工作组的一个项目,使它更容易。该 API 可帮助我们识别、分析和预测我们的应用程序在任何给定时间和任何给定地点的碳强度(电力的绿色或肮脏程度),并创建允许我们的软件根据位置提取清洁能源的代码,并在何时运行风正在吹或使系统能够跟随太阳光线。

API 非常简单。


如果您访问https://grnsft.org/hack22/api你会看到这样的网络界面:


我们可以将它连接到 API,例如瓦时电力地图,或者我们自己的数据集。在 Carbon Hack 22 期间(现在直到 2022 年 11 月 10 日),Carbon Aware API 将是连接到 WattTime 数据源供开发者使用。


时移:什么时间最好运行我的软件?


时移时,您可以使用/emissions/bylocations/best API 端点,在location字段中为其提供您感兴趣的位置。目前,位置名称映射到 Azure 区域名称。您还需要提供可以移动作业的时间窗口。需要在time字段中输入开始时间,在toTime字段中输入结束时间。提供的日期应采用 ISO 8601 格式。

您可以通过 Curl 请求直接从 API 请求数据,如下所示:


 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'


甚至只是浏览器中的普通 HTTP GET 请求。


作为输出,您将收到一个 JSON 对象数组,其中包含位置的 WattTime 区域名称、数据的时间、碳强度等级以及此数据有效的持续时间(WattTime 以 5 分钟的间隔提供数据)。该数据将是所请求位置的最低碳评级。此查询查看来自单个 24 小时窗口的数据,因此为了获得准确的结果,您可能需要请求多天的数据(例如,通过查看/emissions/bylocations端点)并检查这是否不是一个-碳强度的时间下降!

 [ { "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" } ]


位置转移:运行我的软件的最佳位置在哪里?


位置转移时,您可以使用与以前相同的端点 ( /emissions/bylocations/best ),但这次,请提供您感兴趣的多个位置以及您正在查找的单个时间。下面的示例查询提供了多个位置,考虑了uksouth、eastus 和 francecentral 。您可以为它提供时间窗口(类似于时移)或单个时间点,填写时间toTime字段。

您可以通过 Curl 请求直接从 API 请求数据,如下所示:

 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'


甚至只是浏览器中的普通 HTTP GET 请求。


作为输出,您将收到相同格式的响应,其中包含碳强度最低的位置,以及该读数的时间、碳强度的实际值以及该数据有效的持续时间。

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


需求塑造:如何调整用户行为?


要实现需求调整,请结合使用上述查询和其他查询来确定如何最好地调整应用程序的行为。

想象一下!


想象一下,如果您仍然从事那些耗能巨大的 ML 培训工作……但前提是为它们供电的电网使用可再生能源运行。想象一下,如果您的洗衣机仅在您当地电网完全由风力供电时运行。想象一下,您想每天同时运行 CI 管道,但要确保它仅在当前由绿色能源驱动的可用区(国家/地区)中运行。在所有这些情况下,您仍然会消耗与以前一样多的能源,但您会产生更少的温室气体排放。


无论您是轮询 Carbon Aware API、在本地容器中运行它还是作为命令行工具 (CLI),您都可以使用事件驱动开发模式将应用程序中的事件连接到电网中的触发器。您自己的本地电网或更环保、更远的电网。


根据您的用例,您可以允许整个设备、计算作业或应用程序仅在可再生能源上运行,方法是仅在本地电网为绿色时运行,或仅在当前由绿色能源供电的区域运行。

与其成为保持数字排放引擎运转的机械师,不如成为帮助减缓其速度同时甚至可能为重建做出贡献的工程师。


碳感知计算是可持续软件工程的下一个前沿。业内一些最有影响力的决策者对减少软件的碳排放很感兴趣,并通过借出他们的资源和贡献大量奖金来证明这一点碳黑 22 .埃森哲、埃维诺、波士顿咨询集团、Globant、高盛、英特尔公司、Thoughtworks、瑞银和 VMWare 等主要参与者在可持续技术领域拥有最优秀和最聪明的参与者,并共同贡献了 100,000 美元的奖金。


现在,软件工程师的工作也是构建对人类和地球危害较小的解决方案。碳感知计算是当前和未来几代软件工程师可以帮助实现这一目标的方式。探索碳感知 API参加 Carbon Hack加入近 350 名黑客和 70 项创新,以识别和解决降低电力碳强度的软件障碍。


由绿色软件基金会执行董事兼主席 Asim Hussain 撰写