第10話「わざと壊してみる」
守る線を決めてから、三日が経った。
勇者の戦闘支援の監視ウィンドウは正常を示し続けている。カルクが毎朝報告してくる経験値のズレはまだ0.003のまま広がっていない。大きな問題は起きていない。
だからこそ、気になることがあった。
優先度は決めた。どこを最優先で守るかも決めた。でも、一つわかっていないことがある。
どこが弱いか。
「ノード」
「はい」
「どこが弱いか、わかるか」
ノードが少し間を置いた。「……えーと、弱い、というのは」
「機能の中で、どこが一番最初に壊れるか。本当に問題が来たとき、一番影響が出やすい場所がどこかということだ」
「えーと……」 ノードが詰まった。「ログには、過去に止まった記録はあります。でも、これから止まる場所がどこかというのは……」
「わからない、か」
「……はい。申し訳ありません」
「謝ることじゃない」 俺は言った。「そもそも事前に弱点を知ることは難しい。問題は、起きてから気づくのが普通だ」
でも——だから困る。
問題が起きてから対処するのでは、住人がその間に苦しむ。守る線を決めたのは事前に備えるためだ。でも、備えるためには「どこが弱いか」を知らなければならない。そして「どこが弱いか」は、普通は壊れてみないとわからない。
その矛盾を、前の世界では力技で解決していた。
わざと壊す。
本番環境で、意図的に機能を止めてみる。怖いように聞こえるが、目的ははっきりしている——平時には見えない弱点を、制御された状況で引き出す。医者が診断のために患部を軽く押して確認するのと、原理は同じだ。壊してみて初めて、どこがどの程度弱いかがわかる。
問題は、この世界にはテスト環境がない、ということだ。前の世界ならまず検証用の環境で試して、問題がなければ本番に展開する。でもここは、本番しかない。世界は一つだ。
前の世界ではそれを「意図的な障害注入」と呼んでいた。もっと洗練された呼び方もあったが、要するにそういうことだ。
「ノード、三番目のグループから一つ選んで、意図的に短時間だけ止めてみたい」
ノードが少し固まった。「……止める、というのは」
「正確には、機能を一時的に制限する。影響範囲を確認してから、戻す。実験だ」
「……えーと」 また間があった。「それは……大丈夫なんですか」
「大丈夫じゃない可能性があるから、やる。弱い部分を知っておかないと、本当に壊れたときに手が打てない」
ノードがしばらく黙っていた。
「……わかりました。何を止めますか」
「まだ決めていない。候補を整理する」
俺はリストを開いた。三番目のグループ——一日止まっても致命的にはならないと判定した機能の一覧。
農作物の成長ログ更新。交易記録の整合性確認。一部の気象観測データの蓄積。街道の通行量記録。水源の水位ログ。
順番に検討した。
交易記録は候補から外した。商人は数字に敏感だ。整合性が一時的にズレるだけでも、計算の合わない帳簿が生まれる可能性がある。それが不信感につながりかねない。気象データの蓄積も、セレスが担当しているため話が複雑になる。街道の通行量記録は、冒険者ギルドとの連携に影響が出るかもしれない。水源の水位ログは、飲料水への不安を生む可能性がある。
「農作物の成長ログだ」
農家が作物を育てるとき、世界の基盤は成長の記録を一定間隔で更新している。これが止まっても、作物そのものは育ち続ける。ログが止まるだけで、実害は出ない——そのはずだ。
「止める範囲はどうするんですか」
「南部の麦畑地帯だけ。全域は広すぎる。まず小さく試す」
「時間は」
「三十分。止めたらすぐ確認を始める。何か異変が出たらすぐ報告してくれ。おかしいと思ったら、俺が言う前に止めていい」
「……わかりました」
ノードが少し間を置いてから、言葉を続けた。「えーと……止める前に、一つ聞いていいですか」
「何だ」
「……怖くないんですか。わざと、止めるのが」
俺は少し考えた。
「怖い。でも、知らないままの方が怖い」
* * *
俺は処理を止めた。
ダッシュボードで対象区域の農作物ログを確認する。更新が止まった。作物の成長データが三十分前の値で固まっている。それ以外の機能は正常だ。アラートは上がっていない。
数字の上では、何も起きていなかった。
一分、待った。
三分、待った。
五分——何も変わらない。
俺は別のウィンドウで住人行動ログも開いていた。南部農村地帯の農家の動き。畑で作業している住人の数。神殿への移動を示すデータ。それらをリアルタイムで眺めながら、何かが起きる兆候を探した。正直、何も出なければそれが一番いい。「三番目のグループは本当に影響が軽い」と確認できる。
七分——まだ静かだ。
「もしかして、うまくいってるのかもしれない」という考えが、頭の隅に浮かんだ。
そのとき、ノードが報告してきた。
「えーと……悠真さん、南部農村地帯の住人が神殿に走っています。祈りに来る人の数が、急に増えていて……通常の三倍から四倍です。実験開始から七分と少しで」
俺は請願データを開いた。グラフが急に跳ね上がっている。実験開始からきれいに七分後から、上昇が始まっていた。
「作物のログは止まったままか」
「はい。止めています」
「住人に直接の被害は出ているか」
「えーと……被害、というものはないです。作物は育っています。でも……」
「農家が感じ取っている」
「……はい。そう見えます」
俺は画面を見ながら、しばらく動けなかった。
* * *
南部農村。麦畑の広がる小さな村だった。
農夫のロバンは朝から畑に出ていた。天気は良かった。風も穏やかだ。麦の穂が少しずつ育っている——目で見る限りは、何の問題もない。
でも。
「……おかしい」
隣の畑で作業していた妻が顔を上げた。「どうしたの」
「なんか、作物の様子が変な気がする。育ってはいるんだが……妙な止まり方をしてる気がして」
「あなたの気のせいでしょ。天気もいいじゃない。土も乾いてないし」
「気のせいかもしれない」
ロバンはしゃがんで、土に手を差し込んだ。湿り気は十分だ。根も張っている。肥料も入れた。何も問題はないはずだが——手に伝わってくる感覚が、いつもと違う。三十年、この畑で作物と向き合ってきた。この手の感覚は、たいていは正しい。
「手に伝わってくるものが違うんだよな。なんか、作物が止まってる気がして」
村の広場に出ると、もう一人の農夫が同じような顔をしていた。「ロバン、お前も感じるか」
「ああ。何かがおかしい」
「俺もだ。朝から変だと思ってたんだが……」
「天罰かもしれん」
そういう話になった。五人、それから七人と、農夫が連なって村の小さな神殿に向かった。
* * *
俺はダッシュボードから目が離せなかった。
農作物のログが止まっただけだ。作物は育っている。住人に直接的な被害は出ていない。
のに、農家は「何かがおかしい」と感じ取っていた。
農家は毎日、土を触る。天気を読む。作物の微妙な変化を手で感じる。三十年その感覚を研ぎ澄ませてきた人間には、俺がダッシュボードで「異常なし」と判断した変化が、体のどこかで届いていた。
数字として見えている変化が、地上には体感として届いていた。
想定が甘かった。
三番目のグループ——一日止まっても致命的にはならない——と俺が判定した機能は、住人の感覚に直結していた。「実害が出るか」で分類した。でも、それだけでは足りなかった。もう一つの軸が必要だった——「住人が感じ取るか」という軸が。
この世界の住人は、世界の基盤と、感覚の経路で繋がっている。数値と感触が別々に存在しているわけじゃない。同じものの、表と裏だ。
三十分が経過した。俺はログを再開した。
* * *
南部の神殿。石造りの祈りの間に、農夫たちが集まっていた。先頭に立つのは白髪の老神官だった。ゆっくりとした、穏やかな話し方をする人物だ。南部の各地を巡回中の勇者パーティが近くの町に宿をとっており、神官のリーゼルは毎朝の祈りをここで続けていた。
「皆さんが感じた不安は、神の御心の現れです」 老神官は静かに言った。「神は時に、私たちが安心し過ぎていないかを確かめます。揺さぶることで、私たちの信仰の深さを試すのです。これは試練であり、同時に加護の証でもある」
集まった農夫たちが頷いた。ロバンも、胸の前で手を組んだ。言葉の意味が全部わかったわけじゃないが、神官長の声が静かなのが、少し安心させてくれた。
「……神官長」 人垣の後ろから、小柄な神官が手を上げた。ピンクブロンドの髪、裾の長い神官服。「あたし、今日のお祈りのとき鈴が変な感じで鳴って……神様のお声が、いつもよりちょっと遠い気がしたんですけど」
「それも同じです、リーゼル」 老神官が穏やかに答えた。「神託が揺れるとき、それは世界に何かが起きているということ。私たちは揺れながらも、信じることをやめてはなりません」
「……でも」 リーゼルが少し眉を寄せた。「遠いっていうか、なんか……誰かが何かを間違えた、みたいな感じがして。神様が怒ってるとかじゃなくて、なんか、うっかりした感じ?」
老神官が少し微笑んだ。「どのような形であれ、神の働きは私たちには測れません。ただ受け取り、祈ることが大切です」
「……うん」
リーゼルが頷いた。でも表情は晴れなかった。祈りのとき、鈴の感触はいつも正直だ。今日の感触は——神様が怒っているとも、遠ざかっているとも違った。神様じゃない、人が、何かをうっかり止めてしまった。でも気がついて、元に戻した——そういう感じだった。
「なんか、誰かがやらかして、すぐ気づいて直した気がしたんだけどなぁ……」
小声で、一人につぶやいた。
祈りの杖の先端で、小さな鈴がかすかに揺れた。
* * *
管理層で、俺は実験の記録をまとめた。
農作物ログ停止(南部麦畑地帯・三十分)。作物への直接的な被害なし。住人が体感的な異常を感知し、神殿への請願件数が通常の四倍に増加。——予測していなかった波及ルート:基盤の数値変化が、住人の感覚に直接干渉した。
三番目のグループに分類した機能でも、住人の感覚経路を通じて影響が出た。
グループ分けを見直す必要がある。「実害が出るか」だけではなく、「住人が感じ取るか」という軸を加えなければならない。
「管理人の失敗は、住人の苦痛だ」
口に出してから、少し間を置いた。
「——たとえ意図した失敗であっても」
「ノード」
「はい」
「この世界の住人は、数字の外で感じている。管理層から見えている以上に、敏感だ」
「……はい」
「それから——この世界の住人と基盤は、数値と感触が一体になっている。数字が止まれば、感触も止まる。その前提を、俺は持っていなかった」
ノードが少し間を置いた。「えーと……わたしも、そこまでは把握していませんでした」
「俺もだ。だから実験した意味がある」
ノードが少しの間黙った。それから、「あの」と続けた。
「えーと……さっき、怖くないかって聞いたとき……」
「ああ」
「……悠真さん、怖いって言ってましたよね。でも、やった」
「そうだな」
「えーと……わたしは、悠真さんが怖くないのかと思ってたので。少し、安心しました」
それだけ言って、ノードが静かになった。
次の実験候補のリストを眺めた。やり方を変える必要がある。次はもっと範囲を絞って、時間も短くする。そして実験前に「住人が感じ取る可能性があるか」を必ず確認する項目として加える。実験は続けなければならない。弱点を知らないまま守ろうとするのは、地図なしで戦うのと同じだ。
ダッシュボードの南部エリアを確認した。農作物のログは正常に戻っている。神殿への請願件数も落ち着きつつある。
地上では今日も、誰かが神様を信じながら土を触っている。
お読みいただきありがとうございます。
【今回のIT用語】
カオスエンジニアリング:悠真が今回行った「意図的に機能を止めて弱点を洗い出す実験」は、この手法です。「壊してみないと、どこが弱いかわからない」という逆説的な発想から生まれました。有名な例ではNetflixが「Chaos Monkey」というツールを本番環境で動かし、サーバーをランダムに停止させることで障害耐性を確認しています。
フォールトインジェクション:カオスエンジニアリングの具体的な手法で、「意図的に障害を注入する」ことです。今回は農作物の成長ログを30分止めるという形で、影響範囲を絞った小規模な実験を行いました。しかし住人が体感で異常を感じ取るという想定外の波及が起きました——「平時には見えない弱点を引き出す」というこの手法の目的は達成されましたが、その代償が住人の苦痛につながることを悠真は今日学びました。
次話「鳴り止まない警報」もよろしくお願いします。
感想・ブックマークいただけると励みになります。




