让我们成为更清洁、更绿色世界的建筑师
云有一个
通过将电力消耗转移到电力最清洁的时间和地点,编程可以缓解气候变化,并确保我们和子孙后代拥有更清洁、更安全的未来。这就是 Carbon Aware Computing,它有可能通过帮助我们选择和优化具有气候意识代码的无碳能源,使软件开发成为减缓气候变化的关键力量。
碳感知计算的例子并不多——这就是为什么像 __ Carbon Hack 22 __这样的活动在众包新想法和加速软件编程创新以构建具有气候意识和能源响应的应用程序方面具有重要意义.
绿色软件基金会 __讨论了__carbon 意识,即当更多能源来自低碳“清洁”资源时做得更多,而当更多能源来自高碳“肮脏”资源时做得更少。作为开发人员,我们可以通过测量和响应电力的碳强度 (gCO2/kWh) 来做到这一点,这有助于创建代码以减少通过软件产生的碳排放量。
大致有3种方法:
2. Time Shifting:在更干净的时间运行我们的软件;当风能、水能或太阳能产生清洁能源时。
尽管有各种数据源,但构建碳感知应用程序具有挑战性,部分原因是其中一些数据源难以导航。这
如果您访问
我们可以将它连接到 API,例如
时移:什么时间最好运行我的软件?
时移时,您可以使用/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),您都可以使用事件驱动开发模式将应用程序中的事件连接到电网中的触发器。您自己的本地电网或更环保、更远的电网。
根据您的用例,您可以允许整个设备、计算作业或应用程序仅在可再生能源上运行,方法是仅在本地电网为绿色时运行,或仅在当前由绿色能源供电的区域运行。
与其成为保持数字排放引擎运转的机械师,不如成为帮助减缓其速度同时甚至可能为重建做出贡献的工程师。
碳感知计算是可持续软件工程的下一个前沿。业内一些最有影响力的决策者对减少软件的碳排放很感兴趣,并通过借出他们的资源和贡献大量奖金来证明这一点
现在,软件工程师的工作也是构建对人类和地球危害较小的解决方案。碳感知计算是当前和未来几代软件工程师可以帮助实现这一目标的方式。
由绿色软件基金会执行董事兼主席 Asim Hussain 撰写