よりクリーンでグリーンな世界の建築家になろう
クラウドには
電気が最もクリーンな時間と場所に電力消費をシフトすることにより、プログラミングは気候変動を緩和し、私たちと将来の世代のためにクリーンで安全な未来を確保することができます.これが Carbon Aware Computing であり、気候に配慮したコードを使用してカーボンフリー エネルギーを選択および最適化するのを支援することで、気候変動を緩和する上でソフトウェア開発を重要な力にする可能性があります。
カーボン アウェア コンピューティングの例はあまり多くありません。そのため、__ Carbon Hack 22 __ のようなイベントは、新しいアイデアをクラウドソーシングし、ソフトウェア プログラミングのイノベーションを加速して、気候に配慮し、エネルギーに反応するアプリケーションを構築する上で重要です。 .
Green Software Foundation __ は、__carbon 認識について、より多くのエネルギーが低炭素の「クリーンな」ソースから得られる場合はより多くのことを行い、より多くのエネルギーが高炭素の「汚れた」ソースから得られる場合はより少ないことを行うという考えとして議論しています。開発者は、電気の炭素強度 (gCO2/kWh) を測定して対応することでこれを行うことができます。これは、ソフトウェアによって生成される炭素排出量を削減するためのコードを作成するのに役立ちます。
大きく分けて 3 つのアプローチがあります。
2.タイム シフティング:よりクリーンな時間にソフトウェアを実行します。風力、水力、または太陽光発電によってクリーン エネルギーが生成されている場合。
炭素を意識したアプリケーションを構築することは、さまざまなデータ ソースがあるにもかかわらず困難です。の
訪問すれば
次のようなAPIにフックできます
タイム シフティング:ソフトウェアを実行するのに最適な時間帯は?
タイムシフトするときは、 /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) として実行するかに関係なく、イベント ドリブン開発のパターンを使用して、アプリ内のイベントを電力網内のトリガーに接続できます。独自のローカル グリッドまたはより環境に優しい遠隔地のグリッド。
ユース ケースに応じて、デバイス全体、コンピューティング ジョブ、またはアプリケーションを再生可能エネルギーのみで実行できるようにすることができます。これには、ローカル グリッドがグリーンなときにのみ実行するか、現在グリーン エネルギーで電力を供給されているゾーンからのみ実行します。
デジタルエミッションのエンジンを動かし続けるメカニックになるのではなく、再構築に貢献しながら、それを遅くするのを助けるエンジニアになりましょう.
カーボン アウェア コンピューティングは、持続可能なソフトウェア エンジニアリングの次のフロンティアです。業界で最も影響力のある意思決定者の何人かは、ソフトウェアからの二酸化炭素排出量を削減することに関心を持っており、リソースを貸して多額の賞金を寄付することでそれを示しています。
人と地球の両方に害を与えないソリューションを構築することも、現在のソフトウェア エンジニアの仕事です。カーボン アウェア コンピューティングは、現在および将来の世代のソフトウェア エンジニアがこの目標を達成するのにどのように役立つかを示しています。
Green Software Foundation のエグゼクティブ ディレクター兼会長である Asim Hussain によって書かれました。