lynx   »   [go: up one dir, main page]

BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース ソフトウェアの無駄削減で、開発者は気候変動への負荷を軽減できるのか?

ソフトウェアの無駄削減で、開発者は気候変動への負荷を軽減できるのか?

原文リンク(2025-04-28)

QCon Londonでの登壇の中、Holly Cummins氏は、パフォーマンスとサステナビリティーの高さは相関関係にある、つまりアルゴリズムの効率改善によるソフトウェアの高速化はエネルギー需要の削減につながる、と語った。同氏は、待機中のシステムの電源を切り、環境フットプリントの削減を意識するよう提唱している。 Cummins氏の見解では、生産性を向上させることで、開発者の作業自体を減らしながら達成成果を上げることが可能だという。

高性能なサステナブルシステムで、メモリフットプリントの削減や高スループットが実現できるほか、過剰なネットワークトラフィックの防止、柔軟なスケーリングのサポートが見込まれる。自社ソフトウェアには、こうした機能特性が求める声がもう上がっているとCummins氏は述べる。

原材料確保や製造工程で温室効果ガスが発生する点で、ハードウェアの製造は環境に影響を与えているとCummins氏は説明する。耐用年数を過ぎたハードウェアが行き着く先は、廃棄場だ。E-waste(電子廃棄物)は廃棄場所が必要となるばかりか、銅、プラチナ、コバルトといった枯渇性資源の流通不足をも引き起こす。

E-wasteはリサイクル工程に携わる人々に健康被害をもたらす可能性がある。従い、E-wasteの問題解決に向けた最善策は、廃棄量の削減であると同氏は提案している。

ソフトウェア設計では、要件定義の一部がアップデートされていないことが多い。時代と逆行する定義を特定して、設計内容をアップデートすることで、パフォーマンスの向上やレイテンシーの軽減、コスト削減、エネルギー節約が可能になると説明する。

Javaフレームワークはリフレクションを多用することが多く、これによって動作の動的な更新が可能になっています。しかし、モダンアプリケーションでは、こうした動的機能が必要ではなくなっています。昨今ではデプロイや実行の際に、アプリケーションのコンポーネントを交換する必要がありません。アプリケーションデプロイにコンテナが使用されるか、CI/CDのパッケージ化によりデプロイが自動化されていることが増えているからです。

環境フットプリント削減のため、Cummins氏は非稼働時にシステムの電源を切るよう提案している。バッチ処理の実行を週末に限定している企業でも、バッチ処理用のシステムが週末以外も稼働していることが多い。また、タスク実行をしない夜間でも、ステージング環境システムが稼働中になっていることだろう。

電源を落としたシステムが復旧後の動作で異常をきたし、痛手を被ったケースが過去にありました。こうした経験から、たとえ稼働していなくとも、システムの電源を切ることに神経質になっているのです。不要な電源を切ることで恐怖が生じるのは、コンピューターシステムの場合に限られています。部屋に戻ったときに照明を点灯しなおす作業が危険で複雑だからと、室内照明をつけたままでどこかへ行く人はいませんよね。

ボイラープレートコードは、どのアプリケーションにおいてもほぼ定型化されており、API設計や言語設計の一部に適切でない箇所があることを示している。同じ意味のコードを書き続ける時間は、開発者にとって無駄である、とCummins氏は語る。

ボイラープレートコードの解決に必要なのは、ボイラープレートを生成するAIではなく、応答幅の広いAPIです。

さらにCummins氏は、労働時間を削減して全体の業績を向上させた場合、同じ労働時間あたりの成果が上がるという持論には根拠があると述べている。

Henry Ford氏は、労働時間の長さが生産量の向上につながらないという自身の研究をもとに、労働時間を週6日48時間から週5日40時間に変更しました。また、近年の研究では、Ford氏の研究を裏付けるように、週4日勤務を試行している企業での離職率が42%減少していると報告されています。また驚くことに、同時に36%の増収まで達成していることが明らかになりました。

個人単位では、不要時に頭のスイッチを切ることが生産性の向上につながるとする研究結果も複数ある、とCummins氏は述べる。そのメカニズムのひとつに、休息中に活発になる脳の領域、デフォルトモードネットワークが挙げられる。デフォルトモードネットワークは問題解決や創造性に関与しており、多くの人がシャワーを浴びているときに素晴らしいアイデアを思いつくのはそのためだと彼女は言う。デフォルトモードネットワークは問題解決や創造性と関連があり、シャワー中に名案が浮かぶことが多い理由もそのためであると同氏は語る。

さらに、Cummins氏はキャパシティと需要の伸びの相関関係を著したジェボンズのパラドックスについても言及した。高速道路の幅を広げても所要時間が短縮されないのは、このためである。新しくできたレーン数の多い道に人が押し寄せ、結局は交通渋滞が解消されないからだ。こうしたジェボンズの発見を逆活用することで、得られるメリットがある。労働時間を削減することで、一日の労働時間あたりの負荷が減り、大きな達成ができるのだと同氏は結論付けている。

InfoQでは、ソフトウェアの無駄削減と環境フットプリントの軽減について、Holly Cummins氏と対談を実施した。

InfoQ: ソフトウェアの無駄をなくすには、どうすればよいのでしょうか?

Holly Cummins氏:動的機能は有料になっています。Javaアプリケーションの多くは、メリットが得られないにもかかわらず、税金のように使用料金を支払っている状況です。この問題解決にはQuarkusが欠かせません。フルスタックフレームワークでビルド時間でのさらなるライブラリの活用が可能になります。ビルド時間の変換により、アプリケーションのメモリフットプリントが最適化され、実行処理の高速化が実現されるからです。

また、微調整済みの生成AIモデルの比較では、より小型なモデルの方で、低コスト、低レイテンシーの実現によるエクスペリエンス向上が得られる場合があります。また、より複雑な問題では、複数の小型モデルとオーケストレーションモデルを結合すると、大きな効果を発揮することがあります。サイズの大きさが良し悪しに直結するという思い込みを見つめ直すいい機会になるでしょう。

InfoQ: どうすれば、環境フットプリントを抑えたシステム構築ができるのでしょうか?

Cummins氏: 電源スイッチのように切替可能な停止機能をシステム設計に盛り込むべきです。具体的に述べると、冪等性、レジリエンス、コードとしてのインフラ(IaC)があります。 程度の差はあれ、クラウドネイティブシステム設計には、こうした機能が欠かせません。 一度こうした機能をシステムでサポートできれば、稼動時間外の電源オフ処理が自動化できます。こうした機能のアプリを、「Light Switch Off(電源オフ)」と「Apps(アプリケーション)」を合わせて、LightSwitchOps(電源オプリ)と名付けました。

電源を切るだけでも、極めて大きな節約効果が生まれます。実例を挙げると、ベルギーのある学校が夜間にコンピュータの電源を切るスクリプト制御を導入したところ、年間12,000ユーロの節約に成功しています。また、米国のある企業が就業時間外にインスタンスの電源を切るようにしたところ、AWS利用料金の30%削減に成功しています。スクリプトを自作する必要もありません。 よりインタラクティブでユーザー側の意向を反映できるソリューションとしては、Daily Cleanで電源管理スケジュール化用のUIが便利です。

作者について

この記事に星をつける

おすすめ度
スタイル

特集コンテンツ一覧

BT
Лучший частный хостинг