ドッグイヤーの終焉

2024/07/01

Deno上のインテグレーションテストの実用性を評価するうちに、実はクラウドインフラの性能も悪いことに気づいた。

SeleniumのE2Eテストは挙動が安定せず、成功する場合と失敗する場合がある。そして、失敗の割合をクラウドインフラ上で実行するときとPC上で実行するときを比べると、クラウドの方が目に見えて多い。

「そういうものか」と思うかもしれないが、これはソフトウェアエンジニアリングの観点からは相当異常で、このような挙動は他のプロジェクトで起きたことがない。

ソフトウェアはCPU利用権を割当てられたときに時が進み、同じコードを実行すると同じ状態に帰着する。入力データを含めて同じコードが違う結果に至ることは原則ない。

Seleniumで起きていることは、時間切れが生じることによる挙動の違いと考えられる。じっさいに一部のテストケースでは直接のエラー種別がTimeoutErrorだ。

要するに、いまクラウドインフラはPCよりも明確に遅い。

クラウドが遅いのは自明とは言えない

テスト挙動が安定的に異なるという事態も理解しがたいが、クラウドが遅いのは輪をかけてアノマリーだ。

クラウドサービスが提供するCPUはサーバー向けグレードを採用しており、スペック上はPCよりも格段に高速と言える。電力消費水準の点からも、ハードはPCよりも速いはずなのだ。

ハードスペックとテスト挙動の逆転を埋め合わせる説明は提供されない。
消去法で考えると、クラウドプロバイダが実装する仮想化オーバーヘッドが主要因であるように思う。

ハードの不備とセキュリティ攻撃がOSボトルネックに

OS仮想化にはおそらく無視できないオーバーヘッドがあるものの、必要不可欠な機能でもあると思う。

2018年あたりからMeltdownなどCPUじたいが持つ深刻なセキュリティ脆弱性が見つかった。あまりに広範なCPUに欠陥があるため、ハードそのものを完全に修正するような対策はとられていない。

ハードが対策し切れない以上、CPU欠陥の対策もOSに含まれており、その一環としてCPU機能の無効化も含まれているはずだ。

パブリッククラウドとして必要な対策を追加するとハード機能に大きな制約が加わり、サーバーとPCの性能が逆転するということだろう。

その方針は妥当で異存はないが、性能劣化に言及していないのは欺瞞に見える。

価格性能比が悪化している

1990年代から2000年代にかけてインターネットやスマートフォンが普及してきたのは、 ムーア則が代表するハードの急速な進歩のおかげだ。

いまでもIT産業にはハード高速化の幻想があるが、ムーア則は近年になって終焉している。
決定的な壁は、微細化を無限に進められるわけではない点にある。

また、いかに半導体の密度が高まっても、既述のとおりセキュリティ対策で無効化するパーツが出てくるのであれば、肝心の性能が得られない。

いま、IT調達の未来は過去の延長で考えられなくなっている。

これは短期的な変化を述べているのではない。2018年のMeltdownの対策が2024年になった今まだクリーンに解決していないのではないか、という点がポイントだ。

クラウドサービスのうちIaaSについては近年、進展がないように見える。
CPUの進化が停滞していることに加えて、OSのR&Dに人的コストがかかるようになった結果、IaaSといえども最新ハードの計り売りを利用しているとは言えなくなったのではないか。

ここ数年の経緯をまとめると、コンピュータが速くなり値下がりしていくという従来の期待は当面期待できなくなったように見える。
日本の利用者から見ると、値上がり傾向が続いている。日本の国力が落ちて購買力が丸ごと弱まった影響も大きい。

デプロイメントに工夫が求められる

クラウドの価格には実は抑止力がないように見ている。直近のニュースではVMwareのM&Aによりライセンスの大幅改定が起きた。

コスト効率の観点で、今後もっとも不利になるのはサーバーレスアーキテクチャではないか。コストの主要部分がR&Dとなれば利用する機能が多いほど割高になるだろう。

これまでクラウドインフラは未来の終着駅に見えていたが、状況は変わったのだと思う。
マシンパワーを引き出せなければソフトウェアの価値は落ちる。

今後新たに考えるべきことは、ベアメタルハード上にデプロイするような自動プロセスを構築することだろう。

ただしこの6月に出版社KADOKAWAが攻撃された事件で、AWSを保全できている一方で自社データセンターのみ施設閉鎖に追い込まれた点は参考にすべきだ。セキュリティ要求の低いタスクの分離が前提と言える。

この展開は、産業発展史としては順調とは言えない。

⁋ 2024/07/01↻ 2024/07/01