新春特別企画

2022年、カーボンニュートラルへの動きがソフトウェア/ITシステムの世界にやってくる

グリーンやカーボンニュートラルの話が急速に盛り上がってきている中、ITシステム開発、ソフトウェア開発にも大きな影響を及ぼしそうです。現状と今後の展望、2022年を迎えたいま知っておきたいことなど、皆さんにお話を伺いました。⁠聞き手:濱野賢一朗⁠

IT分野におけるカーボンニュートラルの現状

濱野:昨年の中盤くらいから、急速に「カーボンニュートラルに向けた課題」⁠グリーンに関する取り組み」が取り上げられるようになってきました。ITサービス産業・ソフトウェア分野では進んでいるのでしょうか?

村岡:長い間、環境エネルギー分野に携わっていますが、今回の動きはこれまでとは違う大きな流れになっていますね。これまでは規制主導で動いている話が中心でした。自動車リサイクル法ができると、自動車の新車を買う時にリサイクル費用を積み立てる制度ができるといったような流れでした。しかし、今回は制度よりもイニシアチブの方が強いという構図になっています。SBT(Science Based Targets)などのイニシアチブの方が企業へのインパクトが大きいというような時代がもう来てしまったんだなあ、と感慨深く見ています。

Green Growth=環境をキーワードにして成長していこう、欧州だったらコロナの後の経済復興をGreenリカバリー=グリーンを掲げて経済復興していこう、という動きになって、投資を集めています。そのなかで、グリーン投資のかなりの部分がデジタルサービス提供者に影響があって、またとないビジネスチャンスが訪れているといえます。

一方で、これまでは、ぽっかり忘れられている領域であったかなと感じているのが「ソフトウェアそのもののグリーン化」の話です。1つのトランザクションを行うときの消費エネルギー量をどれだけ減らすかみたいなところ、ソフトウェアのグリーン化については、今まで実はあまり話題になってなかったと私は認識しています。グリーンICTとか言い始めた時も、結局のところ、半導体のチップだとか、サーバといったハードウェアの方に寄っていて、ソフトウェアに注目が実は集まってなかったと思うんですね。今回は、ソフトウェアやITシステム自体をグリーン化しようという動きが出てきたのかな、と認識しています。

画像

村岡元司(むらおかもとし)

NTTデータ経営研究所 執行役員/パートナー/ 社会基盤事業本部 本部長/社会・環境戦略コンサルティングユニット ユニット長/社会システムデザインユニット ユニット長/エコビジネス・サポートセンター センター長

環境エネルギー分野を中心に、地球温暖化対策、事業戦略策定、スマートコミュニティ構想策定、環境インフラ輸出支援、エネルギーを起点としたまちづくりなど、幅広い実績を持つ。

風戸:ITシステムのグリーン化は、必ずしも忘れられていたわけではないと思います。たとえば、スマートフォンが普及し始める頃だと、電池持ちの研究や取り組みがいっぱい行われました。ただ、その時も、ハードウェアが中心でした。特に、サーバやエッジの消費電力等はあまり意識されてきていなかったかもしれません。性能をよくするとか、メモリを使わなくするようなパフォーマンスの研究は結構あるんですけれども、消費電力でサーバサイドというのは一部の企業、大規模コンピューティングに取り組むGoogleなどが主に研究している分野であって、民主化されてないという感じでした。

ここ数年の論文や学会誌を読んでいると、ソフトウェア開発者の意識改革をちゃんとしようという話が出てきています。ソフトウェア工学のトップレベルの国際会議にICSE(International Conference on Software Engineering)がありますが、研究開発トラックにサステナブル・グリーンがしっかり入ってきました。

インセンティブをちゃんと与えましょうとか、教育もちゃんとしなければ、ソフトウェア開発ツールや方法論もグリーンなものを意識しようと。忘れ去られていたというより、今まであまり見てこなかったところに光が当たってしまったと言うんですかね。なので、急ピッチで整備しないといけない状況になっています。

画像

風戸広史(かざとひろし)

NTTデータ システム技術本部 生産技術部 ソフトウェア技術センタ 課長

ソフトウェア工学が専門。近年は、ローコードプラットフォーム等でいかにDXを早くお客様の手元に届けるのかに取り組んできた。最近は、グリーンとの二重生活中。

ソフトウェアの電力測定に関する標準化は進んでいる?

末永:ソフトウェアのグリーン化、省エネや再生エネルギーの活用の取り組みを進める以前に、現在の消費電力や環境負荷を正しく認識することが先立って重要になるわけですが、その領域もこれからという感触を持っています。たとえば、ソフトウェアからみた消費電力測定のルール作りは、まだコンセンサスが取れていない状況といえます。あなたが動かしたこのアプリケーションは、このくらいの消費電力でしたよとレポートするレベルから難しいわけです。

いまは、いろんな人たちが、プログラム動かして、コンセントにテスターを差し込んで測ってみましょうとか、こう測ったら情報が取れるんじゃないかって試行錯誤している状況です。稼働するシステムの本番環境の中で組み込んでいけるのは、これからですね。

当然サーバの上で何かソフトウェアを動かしますといっても、サーバの上には、アプリケーションのほかにもOSが動くためのいろんなプロセスが存在していて、結局コンセントで測ったものが100%全部そのアプリケーションのために動かされているかというと、当然そうではない。仮想化とかコンテナ等がぎゅっと集約されたようなシステムだと、あなたのアプリケーションはその中でどれくらい使っていたのですか?というのは簡単に按分できるものでもなかったりします。SaaSなどマルチテナントでアプリケーションが共用されているとすると、どのユーザーが使った分か、といった難しい問題がある。

なので、ちゃんと自分たちのシステムがこれだけCO2の排出量が少ないとか、環境負荷が低く作られてますっていうのをアピールするためにも、いろんな人たちを巻き込んで認識をあわせて、標準作りしていくことになりそうです。自分は、いまマイクロソフト、GitHub、NTTデータなどで運営するGreen Software Foundationでこの課題に取り組もうと活動していたりしますが。

画像

末永恭正(すえながやすまさ)

NTTデータ 技術開発本部 先進コンピューティング技術センタ テクニカルリード

Javaのオープンソース実装OpenJDKの開発者(レビュア、コミッタ)

以前は、ソフトウェアを燃費度外視でいかにぶん回して、いかに性能を出すかに生きがいを感じていたが、最近は、ソフトウェアを実際グリーンにどうやって動かすのか、余分なアプリケーションを動かさないでできるだけギュッと詰むか、ソフトウェアの燃費をどう良くしていくのか、に取り組んでいる。

風戸:ハードウェア全体の消費電力しかわからないと、削減する取り組みにはつながらないですよね。プロセスとかスレッド単位とか、関数などメソッドレベルでわからないとチューニングできないんですね。このメソッドで電力いっぱい使ってるな、というところまでわからないと。

ただ、いま進んでいる研究は、そういうレベルで細分化して測定するというよりは、スレッドやプロセスレベルでなんとか電力をうまく推定しましょうと。たとえば、CPU使用量、メモリの使用量みたいな性能数値とあわせてベンチマークを取っておいて、おおまかな電力との相関を把握しておくんです。その電力との相関モデルがわかると、CPUとかIO、メモリといった性能数値から、プロセスごと・スレッドごとの電力がおおよそ推定できます。間接的に測る戦略です。

ソフトウェアの工夫で消費電力を下げることが重要視される時代になる?

風戸:このアルゴリズムはよりGreenであるとか、このリスト構造は並べ替えるとか挿入するときは電気使わないんだけど、書き込む時に電気を使いますとか、そういう最適化のナレッジがあります。どのリスト構造を使うか、どのマップを使うか、どのデータ構造を選択する、みたいな研究は結構あります。そういうミクロのレベルを積み上げて、大きなレベルでソフトウェアをよくしていくところは、まだまだこれから研究するべき分野なのかなというふうに思います。

末永:CPUメーカーが提供するコンパイラ開発者向けの最適化マニュアルでも、読んでいくと、この命令とこの命令を組み合わせると、実は電力的に効率的ですよみたいなことがこっそり書いてあったりします。

だけど、これまでみんなパフォーマンスの方に意識がいっていて、電力って二の次、下手したら気にしないぐらいだったと思います。これから、脚光が浴びる時代がくるのかなと。実際、私の場合はOpenJDKの開発に携わっていますけど、JavaでもAPIリファレンスで実はこっちの方が効率がいいといったことが示されてきています。

マシンパワーはジャブジャブあるから、とりあえず動くもの作ればいいよっていったものからもう一歩踏み込んで、ちゃんと効率のよいアプリケーションに最適化できるよという職人が求められる世界が来そうなのかなとは感じています。

開発時と運用時のソフトウェアによるCO2排出量について

村岡:ITシステム開発と同じように物づくりしていく世界に、建物の建設があると思います。建物がCO2をどれだけ出しているかっていうのをライフサイクルで見ると、建設時に建設会社が出す排出量と建物を運用している最中の排出量で比べると、圧倒的にランニングのときのビルの運用時の排出量が大きいといわれています。

ソフトウェアも同じで、開発時の排出量と運用中の排出量だと、ランニングのところが圧倒的に大きいということになるのでしょうか。

末永:ソフトウェアの場合は難しいですね。建設とは違った見方になりそうです。最近の開発とかだと、ソースコード 1行直しただけでも、それをプッシュしコミットした瞬間に、いろんなテストケースが一斉に実行されたりします。最後パフォーマンステストまで全部走らせますっていったら、結局、ランニングと変わらないか、もしくは上回っちゃうぐらいのものを消費する可能性もあるかなと感じています。

なので、Green Software Foundationの活動でも、CI/CDパイプラインに組み込んで、パイプラインを回した時に、このテストケースではこれぐらいのCO2排出量です、と品質レポートと一緒に出せないかという動きもあったりします。

風戸:動いてる時にどれくらい出てますかっていうのは、標準がいくつかあります。測り方なども定義されていて、APEE(ISO/IEC 23544、Application Platform Energy Effectiveness)など国際標準もできてきました。Green Software Foundationでも、ソフトウェアが動いているときのSCI(Software Carbon Intensity)という考え方も出てきています。

一方で、開発している最中に何の活動をして、どれくらい排出しているかというのは、よくわかっていません。また、運用中の測り方がわかったとすると、モニタリングして最適化していくというやり方が必要だと思うんです。そういう仕組みを埋め込むのも、やはり開発中だと思うんですね。まだまだ解決すべき課題がたくさんあります。

開発者自身のサステナビリティは?

濱野:CO2排出量に限らず、開発者やITシステムにとってのサステナビリティも話題になってきそうですね。

風戸:開発中に、手戻りが少ない開発をしてあげると、仕事自体が減るんですよね。テストも1から10まで全部するんじゃなくて、影響範囲だけをテストすれば、消費電力も少なく、仕事自体も減るので労働生産性が上がります。私たちがやるべきなのは、徹夜して消費電力を見て減らせっていうことではなくて、そこの部分ですね。

コピペのコードで汚くしていると、どんどん保守も難しくなっていくんですよね。最も使用電力の少ないソフトウェアというのは、実は長きにわたって運用・改善が続けられるソフトウェアだ、と持っていけるのであれば、それ自体がサステナブルなんじゃなかと。1番もったいないのは、いまあるものを完全に捨てて、ソフトウェアを作り直しちゃうことだと思ってるんですね。なので、ソフトウェアもハードウェアも捨てないっていう意味でのサステナブルができるのであれば、開発者も幸せでシステムも長生きするんですかね。

人生100年時代と言ってるニュアンスで、もっと長生きできるソフトウェアを作りたい。クラウド技術等の進展で、できると思ってるんですね。

これまではどちらかというと、ハードウェアの寿命が尽きたので、このタイミングで変えましょうと。7~8年経ったらプログラミングとかミドルウエアの技術も変わってて、新しく作り直しましょうって言ってたんですけど、プラットフォームの上の領域と下の領域で寿命を変えられるのであれば、まあクラウドの裏側にあるハードウェアってのはちょっと古くなったからもう変えます、でもアプリケーションのレイヤはあまり変わってませんというのであれば、もう少し長生きできるかなと思いますね。その辺が、ソフトウェアのサステナビリティなんだなと思います。

村岡:サーキュラーエコノミーがソフトウェアの世界にもあるんだなと感じました。たとえば、物づくりの世界では、長寿命化や再生リサイクルみたいな考え方がマジョリティーになりつつあります。できる限り天然資源の消費を減らして、循環資源で回していきましょうと。フィジカルな世界の中では、環境配慮型設計の中に組み込まれる要素になってきています。おそらくそれと同じ形のものがソフトウェアの中でも起こるといいですね。

濱野:アプリケーション開発者からすると、たとえばJavaの世界に乗っておけば、プログラミング言語にJavaをこのまま使い続けても、自然とサステナブルになっているっていう方が嬉しいと思うんですよね。今書いてあるコードも20年先も50年先も動きますと。だけど、どんどんハードウェアの使いこなし術や最適化技術は高まっていて、同じコードがめっちゃ効率的にどんどん動いていく、エネルギー的にも、みたいな。そういう世界になっている方が楽チンな気がするんですけど、Javaはそういう方向を目指してたりはしないんですか?

末永:Javaも今までだとIntelやSPARCの上で動くっていうのが強かったんですけど、最近だとARMプロセッサへのポーティングなど、ほかのアーキテクチャへの対応も進んできています。ARMに関しては、もうかなり完成度が高いかな。実際、オフィシャルにARM向けのJavaがリリースされていて、私も検証なんかをしたのですが、ちゃんとした品質でテストケースも通っています。さらに、RISC-Vへの対応プロジェクトも立ち上がったりしてきています。

この後、技術がどんどん進んでいって、よりGreenというか、より低炭素社会にフィットするような新しいコンピューティングが出て来たときに、Javaみたいな言語とその仮想マシンが間に1個入って吸収してくれるんで、当然、世の中が求めれば、JavaとかPythonといったメジャー言語って、よりGreenなプラットフォームに更新・適用して行くだろうと見ています。当然そこで適用していけば、元々は別のとこで動くところを狙って書いたプログラムも、新しいプラットフォームで特に何も手を加えずに動くっていう世界がもうある意味すぐそこっていうか、少なくともその86系プロセッサーとARMっていう世界では、そういう世界が出来上がっているので、同じようなことが、もっと長いスパンで普通に起こりうるんじゃないかな、と思います。

RISC-Vは、数年というスパンで考えたら、けっこう面白いことになるんじゃないかなって。RISC-Vのより効率的なコアを出すようなチップベンダーが現れたら、エンタープライズの世界も塗り替えるようなことが起こるんじゃないかな、っていうのは、ちょっとワクワクして見ています。

風戸:そうそう、Javaをネイティブにコンパイルするってやつが熱いですね。性能が上がるだけじゃなくて、実は消費電力が下がるんじゃないかと思っています。Spring Frameworkを使ってWebアプリを作ったりもしますが、Springネイティブというプロジェクトがあって、ネイティブにコンパイルできます。本当はすごい難しい技術らしいです。Spring Frameworkってreflectionを使って動的にクラスの依存関係を付けるので、事前にコンパイルするのがすごく難しいんですが、それをなんとか解決しつつあると。なので、作ったアプリケーションが簡単に他の言語、たとえばGoやRustのレベルまで速くなるとか、消費電力が低くなるのであれば、アプリを作って物凄くグリーンになったコンテナで動く、みたいなことが来るかもしれない。

末永:今の話を聞いて、そうだったと思ったんですけど、オブジェクト指向の継承などの話されてましたけど、確かにJVMの実装を見ると、普通にただメソッドを呼ぶ場合と、バーチャル呼び出しだったりインターフェース呼び出しだったりすると、レシーバークラスって、継承関係の中で、どのクラスの管轄のあのメソッドを呼び出せばいいんだ、っていうのをいちいち探索する処理が走るんですね。確かにそこの部分で、余計な命令が動いているので、結果は同じだったとしても、1発バシッと呼び出すのに比べれば、CPUが動くメモリが動くイコール電気を食うなっていうのは、確かにその通りだなと。ネイティブイメージなんかでそこの部分が解決された状態であれば、バイパスできて余分な処理を挟まないので、AOTかJITか以外の部分でも、省電力化のメリットがあるのかなって。

風戸:Greenの論文とか読んでると、間接層が入ると電気の消費が悪くなるんですね。オブジェクト指向でクラスを継承させたりとか、デコレーターパターンなどのデザインパターンを使うと保守しやすくなるっていうので、ソフトウェアエンジニアリングでは頑張ってきたんですけど、そういう間接層を入れれば入れるほど消費電力が悪くなるという研究も出てきています。そこで、我々が書きやすく、ソフトウェア書いた後にネイティブにすることで、なんとかエコにするという組み合わせが流行るんじゃないかなと期待しています。

末永:私たちも今Javaネイティブイメージ等がどのくらい使えるのか取り組んでいるところですけど、ぜひ実際測ってみて、またみんなで議論したいです。

Green by ITのところで、2022年に向けてこれが注目だ!というのを挙げると?

下垣:人流とか交通流を最適化するとか、何かを束ねるみたいなところかなと思っています。たとえば、車が排気ガスをたくさん出す時というのは、のろのろ運転してる、アクセル踏んでは緩めてみたいなを繰り返している時らしいのです。高速で一定速度で気持ち良く走っているときの方が、排出量は少ない。渋滞をどうやって解消するんだっけ、みたいなところは交通量の最適化といった話なので、そこにITが寄与する部分が大きいんじゃないかと感じています。

あとは地域分散電源の話でしょうか。地域のあちこちで再生可能エネルギーが創り出された時に、それを同時同量を担保しながらアグリゲートして、必要なところに必要な量を届ける話。電力を生み出すプレイヤーだけでなく、ITが寄与できるところがいっぱいあるんじゃないかなと。

画像

下垣徹(しもがきとおる)

NTTデータ グリーンイノベーション推進室長

2021年10月より現職。NTTデータグループのCO2排出量削減をリードするとともに、お客さまのカーボンニュートラルに寄与するビジネスを企画する役割も担う。

元々はPostgreSQL技術者。

風戸:Greenなことを自己顕示欲的に示すSNSなども出てきつつありますね。Instagramは自分が食べたもの、見たものを写真で投稿するわけですが、自分がやったGreenなことをひたすら顕示するっていうSNSで、いいね!って押されるとやる気が出ちゃう的な話。

村岡:行動変異を起こす部分は注目かなと感じています。頑張りましょうといっても、なかなか動いてくださらないんじゃないかという話があって、いかに行動変容を人々に起こしてもらうかっていうのは重要な問題です。ナッジ(nudge)という手法があって、人の心理的なバイアスみたいな個人データと提供する情報を掛け合わせて、もっと行動変容率を上げようという試みが進んでいます。

たとえば、損失回避傾向の高い人には「今渋滞に突っ込むと、あなたはこんなにお金を損します、ガソリンが無駄になります」といえば渋滞に突っ込まないでショッピングで時間を潰すのではないか、一方で、損失回避傾向の強くない方には、⁠いま渋滞に入らないで、ここで1時間、時間をつぶしてショッピングしてもらうとこんなに得しますよ」というメッセージを送った方が、近くのショッピングモールで買い物してくれる、みたいな。人の心理的なバイアスを取って、そのバイアスに合った形のメッセージの出し方を変えるといった考え方です。

人の行動変異を起こしているというところがたぶん達成できないと、市民とか生活者のかかわる部分のCO2ってなかなか減らないんだろうなという気がしていて、大きな着目点かなと思ってみています。

末永:マンホールのチェックを、普通に役所・水道局の人が全部回ると大変だから、マンホールの写真を撮って何ポイント、みたいな感じのサービスが出てきていますね。ITシステムで、余計なCO2排出や余計な移動を起こさないで、参加している人はポイントやインセンティブももらえて、老朽化したインフラの問題の芽を早期に摘み取れるっていう意味で、三方良しなサービスだなと。単純にそこでGreenにするとか、人の行動を起こすっていうのに、プラスで何か、例えばインフラ面だったり、過疎地域に人を呼び込むみたいな、1つ高付加価値が加わるWebサービスだったり、モバイルサービスだったりができたら、これからの時代にフィットするんじゃないかなっていうのは最近思っています。

2022年が始まったいま、正月のうちにこれを見ておけ、これが注目だ!というオススメは?

末永:Green Softwate Fundationで「Awesome Green Software」っていうのを出しています。読み物だったり、サービスだったりツールだったりっていうのがひとまとめになったサイトです。グリーンなソフトウェアっていう観点で、消費電力を図るツールだとか、CO2の排出量を見積もるウェブサービス、その他にも、寄与しそうな論文なんかもまとまっています。それを見ておくと、今後ソフトウェアのグリーン化が進んできた時に、あのツールが使えるかもしれないとか、自分でこう身近で試せるかもしれない、という1つの道しるべみたいな存在になるのかなと思うので、ぜひ見ておくとよいと思います。

awesome-green-software :GitHub

下垣:CO2排出量の見える化でしょうか。カーボンフットプリントの見える化のサービスといったツールが山ほど出ています。ITベンダーと言われるプレイヤーは軒並み出している状態です。この群雄割拠感を肌で感じるには、ちょうどお正月に調べるには面白いトピックかなと思います。

風戸:ぜひローコードプラットフォームを見ておいてほしいですね。End-to-Endで仕事のプロセスが見えるようになってきてるんですね。お客様から受注して、コールセンターとか、顧客接点から、フロントオフィス、バックオフィスまで最終的なサプライヤーまで全部つながりますと。そういう活動のデータを取れるプラットフォームが作られつつありますが、この上に、いずれグリーンの指標などが乗っけられるようになると思うんです。ビジネスプロセス周りですね、BPMやビジネスプロセスのマイニングっていうキーワードでも流行ってきていますが、ログ等を分析してビジネスプロセスをリバースエンジニアリングして、プラットフォームの上に乗っける。その時にこの活動はグリーンかGreenでないか、っていう技術を乗っけるっていうアドオンがこの後来るのかな、と思っています。

村岡:1つ目はペロブスカイト。ペラペラの印刷物のように作る太陽電池で、再生可能エネルギーを作るというもの。壁やいろんなところに太陽光が置けるというので、昼間ピクニックしながら充電する時にも持ち歩きができるかもしれません。

2つ目は、CO2の吸収技術。再生可能エネルギーで電気を作るのではなくて、もう大気中に出てしまったCO2を吸収する。発明ですね。これから盛り上がると思っています。

3つ目は、全く個人の想いなんですけど、コロナが行動変容をどれだけ起こしたかというのは勉強しといたらいいかなと思っています。新型コロナによって世の中こんなに変わった、というのをリストアップすると物凄いインパクトで、カーボンニュートラルにものすごく貢献してる部分も実はあったりします。

村岡氏はオンライン参加で、5人で対談を行いました
村岡氏はオンライン参加で、5人で対談を行いました

最後に

いよいよ、ソフトウェア開発やITシステムの世界にカーボンニュートラルの流れが入ってきそうです。今回は、省エネやサステナブルの観点を中心に話をしてきましたが、再生エネルギー活用の話なども関連が深まりそうです。まだまだ始まったばかりの話ですが、ソフトウェア開発やITシステム開発に関わる皆さんには、少しずつ意識し始めてもらうとよいと思います。よい1年にしましょう!

おすすめ記事

記事・ニュース一覧