00:00
こんにちは、エンジニアの博嶽です。
こんにちは、エンジニアの三長です。
ゆるテクは、三長と博嶽が、ゆるく技術の話をするポッドキャストです。
よろしくお願いします。
よろしくお願いします。
今回はですね、ゴールデンウィークに読んだ本、シリーズ2です。
どんな本を読んだんですか?
前回は、クバネティスの本だったんですけど、
今回ちょっと別ジャンルというか、
ビルディンググリーンソフトウェアっていう本なんですけど、
グリーンソフトウェア?
そうなりますよね。
これオライリーの本なんですけど、
このタイトルを見て、なんじゃそらと思ったので、ちょっと概要を見てみて、
紹介文がちょっと面白そうだなと思ったんで、読みましたっていう感じなんですけど。
ちなみにあれですかね、名前から推察するに、
グリーンってことは、ソフトウェアとして危険な状態?
例えばレッドじゃなくて、安定したソフトウェアを作るとか、そういう意味でのグリーンだったんですかね。
そっちを想像しましたか、なるほどね。
自分はあれでしたね、環境系をやっぱり想像したんですよね、グリーンだったんで。
はいはいはい、環境。
で、一応この本も環境系ですね。
へー、そういう切り口でもオライリー本って出てるんですね。
そうですね。で、結構この本長かったんで、ちょっと全部は話せないんで。
そもそもね、グリーンソフトウェアってなんじゃらほいみたいな話ですし。
そうですね。
それと、ちょっとだけ個別の話もしようかなという感じですね。
ぜひぜひ、よろしくお願いします。
はーい、では早速前提というか、これ環境系の話なんですけど、文脈で言うと気候変動ってありますよね。
はいはいはい。
我々も多分小さい頃からもう地球温暖化とか言われてたと思うんですけど、あれ系の話ですね。
で、この気候変動の話は地球温暖化以外にもいくつかあるんですけど、なんかトルネードが何たらとか。
ほうほうほうほう。
気候がすごい長期的に変化しちゃうみたいな話全般を言うんですけど、この本では温室効果ガスによる地球温暖化の話がメインですね。
なるほど、はい。
という感じですね。
温室効果ガスって今言ってましたけど、この本とかこの業界なのかな、は大体カーボンって言うんですよね。
そうなんですね。
なんで炭素です。
この後の説明も温室効果ガスとか言わずに炭素って言います大体。
わかりました。
なんで炭素って言っても、例えば二酸化炭素とかじゃなくて全般ですね。温室効果ガス全般のことを炭素って言ってます。
03:03
その気候変動に多分影響を与える全般をカーボンって表現してるみたいな感じですかね。
そんな感じです。
よく最近、自分が見てる範囲だと世界中で炭素の排出量を削減すればみたいなニュースとかをよく見るんですよ。
ありますね、はい。
これは京都議定書とかその後パリ協定とかそういうのがあってそこで決まったんですよね。
先進国とかで何パーセント削減しましょうとか色々。
ありますね、はい。
これがあるんでみんな地球を守るために頑張りましょうみたいな感じですよね。
ついにソフトウェアとかもそういう方向に勝てるんですね。
実はソフトウェア業界テクノロジー全般まで広げても、あんまり与える影響って膨大じゃなくて。
大抵はやっぱり機械産業とか車とかあれ系なんですよ。
一番炭素を使うのって。
あくまでパッと聞いたイメージですけど、ソフトウェアだとソフトウェアって言うべきか分からないんですけど、
だいたいデータセンターの運用方法とか影響あるとするとそういったところなんじゃないかなって思っちゃったりするんですけど。
はい、もうほぼそこです。
なるほど。
電力とか一部ハードウェアも入るんですけど、だいたいそんな感じですね。
なるほど。
そこに貢献するっていうところに書いてあるのがこの本なんですよ。
すごいなんかこう、今まで考えたこともないような話題というかテーマですね。
自分も初めてこの手の本を読むんで、ざっくりでも見とくと新しい発見あるかもなと思って読んでみたんですけど、結論結構面白くて、技術的な話もあるんですよ。
へー。
この本は著者3人いて、全員同じ組織のグリーンソフトウェアファウンデーションっていう組織があるっぽくて。
そういうものがあるんだ。
全員技術者ではあって、業界30年選手とか、GoogleクラウドのSREとか、マイクロソフトのバックエンドエンジニアみたいな感じの人が書いてるんで、そんなに的外れではないのかなっていう感じかな。
なるほど、ちゃんと現実を知ってる人たちが解決策を本気で考えてみましたみたいな感じですね。
かと思います。
はい。
っていうのがこの本、どんな本っていう感じですかね。
うんうん。
で、その問題のグリーンソフトウェアなんですけど、これなんぞやっていうと、さっき言った炭素ですね。
はい。
06:00
この炭素の排出量が最小限に抑えられているソフトウェアのことです。
おお、おお。
すごいざっくりとした定義じゃないですか。
はいはい。
一応こういうものですって説明はあったんですけど、あんまり別に厳密に定義されているとかじゃなくて、この単語別にそんな重要じゃないんですよ、タイトルにきてはいますけど。
イメージとしてはそういうものなんですってことですね。
そうですそうです。この単語そんな本の中でも出てこないし、別にこれをマーケティングとして広めたいみたいなそういう概念ではなさそうですね。
だから環境に優しいソフトウェアのことぐらいの認識でいいかと思います。
なるほどですね。
はい。っていうのが前提ですね。
目的が炭素の排出量を最小限に抑えるっていうことなんで、
はいはいはい。
具体的にじゃあどうしますかみたいな話が展開されていくんですけど、
はい。
方向性としてはですね、でも予定2つなんですよ、大きく。
2つ。
はい。炭素の排出を効率化する。
はいはいはい。
のともう1個が炭素排出量の少ない電力を使う。大きくはこの2つなんですよね。
ほうほうほう。電力。あーはい。
ちょっと何のこっちゃって感じだと思うんで。
はい。
炭素排出を効率化するってどういうことかっていうと、電力を無駄なく使いましょうっていうことがまず1つです。
電力を。はいはいはい。
身近な例で、ここに書いてあった例で言うと、
CPU使用率常時スーパーしかないよみたいなサーバーは、
はい。
もうまとめちゃって1台のサーバーにしましょう。そしたら何台か分浮くでしょみたいなことですかね。
あーなるほど。すごい今の例は分かりやすいですね。はいはいはい。
その無駄なやつを止めるっていうのももちろんそうですし、
うんうん。
効率化って意味だと、コンピューターってCPU使用率が高ければ高いほど効率化されているっていうことが説明されてるんですね。
上手に使用できていれば、そうそうですよね。
そうそう。なんで例えば、数字が例に出されてたやつがあって、
はい。
CPU200%を使うタスク。
ほうほうほう。
例えば2コアあって100%100%とかあったら200%を使うタスクとするじゃないですか。
はい。
それを実行したいときに、じゃあCPU使用率50%のサーバー4台。
うんうん。
合計200%ですよね。
なるほど。はい。
と、100%のサーバーを2台。これも200%ですね。
はいはいはい。
これ比較したときどっちが電力効率いいですかっていうと、
はい。
2台の方がもちろん良いっていう感じですかね。
あーなるほどですね。
サーバーを減らしましょうと。
うんうん。
今のはサーバーの電力みたいな話なんですけど、
はい。
より効率に炭素排出をするっていう意味だと、ハードウェア。
09:01
はいはい。
これも効率よく使いましょうっていうのがあって、これ本当物理的な話なんですけど、
うんうん。
ここで一番でかいのがモバイルデバイスの話ですね。スマホとか。
あーはい。
あれはスマートフォンとかを作るときと廃棄するときにすごい炭素が排出されちゃうらしいんですね。
はいはいはい。
なんでとにかく寿命を伸ばしましょうと。
なるほど。なるほどなるほど。
1人が1台で10年とか使ってくれた方が、
うんうん。
10年でね2台も3台も使うよりは全然いいですと。
なんかすごいあれですね。ここ最近ちょっと炎上してた某CMみたいな。
めっちゃタイムリーですね。
そうそうそうそう。
めちゃめちゃタイムリーな感じを感じますね。
だからあれもこの文脈で結構批判されてましたよね。SDGsを歌う会社があって。
はいはいはい。
ハードウェアのそんなあれとかソフトウェア開発者が何できるのって話なんですけど、
うんうんうん。
一個挙げられてたのはソフトウェアの広報互換性を上げましょうっていうのがありましたね。
ほうほうほう。
特にスマホを買い替える人の一番の原因がやっぱり使っているアプリケーションがサポートされなくなるからなんですよね。
はいはいはい。なるほど。
だからめちゃめちゃ極端な話、このアプリケーションはAndroidの最初期のバージョンでも動きますよみたいな感じであれば、
買い替えの理由が減るので準備が伸びますみたいな理屈ですね。
なるほどですね。はいはい。理解しました。
そんな感じでしたね。これが効率化の話です。
すいません、ちょっと今の効率化のところで少し疑問というか、もし書かれてたらっていうところで聞いてみたいんですけど、
結構最初のサーバー数を減らすとかっていうところで言うと、自分たちでサーバー管理してるとかだったらすごい湧くイメージなんですけど、
昨今だと結構もう仮想環境でクラウドで動かしてますとかが多いじゃないですか。
そこのオンプレとクラウドでまたちょっと切り口が違うんだよとかっていうことってあったりするんですか?
いい質問ですね。
その考え方とかはこの本でも結構出てきてて、答えは明確にクラウドを使いましょうです。
なんでかっていうとクラウド事業者はサーバーの集約を頑張ることに自分たちのビジネスのコストメリットがあるので、
無茶苦茶に集約を頑張るので、クラウドを使っていれば勝手に集約化されますっていう感じですね。
むしろ使っていれば今の200%の例えじゃないんですけど、4台だろうが裏側では最終的にもうちょっと集約されてるだろうみたいな感じなんですかね。
12:02
そういうことも仮想化レベルにもちろんよるんですけどね。
はいはい。
物理的にクラウドを使っていてもこれとこれは別の筐体だって意識することはできるじゃないですか。
そうですね。
そこをクラウド側に任せるようにしてしまえば、クラウドベンダー側でよしなにやってくれますよみたいな話が出てきます。
それはいいことを聞いたというか、多分個人で物理的に運用するならこういうことはちゃんと考えましょうねってところですね。
そうですそうです。
はいはいありがとうございます。
今のが効率化の話で、次が炭素排出量の少ない電力を使うことなんですけど、これ言葉で言うと果てってなるかもしれないですけど、要するにクリーンな発電の電気を使いましょうっていうことですね。
風力発電とか、地熱とか太陽光とかあの辺ですね。
火力とか天然ガスとか使って発電された電力をあまり使わないようにしましょうみたいな方向性の考え方なんですよ。
考え方としてはすごく理解ができるんですけど、とはいえ実際使う側ってあまりこの電力で動かしますっていうのはできないじゃないですか。
そうそう選べませんよねって話じゃないですか。
なのでそのメトリクスの話も後で出てくるんですけど、方法としては2つあって、実行される時間もしくは場所を移動するっていう感じです。
時間の方で言うと例えで言うと、いつ実行してもいいタスク、これはクリーンな電力を使用できる時間帯に実行するっていう方法があります。
ありますね。日中とかこういう時間帯の時はこれ使ってますとかありますもんね。
そうですそうです。例えば太陽光はもちろん、例えば日本においては日本が日中の時間しかほぼないでしょうから、
とかあとはこれは時間でかなり決まっているとかではないと思うんですけど、風力発電はもちろん風が吹いている時にしか起きないので、
そういうの時間をクリーンな電力を使用できる時間帯に移動するっていう。
いつ実行してもいいタスクって具体的には何って言ったら、機械学習のトレーニングとか、
あとは具体例があってXboxだったかなとかは、Windowsアップデートをそういう感じでいい感じの時間帯にしてるらしいです。
すごいな、そういったとこまで考えられて今動かされてるんですね。
そういうのにいろいろ取り組んでるみたいですね。特に大手3ベンダー、AWS、Google Cloud、Azure、この3つはすごいちゃんとそこに全部力を入れてるみたいですね。
15:10
なるほど。
今言ったのが時間でしたけど、もう1個が場所でクリーンな電力を使用できる場所って地域によって差があって、
例えばですね、中東のところって石油めっちゃ使ってそうじゃないですか。
イメージですね。
実際マップみたいなところで見ても結構使われてて、逆に南米とか北欧とかはクリーンなエネルギーが多いっぽいんですよね。
へー、そうなんだ。
北欧は風力とかなのかな、わかんないですけど。そういうのもちろん見れるウェブサイトとかもあったりするんですよね。
そういうマップがあるんですね、じゃあ。
あります。そういうところで実行する、地理的にですね、そういうリージョンを使うって感じですかね。
これあれですよね、例えばクラウドとかで何か使うときって大体物作るときってリージョン選んだりするじゃないですか。
推奨リージョンここですとかって今出てると思うんですけど、こういう考え方がより普及していくとその中に出てきそうですね。
このリージョンはクリーンな電力使ってますよとかそういうサジェストというか。
今ですね、Googleクラウドだったかなとかは実はそのあれがあるみたいですね。
本当ですか、使ってるけど気づいたか。
多分そんな大々的に言ってないんでしょうけどね。
調べようと思えば調べられるっぽい、どうやら。
なるほど、こういうのって、わかんないですけど素人的には作って動かしてみないことには最終的にどれぐらい消費っていう表現は正しくないのか炭素を排出してるかとかってわからなかったりするのかなって思ってて。
これは何かこれからみんなが作っていくときに最初にこういう目標を立てて計画してやってった方がいいんだよとかそういうところも書かれてたりするんですか。
ありますね。
何ならですね、どこでどのサーバーでどのぐらい動かしたらどのぐらいの炭素排出量という計算式があります。
見積もれるんですね。
見積もれます。
しかもですね、さっき言った大手3ベンダーは計算ツールを実は提供しているっぽいです。
じゃあこれはもうあれですね、料金計算ツールにしか目が行ってない自分が愚かなってことですね。
愚かではないですけど、結構まだ気をつけてみないとなかなか目に入りづらいっていうのはありますよね。
ですね、確かに。
自分も知らなかったですし。
18:00
ここまでの話が具体的にではないですけど、大体こういう感じで炭素の排出量を抑えるんだよっていう感じですかね。
なるほど、すごいな。
もっと詳しい説明は結構あったんですけどね、さっき言った計算式がうるるんとかもあるじゃないですか。
です。
あれですね、博多家さんの話聞いてて、ちょっと意外ではないかもしれないんですけど、
サーバーの台数を調整するとか、要は寄せに行くっていうのはすごい理解が進んだんですけど、
もっとソフトウェアなところっていうんでしょうか、コードでどうすればいいとかって話がいっぱい書かれてるのかなって最初思ったんですけど、そんなことはないんですね。
自分もそうだと思ってたんですよ、読む前。
それももちろん一生下がれて説明してあって、いわゆる効率の良いコードを書く、
なんか不合的プログラミングはしないとか、そういうことをすることで出る効果は低いって明確に言われています。
それによって、たとえ分かんないですけど、めちゃめちゃ良いコードを書けたことによって、
10台構成が1台になりますとか、そういうレベルじゃない限りはあんまりってことですかね。
多くの世の中のシステムは結構動的スケーリングしないんですよね。
そうなんですね。
なので、今三沢さんがおっしゃったみたいに、10台で動いてるやつを1台で大丈夫なぐらい効率を良くしたとしても、
動的にスケーリングしないから世の中のシステムって、相変わらず10分の1の負荷で10台が動き続けるんですよね。
そうなんですね。てっきりもう世の中はオートスケーリングなんてみんな当たり前で。
でもここに書いてあるのはやっぱりそんな感じなので、結構随所に動的にスケーリングしなさいってすごい出てくるんですよ。
必要ない時はちゃんと削りなさいっていう方の文脈ってことですよね。
そうですそうです。そこが結構自分の気になったところでもありましたね。
そうなんだって、あんまその効果ももちろん低いですし、むしろ害すらあるみたいな話もちょっとされてたんですよ。
例えば、めっちゃ効率的な言語、最近で言うとラストとか古くはCとか。
じゃあああいうのに変えましょうって、それが本当に効率的でいいことなのって言ったら、費用対効果みたいなところで言うとむっちゃ低いし。
炭素を削減するみたいな目標ってみんなでやらなきゃいけないことだから、そんなビジネス側に理解してもらえないような施策を取るのは逆効果だみたいなことも書いてあったんですよね。
確かにあのきっと、別にディスるわけじゃないんですけど、僕たちリファクタリングしたいです以上に理解が難しそうなテーマですもんねきっと。
21:10
っていうのがありましたね。
気になったところで言うと、その話の流れなんですけど、三田さんにフィンオプスの話ってしましたっけ?
読んだよは聞きました。
そっかそっか、じゃあユーティックでも話してないのか。
かもしれないです。
昨今そのフィンオプスの話あると思うんですけど、このグリーンソフトウェアファウンデーションの話では、この活動っていうのはもうフィンオプスと同じ方向性なんですよっていうことが言われていて、
さっき言った通りクラウドベンダーが効率化頑張ってるから、それに乗っかってフィンオプスをやっていくと自然とグリーンなソフトウェアになっていくんですよって言ってるんですよ。
そこが繋がるんですね。
料金が減るということは使用量とかもちろん減るわけであって、電力の使用量がもちろん削減されて炭素排出量が減るっていうことなんで、次続きですってずっと書いてありますね。
確かにそれ言われてみるとそうですね。
クラウドベンダーが効率化頑張っているっていう例が、例えばサーバーレス系だったり、マネージド系のサービスとか特にそうで、あれって我々がスケーリングとか頑張らなくても向こうが運用してくれるわけじゃないですか。
そうですね。
すごい高収積で電力とか使用量とかの効率化も頑張っているところっぽいんですよね。
今のフィンオプスにつながってますが一番最初初め聞いたときは、これでもやりたいって言ってもどこからやればいいんだろうみたいな感覚だったんですけど、一気に自分たちでもできそうな部分ってあるんだなっていう理解になりましたね。
多分このファウンデーションの人たちもなかなかみんなやってくれないから、道義づけみたいなところすごい苦心してると思うんですよね。
そうですね。
この活動のためにわざわざ予算を割くとかじゃなくて、そもそもコスト的に優先度が高い活動ですよっていうアピールがすごいいろいろ出てきます。
確かに。
こういうカーボン排出量とかって確か抑えられたらありましたよね。
逆ですね。
抑えないとペナルティがありそう。
ですよね。とかも結果としては仕組みとしてあるから、そこをペナルティにならないためにもっていうのも一応道義づけは道義づけですよね。
あると思いますね。
なるほど。
あと結構技術的にチャレンジングってさっき最初の方で言ったと思うんですけど、炭素排出量を計測したりとか、クリーンな電気と汚れた電気、火力とかのやつ。
24:09
それ見分けないとできないじゃないですか。さっき言ったようなオペレーション。
そうですね。
それがどうするんだろうと思ってたんですけど、結構こういうAPIがあって、こういうデータが提供されてますっていうのが何個も紹介されてて。
あるんですね。知らなかった。
もうあるから使えばいいよって書いてあって。
なるほど。
見てみたんですけど、確かにまだちょっと未完成なところもあるけど、使えそうだなって思ったし。
単純にこれ元にしていい感じにスケーリングとか違う地域で動かしたりとかできたら面白そうだなっていうのはありましたね。
確かに。というかそういうAPIが割と結構あるっていう時点で、意外とこの、私が知らなかっただけだと思うんですけど、この活動自体は着実に影響を広げていってる感じなんですかね。
っていうことなんでしょうね。
なるほどな。
あと、この本に書いてなかったんですけど、さっきのコスト的な話とも絡めて、電気のダイナミックプライシングって最近よく自分は聞くんですけど。
なんか日本でなのかな。需要の多い時間帯は電気力が高くなったりとかするんですよ。
っていうのが実現されるとしたら、今のうちからこういう電力とかそういうものに関してのメトリックスによってサーバーの台数を減らしたりとか、そういうのができるようなシステム構成してるとその時にすごい効果を発揮しそうだなと思いましたね。
確かに。
今すぐではないかもしれないですけど、3年後とか5年後くらいには当たり前になってるかもなぐらいのオペレーションと思いましたね。
確かに電力という新しいメトリックスが市民金得てるかもしれないですよね。
そうなんだよな。
っていうのがあったんですけど、とはいえそんな大変な作業の前にまずやれることをやろうっていうのももちろん書いてあって。
はいはいはい。
この話の中だとゾンビサーバーって呼ばれてたんですけど、ほとんど稼働してないサーバー、CPU使用率なんか2,3%ですみたいなのがずっと。
はいはい。
とかはもう停止しちゃいましょうって。
うんうんうん。
なんだっけ、ライトスイッチオプスとか、ライトをパチンパチンってスイッチで消すように落とせるようにしておきましょうみたいな。
あーなるほどですね、はいはいはい。
落としてもスイッチを元に戻すだけですぐ復活できるようにしましょうとかですね。
うんうんうんうん。
とかなんだっけ、あとスクリームオプスだっけ、なんかわかんないけど。
スクリーム、ほう。
えーと、違ったかもしれない名前。
あのとにかく止めてみて絶叫が起きたら、フィールドすればいいみたいな。
それでスクリーム、はいはいはい、なるほど。
なんかそういうのがあって、はいはい。
面白いな、感激だなと思いましたけど。
いやー、やってみたいですよね、そういう系って。
そうそうそう。
27:00
誰が使ってるかわかんないじゃんこれっていうなら、一回止めてみて困ったら残せばいいんだよみたいな。
やってみたい。
うん、やりたい。
あとはすぐできるところで言うと、これもさっきの動的スケーリング実は世の中されてない話に通じるんですけど、
はい。
大体のサーバーって最初オーバープロビジョニングされて、
うんうんうん。
需要に対してちょっと余裕を持った強さで構成されて、その後見直されないから、
うんうん。
今1回だけでいいから適切なサイジングにしましょう、それで大体小さくなってむちゃくちゃ減りますみたいな。
はいはいはいはい。
のがあるんで、明日できることとしてそれが紹介されているのと、
はい。
あと夜間とか週末にテスト系は止めましょうっていう。
うーん、なるほどっすね。
これもコストの文脈でやってるところたくさんあると思いますけど。
今のすぐやろうと思えばできるっていうところを聞いてて思ったのが、
もちろんクラウドオンプレ関係なしにチャレンジしやすいところなんだろうなっていうのはあるんですけど、
やはり今の話って全般的にクラウド使ってたら本当にすぐやれそうだなって感じしますよね。
そうですね。
うん。
そんな感じでしたかね。
ちょっと面白かったんですよ。
なんかいろいろ事例みたいなのも紹介されてて、
はい。
なんかロードバランサーとかDNSレベルで、
はい。
炭素排出量の少ない地域にルーティングするようなグリーンDNSとかっていうのもなんか。
すごい。
ハッカソンみたいなのがあったっぽいんですよね。
そこでそれがあったみたいですね。
なるほど。
いや、なんか全然あれですね。
気にしてこなかったら嘘ですけど、
自分たちにはそんなに影響がないんじゃないかって思ってた分野だったので、
でもソフトウェアだけ取ってもこういういろんな考え方とか取れるアクションがあるんだなっていうのを聞けて、
なんかめちゃめちゃ今楽しかったですね。
そうそう。
だから当面は炭素排出量がどうのっていうよりも、
はい。
単純にその電力使用量を減らすみたいな意味合いで、
今でやってきたようなコスト削減をもうちょっと頑張りましょうぐらいでいい気はしますけどね。
ですね、はい。
はい、そんな感じでした。
ありがとうございます。
はい、めっちゃずっと説明してしまった。
いやいや、楽しかったです。
そう、なんかあんまり見ないテーマの本だったんで。
そうですね。
じゃあ今日はこのぐらいにしときますかね。
そうですね。
はい、今回はビルディンググリーンソフトウェアについて話しました。
感想などは、ハッシュユルテクをつけてポストお願いします。
Google フォームからも送れます。
今日はありがとうございました。
ありがとうございました。