アプリケーションの電気消費量を1/10に削減するソリューションの考察
インフレや円安圧力をエネルギー価格の高騰への対応や、脱炭素社会の達成のために、電力消費量の削減が、日本の社会的な課題となってます。ITを活用することによって、電力消費を低減するためのソリューションも開発・活用も可能になってます。あわせて、電力量削減はIT分野自体も、2040年カーボンニュートラル達成の目標が経済産業省から課されていることに加えて、全産業における電力消費における情報機器・ITのための消費比率は2.1%まで高まり、今後もその比率が次第に高まっていくことが予測されるため、IT自身の継続的な電力効率の向上が課題となっている認識です。
一方で、現在、企業向けの業務アプリケーションの分野で利用されているオープンな技術スタックは、2000年代に基礎を持つものが多く、近年の革新技術を取り入られていないため、その電力効率向上に寄与する成果の取り込みが立ち遅れています。
取り組みが立ち遅れている理由は、①情報システムに関するグリーンへの意識向上が進んでいない、②「グリーンなアプリケーション開発」の技術スタックが確立していないためどう構成したら良いか明確化されていない、③既存の業務アプリケーションの改修にコストがかかり過ぎる、④改修のよる効果がわかりにくいという問題があるためです。
この問題を解決するために、Green Software Fundation※の取り組みを参考にしつつ、②リファレンス実装を含んだ業務アプリケーション向けの技術スタックを策定、③改修するための技術/プロセスの提供(AIによる変換支援など)、④改修効果を明確化できる導入効果試算ツールがソリューションになると考えます。これらをセットにして、「アプリケーション環境負荷低減ソリューション」として提供にニーズがあれば、整備したいと考えてます。
技術スタックとして、想定してみたものは以下です。
②に対して技術スタック
CPU:Intel → Armアーキテクチャ
電力消費を1/3にする
消費電力では M2の方が有利だとの情報も有るが、サーバ製品として存在してるのだろうか?仮想化技術:Docker → SSVM(WebAssembly)
コンテナ技術を採用することだけでもメモリリソースなどの消費が少なくなるが、採用する仮想化技術を変える。
電力消費を1/5プログラミング言語:Java → GraalvmのJava or Rust
電力消費を1/2Webフレームワーク:
Spring → GraalvmベースのSpring or Actix-Web(Rust)アプリケーションアーキテクチャ
・<サーバサイド>マイクロサービス化
ビルドサイズを小さくする。関係ないところをビルドしない。
・ネットワークトラフィックを下げる(CDNとか、クライアントとか)
・<クライアントサイド>
むやみに動かさない・・・CPU使わない
大きなファイルをダウンロードさせない
③に対する改修技術
・既存のJavaアプリケーションからの画面抽出
・JavaからRustへ自動変換技術
④に対する改修効果ツール
既存のアーキテクチャやクラウドの諸元を入れると、想定削減効果から、カーボン・オフセット量、電力量、コスト削減効果などを計算するツール
最後に
上記のソリューションで、電力消費を大幅に削減可能なソリューションの輪郭があるように思えてる。
コンクリートな証拠をもっと積み上げた検証プロジェクトを自ら手掛けたいモチベーションがある。検証プロジェクトの対して、予算が出ると嬉しいのだけど。
データセンターの電気代を1/10にした場合の、経済的なインパクトなども、一度、計算できたら、経営へのインパクトなども評価したい(アセスメントツールのベースになるはず)
補足
単に、カーボンニュートラルを達成するだけなら、データセンターへの電力すべてをグリーン電力によって供給すれば、すべてのカーボンニュートラルにできるのではあるが、少ないグリーン電力を有効に活用すると考えた場合、このソリューションの有効性が引き続きあると考える。
関連情報と識別してるもの
グリーンソフトウェアファウンデーション
Green Software Foundation | GSF
https://greensoftware.foundation/Software Carbon Intensity (SCI) Specification
グリーンソフトウェア開発のための10の推奨事項 | GSF
https://greensoftware.foundation/articles/10-recommendations-for-green-software-development-japanese