paint-brush
私たちの行動規範は地球に害を及ぼしています。炭素を意識した設計パターンが必要です@gsf
55,068 測定値
55,068 測定値

私たちの行動規範は地球に害を及ぼしています。炭素を意識した設計パターンが必要です

長すぎる; 読むには

Carbon Aware API を使用して、電気の炭素強度 (gCO2/kWh) を測定して対応し、ソフトウェアによって生成される炭素排出量を削減する方法。

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - 私たちの行動規範は地球に害を及ぼしています。炭素を意識した設計パターンが必要です
Green Software Foundation (GSF) HackerNoon profile picture


よりクリーンでグリーンな世界の建築家になろう


クラウドにはより大きな二酸化炭素排出量航空業界よりも商工業を推進するソフトウェアの需要が高まる中、より環境に優しいエネルギー源から電力を調達し、二酸化炭素排出量を大幅に削減するために、データの収集と保存、クラウド コンピューティング、AI の緊急性が高まっています。


電気が最もクリーンな時間と場所に電力消費をシフトすることにより、プログラミングは気候変動を緩和し、私たちと将来の世代のためにクリーンで安全な未来を確保することができます.これが Carbon Aware Computing であり、気候に配慮したコードを使用してカーボンフリー エネルギーを選択および最適化するのを支援することで、気候変動を緩和する上でソフトウェア開発を重要な力にする可能性があります。


カーボン アウェア コンピューティング 101

カーボン アウェア コンピューティングの例はあまり多くありません。そのため、__ Carbon Hack 22 __ のようなイベントは、新しいアイデアをクラウドソーシングし、ソフトウェア プログラミングのイノベーションを加速して、気候に配慮し、エネルギーに反応するアプリケーションを構築する上で重要です。 .

Green Software Foundation __ は、__carbon 認識について、より多くのエネルギーが低炭素の「クリーンな」ソースから得られる場合はより多くのことを行い、より多くのエネルギーが高炭素の「汚れた」ソースから得られる場合はより少ないことを行うという考えとして議論しています。開発者は、電気の炭素強度 (gCO2/kWh) を測定して対応することでこれを行うことができます。これは、ソフトウェアによって生成される炭素排出量を削減するためのコードを作成するのに役立ちます。

カーボン コンピューティングのアプローチと応用


大きく分けて 3 つのアプローチがあります。


  1. 場所の移動:よりクリーンな場所でソフトウェアを実行します。他の地域よりもクリーンなエネルギー(風力、太陽光、水など)の供給が多い地域から電力を調達する。



2.タイム シフティング:よりクリーンな時間にソフトウェアを実行します。風力、水力、または太陽光発電によってクリーン エネルギーが生成されている場合。


  1. デマンド シェーピング:ソフトウェアを実行して、電気がきれいなときはより多くのことを行い、汚れているときはより少ないことを行います。



炭素を意識したアプリケーションを構築することは、さまざまなデータ ソースがあるにもかかわらず困難です。のオープンソースの Carbon Aware API Green Software Foundation の Open Source Working Group のプロジェクトである は、それをより簡単にします。この API は、特定の時間と場所でのアプリケーションの炭素強度 (電気がどれだけ環境に優しく、汚れているか) を特定、分析、予測し、ソフトウェアが場所に基づいてクリーン エネルギーを取り出せるようにするコードを作成するのに役立ちます。風が吹いているか、システムが太陽光線を追跡できるようにします。

API は非常にシンプルです。


訪問すればhttps://grnsft.org/hack22/api次のような Web インターフェイスが表示されます。


次のようなAPIにフックできますワットタイム電気マップ、または独自のデータセットに。 Carbon Hack 22 の期間中 (2022 年 11 月 10 日まで)、Carbon Aware API はWattTime データ ソースに接続開発者が使用するため。


タイム シフティング:ソフトウェアを実行するのに最適な時間帯は?


タイムシフトするときは、 /emissions/bylocations/best API エンドポイントを使用して、場所フィールドに関心のある場所を提供できます。現在、場所の名前は 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 リクエストでも構いません。


出力として、場所の WattTime 地域名、データの時間、炭素強度評価、およびこのデータが有効な期間を含む JSON オブジェクトの配列を受け取ります (WattTime は 5 分間隔でデータを提供します)。このデータは、要求された場所の最低炭素評価になります。このクエリは 1 つの 24 時間枠のデータを調べるため、正確な結果を得るには、複数日のデータを要求し (たとえば、 /emissions/bylocationsエンドポイントを調べて)、これが 1 でないかどうかを確認することをお勧めします。炭素強度の時間低下!

 [ { "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 ) を使用できますが、今回は、関心のある複数の場所と、探している 1 つの時間を提供します。以下のクエリの例では、uksouth、eastus、および francecentralを考慮して、複数の場所が提供されています。 timeおよび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 . Accenture、Avanade、Boston Consulting Group、Globant、Goldman Sachs、Intel Corporation、Thoughtworks、UBS、VMWare などの主要企業は、持続可能なテクノロジーに参加し、合計で 100,000 米ドルの賞金を寄付しています。


人と地球の両方に害を与えないソリューションを構築することも、現在のソフトウェア エンジニアの仕事です。カーボン アウェア コンピューティングは、現在および将来の世代のソフトウェア エンジニアがこの目標を達成するのにどのように役立つかを示しています。 Carbon Aware API を調べるカーボンハックに参加350 人近くのハッカーと 70 のイノベーションに参加して、電力の炭素強度を削減するソフトウェアの障壁を特定して解決します。


Green Software Foundation のエグゼクティブ ディレクター兼会長である Asim Hussain によって書かれました。